On 19-07-08 17:44, Arjan van de Ven wrote:Yes, I see. Unfortunately, WITH your patches, driver_probe_done() would also no longer be safe when run from a late_initcall() it would appear. driver_probe_done() tests a variable that's incremented just before the driver model calls into the driver .probe method and decremented on return from it (really_probe). However, if the entire module_init() is async the probing may not even have _started_ yet let alone finished. Let's take ehci_hcd_init() as an example both since you changed that one and since it'll fairly often be en route to mass storage devices. Only after ehci_init() calls foo_register_driver() is the driver model aware of it and will it start calling the probe methods meaning the driver_probe_done() would be racing. I have the sneaking suspicion that this is a bit of a fundamental issue. Turning some of the driver level (6) async basicaly removes the ordering between drivers and late_initcall (level 7). I trust it will completely and utterly destroy the point of this patch to flush level 6a before starting level 7? Well, yes, but bugs are bugs. CCing Pavel and Rafael as well :-) Rene. --
| Hiten Pandya | Re: up? (emacs docbook xml ide) |
| Martin Michlmayr | Network slowdown due to CFS |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
git: | |
| Christos Zoulas | Re: Boot device confusion |
| Manuel Bouyer | Re: NFSv3 bug |
| Anders Magnusson | Re: setsockopt() compat issue |
| Martin Husemann | Re: Compressed vnd handling tested successfully |
