Re: [RFC PATCH 0/4] device_schedule_reprobe(): core helper and conversions
Greg Kroah-Hartman <[email protected]>
| Newsgroups | org.kernel.vger.linux-bluetooth,dev.linux.lists.driver-core,org.kernel.vger.linux-kernel,org.kernel.vger.linux-wireless,org.kernel.vger.netdev |
|---|---|
| Message-ID | <2026081139-strenuous-greasily-f4e5@gregkh> |
On Tue, Aug 11, 2026 at 01:47:17AM +0100, Daniel Golle wrote: > Three in-tree drivers (iwlwifi, hci_h5, btintel_pcie) schedule a > deferred re-probe of their own device from a work item in module > text. That's a mess, why? Why not fix that up to not do that? Thousands of other kernel drivers do not do that, what makes these so special? > The hand-rolled copies share two bug classes: the work function > ends with module_put(THIS_MODULE), That's broken as-is. a module should NEVER be calling module_get(THIS_MODULE) either. > racing a concurrent rmmod freeing > the module text (the race module_put_and_kthread_exit() exists to > close for kthreads), and nothing synchronizes the deferred detach > against device_shutdown() or an administrative unbind. yeah, that's a mess, don't do that. Fix up the original drivers please, let's not encourage others to copy this broken scheme. Also, your patches were not threaded properly :( thanks, greg k-h