On Fri, Jun 09, 2023 at 11:11:39PM -0700, Eric Biggers wrote: > From: Eric Biggers <ebiggers@xxxxxxxxxx> > > When a device-mapper device is passing through the inline encryption > support of an underlying device, calls to blk_crypto_evict_key() take > the blk_crypto_profile::lock of the device-mapper device, then take the > blk_crypto_profile::lock of the underlying device (nested). This isn't > a real deadlock, but it causes a lockdep report because there is only > one lock class for all instances of this lock. > > Lockdep subclasses don't really work here because the hierarchy of block > devices is dynamic and could have more than 2 levels. > > Instead, register a dynamic lock class for each blk_crypto_profile, and > associate that with the lock. Jens, can you apply this? - Eric