On Fri, Aug 18, 2023 at 05:56:20PM +0200, Joerg Roedel wrote: > On Thu, Aug 17, 2023 at 03:33:16PM -0300, Jason Gunthorpe wrote: > > Bascially.. Yikes! > > Hmm, that is a difficult situation. Even if the problem is a misuse of > the APIs we can not just blindly break other drivers by our core > changes. They are not broken, they just throw a lockdep warning and keep going as before. This is what triggers: static inline void device_lock_assert(struct device *dev) { lockdep_assert_held(&dev->mutex); } So non-debug builds won't even see anything. > We need to resolve this situation pretty soon, otherwise I need to > remove the locking rework patches from the IOMMU tree until the > callers are fixed. > > Is there a way to keep the broken drivers working for now? Historically we've tolerated lockdep warnings as a way to motivate people who care to fix their stuff properly. eg the Intel VT-D had a lockdep warning at kernel boot for many releases before it was fixed. The series doesn't make things any functionally worse for these places misusing the API, but it now does throw a warning in some cases. IMHO I'd rather keep the warning rather than supress it by adding device_locks(). Do you agree? Jason