Commit fc1dd04c authored by Rob Clark's avatar Rob Clark

drm/msm: Small submit cleanup

Move more initialization into submit_create().
Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
Patchwork: https://patchwork.freedesktop.org/patch/496120/
Link: https://lore.kernel.org/r/20220802155152.1727594-3-robdclark@gmail.com
parent f0de40a1
...@@ -26,6 +26,7 @@ static struct msm_gem_submit *submit_create(struct drm_device *dev, ...@@ -26,6 +26,7 @@ static struct msm_gem_submit *submit_create(struct drm_device *dev,
struct msm_gpu_submitqueue *queue, uint32_t nr_bos, struct msm_gpu_submitqueue *queue, uint32_t nr_bos,
uint32_t nr_cmds) uint32_t nr_cmds)
{ {
static atomic_t ident = ATOMIC_INIT(0);
struct msm_gem_submit *submit; struct msm_gem_submit *submit;
uint64_t sz; uint64_t sz;
int ret; int ret;
...@@ -52,9 +53,13 @@ static struct msm_gem_submit *submit_create(struct drm_device *dev, ...@@ -52,9 +53,13 @@ static struct msm_gem_submit *submit_create(struct drm_device *dev,
submit->gpu = gpu; submit->gpu = gpu;
submit->cmd = (void *)&submit->bos[nr_bos]; submit->cmd = (void *)&submit->bos[nr_bos];
submit->queue = queue; submit->queue = queue;
submit->pid = get_pid(task_pid(current));
submit->ring = gpu->rb[queue->ring_nr]; submit->ring = gpu->rb[queue->ring_nr];
submit->fault_dumped = false; 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); INIT_LIST_HEAD(&submit->node);
return submit; return submit;
...@@ -718,7 +723,6 @@ static void msm_process_post_deps(struct msm_submit_post_dep *post_deps, ...@@ -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, int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
struct drm_file *file) struct drm_file *file)
{ {
static atomic_t ident = ATOMIC_INIT(0);
struct msm_drm_private *priv = dev->dev_private; struct msm_drm_private *priv = dev->dev_private;
struct drm_msm_gem_submit *args = data; struct drm_msm_gem_submit *args = data;
struct msm_file_private *ctx = file->driver_priv; struct msm_file_private *ctx = file->driver_priv;
...@@ -729,10 +733,9 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data, ...@@ -729,10 +733,9 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
struct msm_submit_post_dep *post_deps = NULL; struct msm_submit_post_dep *post_deps = NULL;
struct drm_syncobj **syncobjs_to_reset = NULL; struct drm_syncobj **syncobjs_to_reset = NULL;
int out_fence_fd = -1; int out_fence_fd = -1;
struct pid *pid = get_pid(task_pid(current));
bool has_ww_ticket = false; bool has_ww_ticket = false;
unsigned i; unsigned i;
int ret, submitid; int ret;
if (!gpu) if (!gpu)
return -ENXIO; return -ENXIO;
...@@ -764,12 +767,7 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data, ...@@ -764,12 +767,7 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
if (!queue) if (!queue)
return -ENOENT; return -ENOENT;
/* Get a unique identifier for the submission for logging purposes */
submitid = atomic_inc_return(&ident) - 1;
ring = gpu->rb[queue->ring_nr]; 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) { if (args->flags & MSM_SUBMIT_FENCE_FD_OUT) {
out_fence_fd = get_unused_fd_flags(O_CLOEXEC); out_fence_fd = get_unused_fd_flags(O_CLOEXEC);
...@@ -783,13 +781,13 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data, ...@@ -783,13 +781,13 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
if (IS_ERR(submit)) if (IS_ERR(submit))
return PTR_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); ret = mutex_lock_interruptible(&queue->lock);
if (ret) if (ret)
goto out_post_unlock; goto out_post_unlock;
submit->pid = pid;
submit->ident = submitid;
if (args->flags & MSM_SUBMIT_SUDO) if (args->flags & MSM_SUBMIT_SUDO)
submit->in_rb = true; submit->in_rb = true;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment