summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/msm/msm_gem.h
diff options
context:
space:
mode:
authorKristian H. Kristensen2019-03-20 18:09:10 +0100
committerRob Clark2019-04-19 20:50:07 +0200
commitb673499ae738e7790b1b9f65e784999e5804abd3 (patch)
tree0ff449011902700b976bb2370ac1951e292a3055 /drivers/gpu/drm/msm/msm_gem.h
parentdrm/msm: Stop dropping struct_mutex in recover_worker() (diff)
downloadkernel-qcow2-linux-b673499ae738e7790b1b9f65e784999e5804abd3.tar.gz
kernel-qcow2-linux-b673499ae738e7790b1b9f65e784999e5804abd3.tar.xz
kernel-qcow2-linux-b673499ae738e7790b1b9f65e784999e5804abd3.zip
drm/msm: Split submit_lookup_objects() into two loops
First loop does copy_from_user() without the table lock held and just stores the handle. Second loop looks up buffer objects with the table_lock held without potentially blocking or faulting. This lets us clean up a bunch of custom, non-faulting copy_from_user() code. Signed-off-by: Kristian H. Kristensen <hoegsberg@chromium.org> Signed-off-by: Rob Clark <robdclark@chromium.org>
Diffstat (limited to 'drivers/gpu/drm/msm/msm_gem.h')
-rw-r--r--drivers/gpu/drm/msm/msm_gem.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/msm/msm_gem.h b/drivers/gpu/drm/msm/msm_gem.h
index 0617c44d99b0..c5ac781dffee 100644
--- a/drivers/gpu/drm/msm/msm_gem.h
+++ b/drivers/gpu/drm/msm/msm_gem.h
@@ -166,7 +166,10 @@ struct msm_gem_submit {
} *cmd; /* array of size nr_cmds */
struct {
uint32_t flags;
- struct msm_gem_object *obj;
+ union {
+ struct msm_gem_object *obj;
+ uint32_t handle;
+ };
uint64_t iova;
} bos[0];
};