[PATCH] drm/i915: properly init lockdep class
Joonas Lahtinen
joonas.lahtinen at linux.intel.com
Wed Dec 13 14:00:49 UTC 2017
On Thu, 2017-11-30 at 16:19 +0100, Sebastian Andrzej Siewior wrote:
> The code has an ifdef and uses two functions to either init the bare
> spinlock or init it and set a lock-class. It is possible to do the same
> thing without an ifdef.
> With this patch (in debug case) we first use the "default" lock class
> which is later overwritten to the supplied one. Without lockdep the set
> name/class function vanishes.
>
> Reported-by: kbuild test robot <fengguang.wu at intel.com>
How exactly did kbuild test robot figure this out?
At least according to the source there doesn't seem to be clarity about
what is the right thing to do, this being just one option.
Regards, Joonas
> +++ b/drivers/gpu/drm/i915/i915_gem_timeline.c
> @@ -33,11 +33,8 @@ static void __intel_timeline_init(struct
> {
> tl->fence_context = context;
> tl->common = parent;
> -#ifdef CONFIG_DEBUG_SPINLOCK
> - __raw_spin_lock_init(&tl->lock.rlock, lockname, lockclass);
> -#else
> spin_lock_init(&tl->lock);
> -#endif
> + lockdep_set_class_and_name(&tl->lock, lockclass, lockname);
> init_request_active(&tl->last_request, NULL);
> INIT_LIST_HEAD(&tl->requests);
> i915_syncmap_init(&tl->sync);
--
Joonas Lahtinen
Open Source Technology Center
Intel Corporation
More information about the dri-devel
mailing list