Re: [PATCH v1] usb: roles: add lockdep class key to struct usb_role_switch

From: Greg KH
Date: Wed Aug 14 2024 - 00:49:47 EST


On Tue, Aug 13, 2024 at 03:42:11PM -0700, Amit Sunil Dhamne wrote:
> There can be multiple role switch devices running on a platform. Given
> that lockdep is not capable of differentiating between locks of
> different instances, false positive warnings for circular locking are
> reported. To prevent this, register unique lockdep key for each of the
> individual instances.
>
> Signed-off-by: Amit Sunil Dhamne <amitsd@xxxxxxxxxx>
> ---
> drivers/usb/roles/class.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/drivers/usb/roles/class.c b/drivers/usb/roles/class.c
> index d7aa913ceb8a..807a8f18ec20 100644
> --- a/drivers/usb/roles/class.c
> +++ b/drivers/usb/roles/class.c
> @@ -11,6 +11,7 @@
> #include <linux/usb/role.h>
> #include <linux/property.h>
> #include <linux/device.h>
> +#include <linux/lockdep.h>
> #include <linux/module.h>
> #include <linux/mutex.h>
> #include <linux/slab.h>
> @@ -33,6 +34,10 @@ struct usb_role_switch {
> usb_role_switch_set_t set;
> usb_role_switch_get_t get;
> bool allow_userspace_control;
> +
> +#ifdef CONFIG_LOCKDEP
> + struct lock_class_key key;
> +#endif

Please do not put #ifdef lines in .c files, they are not needed for this
change to work properly, right?

checkpatch should have complained about this...

thanks,

greg k-h