patch "usb: roles: Call try_module_get() from" added to usb-next
Subsystems (2)
This is a note to let you know that I've just added the patch titled
usb: roles: Call try_module_get() from
to my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-next branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will also be merged in the next major kernel release during the merge window.
If you have any questions about this process, please let me know.
From 3a2a91a2d51761557843996a66098eb7182b48b4 Mon Sep 17 00:00:00 2001
From: Hans de Goede <[email protected]>
Date: Fri, 9 Apr 2021 14:41:36 +0200
Subject: usb: roles: Call try_module_get() from
usb_role_switch_find_by_fwnode()
usb_role_switch_find_by_fwnode() returns a reference to the role-switch which must be put by calling usb_role_switch_put().
usb_role_switch_put() calls module_put(sw->dev.parent->driver->owner), add a matching try_module_get() to usb_role_switch_find_by_fwnode(), making it behave the same as the other usb_role_switch functions which return a reference.
This avoids a WARN_ON being hit at kernel/module.c:1158 due to the module-refcount going below 0.
--- drivers/usb/roles/class.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/usb/roles/class.c +2 -0
@@ -189,6 +189,8 @@ usb_role_switch_find_by_fwnode(const struct fwnode_handle *fwnode)return NULL ; dev =class_find_device_by_fwnode (role_class, fwnode); +if (dev) +WARN_ON (!try_module_get (dev->parent->driver->owner));return dev ?to_role_switch (dev) :NULL ; }
Signature · 1 line
2.31.1