[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;
> -	__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