Messages in this thread | | | Date | Thu, 6 Dec 2012 16:09:54 -0800 | Subject | Re: Race condition between driver_probe_device and device_shutdown | From | Wedson Almeida Filho <> |
| |
I don't have the setup anymore, I'll give it a shot if I ever get back it back.
I have a question though: why do we need to get a reference to the parent? If the assumption is that the callee can release its reference to the parent, then one may also expect callees to reassign dev->parent (e.g., by calling device_move), so it wouldn't be safe to later call device_unlock on the potentially different dev->parent.
If we expect dev->parent to remain unchanged, then there's no need to get an extra reference to the parent as the device itself already holds one (and we hold an extra one on the device).
What am I missing?
Thanks
On Thu, Dec 6, 2012 at 2:52 AM, Ming Lei <ming.lei@canonical.com> wrote: > On Thu, Dec 6, 2012 at 5:11 PM, Wedson Almeida Filho <wedsonaf@gmail.com> wrote: >> [Sorry for taking so long to respond, after a week of silence I >> assumed I wouldn't get any responses, plus I had moved on to other >> things.] >> >> I happen to still have the logs, the relevant part is pasted at the end. >> >> Answering some of the questions: the driver is on the platform bus, in >> fact, it's drivers/usb/host/ehci-tegra.c; after seeing the oops below, >> I added printks when entering and exiting tegra_ehci_probe to try to >> understand it better. >> >> Note that in the log we see some thread entering tegra_ehci_probe, but >> nothing indicates that it has exited before we get the oops. > > The commit d1c6c030fcec6f860d9bb6c632a3ebe62e28440b(driver core: > fix shutdown races with probe/remove(v3)) has been merged to v3.6, so > device_shutdown will wait for completing of probe. > > Could you test kernel 3.6 or the latest kernel to see if the problem can be > reproduced? > > Thanks, > -- > Ming Lei
| |