drm/vc4: Convert timers to use timer_setup()

In preparation for unconditionally passing the struct timer_list pointer to
all timer callbacks, switch to using the new timer_setup() and from_timer()
to pass the timer pointer explicitly.

Cc: Eric Anholt <eric@anholt.net>
Cc: David Airlie <airlied@linux.ie>
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20171024151648.GA104538@beast
Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Kees Cook 2017-10-24 08:16:48 -07:00
parent bca237a52c
commit 0078730f5b
2 changed files with 7 additions and 12 deletions

View File

@ -674,10 +674,9 @@ void vc4_bo_dec_usecnt(struct vc4_bo *bo)
mutex_unlock(&bo->madv_lock); mutex_unlock(&bo->madv_lock);
} }
static void vc4_bo_cache_time_timer(unsigned long data) static void vc4_bo_cache_time_timer(struct timer_list *t)
{ {
struct drm_device *dev = (struct drm_device *)data; struct vc4_dev *vc4 = from_timer(vc4, t, bo_cache.time_timer);
struct vc4_dev *vc4 = to_vc4_dev(dev);
schedule_work(&vc4->bo_cache.time_work); schedule_work(&vc4->bo_cache.time_work);
} }
@ -1039,9 +1038,7 @@ int vc4_bo_cache_init(struct drm_device *dev)
INIT_LIST_HEAD(&vc4->bo_cache.time_list); INIT_LIST_HEAD(&vc4->bo_cache.time_list);
INIT_WORK(&vc4->bo_cache.time_work, vc4_bo_cache_time_work); INIT_WORK(&vc4->bo_cache.time_work, vc4_bo_cache_time_work);
setup_timer(&vc4->bo_cache.time_timer, timer_setup(&vc4->bo_cache.time_timer, vc4_bo_cache_time_timer, 0);
vc4_bo_cache_time_timer,
(unsigned long)dev);
return 0; return 0;
} }

View File

@ -312,10 +312,10 @@ vc4_reset_work(struct work_struct *work)
} }
static void static void
vc4_hangcheck_elapsed(unsigned long data) vc4_hangcheck_elapsed(struct timer_list *t)
{ {
struct drm_device *dev = (struct drm_device *)data; struct vc4_dev *vc4 = from_timer(vc4, t, hangcheck.timer);
struct vc4_dev *vc4 = to_vc4_dev(dev); struct drm_device *dev = vc4->dev;
uint32_t ct0ca, ct1ca; uint32_t ct0ca, ct1ca;
unsigned long irqflags; unsigned long irqflags;
struct vc4_exec_info *bin_exec, *render_exec; struct vc4_exec_info *bin_exec, *render_exec;
@ -1154,9 +1154,7 @@ vc4_gem_init(struct drm_device *dev)
spin_lock_init(&vc4->job_lock); spin_lock_init(&vc4->job_lock);
INIT_WORK(&vc4->hangcheck.reset_work, vc4_reset_work); INIT_WORK(&vc4->hangcheck.reset_work, vc4_reset_work);
setup_timer(&vc4->hangcheck.timer, timer_setup(&vc4->hangcheck.timer, vc4_hangcheck_elapsed, 0);
vc4_hangcheck_elapsed,
(unsigned long)dev);
INIT_WORK(&vc4->job_done_work, vc4_job_done_work); INIT_WORK(&vc4->job_done_work, vc4_job_done_work);