[PATCH] drm/i915: properly init lockdep class

Joonas Lahtinen joonas.lahtinen at linux.intel.com
Wed Dec 13 15:37:21 UTC 2017

On Wed, 2017-12-13 at 16:06 +0100, Sebastian Andrzej Siewior wrote:
> On 2017-12-13 16:00:49 [+0200], Joonas Lahtinen wrote:
> > 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?
> I fixed it up for RT, then robot found a way to complain about it. Then
> I slapped myself for not submitting this patch in the first place.

Right, I was kinda wondering if the robot has gained consciuousness and
is developing new checks...

> > 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.
> I don' think `ifdef CONFIG_DEBUG_SPINLOCK' is an option. Especially
> since the i915 driver here is the only user in tree doing this kind of
> thing.
> Then we have lockdep_set_class_and_name() (which I promote here). This
> looks like the official way of doing lockdep related things and it has
> even more than ten users in tree.

I think it be worthwhile to suggest would be the addition of
__spin_lock_init where you can pass in the the lockclass and name.

Regards, Joonas
Joonas Lahtinen
Open Source Technology Center
Intel Corporation

More information about the dri-devel mailing list