Messages in this thread | | | Date | Mon, 20 Nov 2006 16:28:32 -0500 (EST) | From | Alan Stern <> | Subject | Re: deadlock in "modprobe -r ohci1394" shortly after "modprobe ohci1394" |
| |
On Mon, 20 Nov 2006, Stefan Richter wrote:
> Alan Stern wrote: > > Wait a minute. Above you agreed that the problem was caused by knodemgrd > > attempting to rescan the host's _parent_. So which is the focus of the > > deadlock: the host or its parent? > > The parent of the hpsb_host. > > ohci1394 works on a pci_dev which contains a dev, let's call it A. > > ieee1394 has a hpsb_host which contains a dev, let's call it B. B's > parent is A. Then there is one or more node_entry with dev C whose > parent is B, end unit_directory with dev D whose parent is C. > > The bus of devices B, C, D is set to be ieee1394_bus_type, and that's > what knodemgrd is scanning. > > knodemgrd blocks on the semaphore of the parent of B because > driver_detach took the semaphore of A (and of the parent of A if there > is one).
Okay, I get it.
> > Is the problem caused by the fact that some of these struct device's > > aren't bound to a driver? Remember, bus_rescan_devices() will skip over > > anything that already has a driver. Could you solve your problem by > > adding a do_nothing driver that would bind to these otherwise unused > > devices? > > Excellently, that's what I will try in a minute. It is surely intended > that the hpsb_host can get a driver bound too, but as I mentioned, we > don't have a driver which needs this capability and I don't foresee any > such driver. > > Thanks for the directions.
You're welcome. Let me know how it turns out.
Alan Stern
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |