On Mon, 2 Aug 2021, Uwe Kleine-König wrote: > > > > BTW, aside from nubus, zorro and superhyway you can find the same > > pattern in many other busses. You may want to patch the following > > methods too. > > > > acpi_device_remove > > apr_device_remove > > ccwgroup_remove > > gio_device_remove > > hid_device_remove > > ibmebus_bus_device_remove > > macio_device_remove > > memstick_device_remove > > ntb_remove > > pci_device_remove > > pnp_device_remove > > ps3_system_bus_remove > > rio_device_remove > > slim_device_remove > > soundbus_device_remove > > ssb_device_remove > > tifm_device_remove > > vdpa_dev_remove > > vmbus_remove > > Did you find these by hand? Or using a coccinelle match? > I used grep and visual inspection. > Anyhow, thanks for the list, I'll add it to my todo list but if you're > motivated don't consider these cleanups as my property. (Please Cc: me > though to prevent duplicated effort.) > I went looking for the other examples of this pattern because I wanted to understand it better. Then I realized that I might as well make a list since I was searching anyway. When skimming that code, I took the impression that the dev->driver == NULL test probably comes from old code written before the 'remove' functions became bus methods. See also commit 594c8281f905 ("[PATCH] Add bus_type probe, remove, shutdown methods.") Back when I wrote drivers/nubus/bus.c, apparently I copied-and-pasted the old pattern from drivers/pci/pci-driver.c, even though that pattern was already obsolete. So I do see the value in this cleanup but I'm afraid I'm too busy to help further. If you don't want to finish it perhaps you can get the janitors to do so.