From: Rob Clark <robdcl...@chromium.org>

Move more initialization into submit_create().

Signed-off-by: Rob Clark <robdcl...@chromium.org>
---
 drivers/gpu/drm/msm/msm_gem_submit.c | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c 
b/drivers/gpu/drm/msm/msm_gem_submit.c
index b7c61a99d274..c7819781879c 100644
--- a/drivers/gpu/drm/msm/msm_gem_submit.c
+++ b/drivers/gpu/drm/msm/msm_gem_submit.c
@@ -26,6 +26,7 @@ static struct msm_gem_submit *submit_create(struct drm_device 
*dev,
                struct msm_gpu_submitqueue *queue, uint32_t nr_bos,
                uint32_t nr_cmds)
 {
+       static atomic_t ident = ATOMIC_INIT(0);
        struct msm_gem_submit *submit;
        uint64_t sz;
        int ret;
@@ -52,9 +53,13 @@ static struct msm_gem_submit *submit_create(struct 
drm_device *dev,
        submit->gpu = gpu;
        submit->cmd = (void *)&submit->bos[nr_bos];
        submit->queue = queue;
+       submit->pid = get_pid(task_pid(current));
        submit->ring = gpu->rb[queue->ring_nr];
        submit->fault_dumped = false;
 
+       /* Get a unique identifier for the submission for logging purposes */
+       submit->ident = atomic_inc_return(&ident) - 1;
+
        INIT_LIST_HEAD(&submit->node);
 
        return submit;
@@ -718,7 +723,6 @@ static void msm_process_post_deps(struct 
msm_submit_post_dep *post_deps,
 int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
                struct drm_file *file)
 {
-       static atomic_t ident = ATOMIC_INIT(0);
        struct msm_drm_private *priv = dev->dev_private;
        struct drm_msm_gem_submit *args = data;
        struct msm_file_private *ctx = file->driver_priv;
@@ -729,10 +733,9 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void 
*data,
        struct msm_submit_post_dep *post_deps = NULL;
        struct drm_syncobj **syncobjs_to_reset = NULL;
        int out_fence_fd = -1;
-       struct pid *pid = get_pid(task_pid(current));
        bool has_ww_ticket = false;
        unsigned i;
-       int ret, submitid;
+       int ret;
 
        if (!gpu)
                return -ENXIO;
@@ -764,12 +767,7 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void 
*data,
        if (!queue)
                return -ENOENT;
 
-       /* Get a unique identifier for the submission for logging purposes */
-       submitid = atomic_inc_return(&ident) - 1;
-
        ring = gpu->rb[queue->ring_nr];
-       trace_msm_gpu_submit(pid_nr(pid), ring->id, submitid,
-               args->nr_bos, args->nr_cmds);
 
        if (args->flags & MSM_SUBMIT_FENCE_FD_OUT) {
                out_fence_fd = get_unused_fd_flags(O_CLOEXEC);
@@ -783,13 +781,13 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void 
*data,
        if (IS_ERR(submit))
                return PTR_ERR(submit);
 
+       trace_msm_gpu_submit(pid_nr(submit->pid), ring->id, submit->ident,
+               args->nr_bos, args->nr_cmds);
+
        ret = mutex_lock_interruptible(&queue->lock);
        if (ret)
                goto out_post_unlock;
 
-       submit->pid = pid;
-       submit->ident = submitid;
-
        if (args->flags & MSM_SUBMIT_SUDO)
                submit->in_rb = true;
 
-- 
2.36.1

Reply via email to