summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/msm/msm_gem.c
diff options
context:
space:
mode:
authorRob Clark <robdclark@chromium.org>2023-11-06 10:50:26 -0800
committerRob Clark <robdclark@chromium.org>2023-11-20 18:33:17 -0800
commit9902cb999e4e913d98e8afe4b36c08e4a793e1ce (patch)
treeac483307cac18761cc46f76cbbe32a8b327dac71 /drivers/gpu/drm/msm/msm_gem.c
parentd1912f6972b857e63577e8094f5f1242d9fe3c7d (diff)
downloadlinux-stable-9902cb999e4e913d98e8afe4b36c08e4a793e1ce.tar.gz
linux-stable-9902cb999e4e913d98e8afe4b36c08e4a793e1ce.tar.bz2
linux-stable-9902cb999e4e913d98e8afe4b36c08e4a793e1ce.zip
drm/msm/gem: Add metadata
The EXT_external_objects extension is a bit awkward as it doesn't pass explicit modifiers, leaving the importer to guess with incomplete information. In the case of vk (turnip) exporting and gl (freedreno) importing, the "OPTIMAL_TILING_EXT" layout depends on VkImageCreateInfo flags (among other things), which the importer does not know. Which unfortunately leaves us with the need for a metadata back-channel. The contents of the metadata are defined by userspace. The EXT_external_objects extension is only required to work between compatible versions of gl and vk drivers, as defined by device and driver UUIDs. v2: add missing metadata kfree v3: Rework to move copy_from/to_user out from under gem obj lock to avoid angering lockdep about deadlocks against fs-reclaim Signed-off-by: Rob Clark <robdclark@chromium.org> Patchwork: https://patchwork.freedesktop.org/patch/566157/
Diffstat (limited to 'drivers/gpu/drm/msm/msm_gem.c')
-rw-r--r--drivers/gpu/drm/msm/msm_gem.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c
index db1e748daa75..32303cc8e646 100644
--- a/drivers/gpu/drm/msm/msm_gem.c
+++ b/drivers/gpu/drm/msm/msm_gem.c
@@ -1058,6 +1058,7 @@ static void msm_gem_free_object(struct drm_gem_object *obj)
drm_gem_object_release(obj);
+ kfree(msm_obj->metadata);
kfree(msm_obj);
}