The reset.work work_struct and its rocket_reset_work() handler were
initialized and cancelled, but never actually queued: no code path calls
queue_work()/schedule_work() on core->reset.work. The only reset entry
point is the scheduler's timedout_job callback, rocket_job_timedout(),
which invokes rocket_reset() directly on the timeout workqueue.

Drop the dead worker, its initialization and cancellation, and the
unused struct member.

Signed-off-by: Maíra Canal <[email protected]>
---
 drivers/accel/rocket/rocket_core.h |  1 -
 drivers/accel/rocket/rocket_job.c  | 10 ----------
 2 files changed, 11 deletions(-)

diff --git a/drivers/accel/rocket/rocket_core.h 
b/drivers/accel/rocket/rocket_core.h
index f6d7382854ca..4d163a6ac653 100644
--- a/drivers/accel/rocket/rocket_core.h
+++ b/drivers/accel/rocket/rocket_core.h
@@ -48,7 +48,6 @@ struct rocket_core {
 
        struct {
                struct workqueue_struct *wq;
-               struct work_struct work;
                atomic_t pending;
        } reset;
 
diff --git a/drivers/accel/rocket/rocket_job.c 
b/drivers/accel/rocket/rocket_job.c
index 2f1861f960cc..8a26139a44f4 100644
--- a/drivers/accel/rocket/rocket_job.c
+++ b/drivers/accel/rocket/rocket_job.c
@@ -393,14 +393,6 @@ static enum drm_gpu_sched_stat rocket_job_timedout(struct 
drm_sched_job *sched_j
        return DRM_GPU_SCHED_STAT_RESET;
 }
 
-static void rocket_reset_work(struct work_struct *work)
-{
-       struct rocket_core *core;
-
-       core = container_of(work, struct rocket_core, reset.work);
-       rocket_reset(core, NULL);
-}
-
 static const struct drm_sched_backend_ops rocket_sched_ops = {
        .run_job = rocket_job_run,
        .timedout_job = rocket_job_timedout,
@@ -444,7 +436,6 @@ int rocket_job_init(struct rocket_core *core)
        };
        int ret;
 
-       INIT_WORK(&core->reset.work, rocket_reset_work);
        spin_lock_init(&core->fence_lock);
        mutex_init(&core->job_lock);
 
@@ -488,7 +479,6 @@ void rocket_job_fini(struct rocket_core *core)
 {
        drm_sched_fini(&core->sched);
 
-       cancel_work_sync(&core->reset.work);
        destroy_workqueue(core->reset.wq);
 }
 

-- 
2.54.0

Reply via email to