On Fri, 15 Oct 2004, Paul Fulghum wrote: > This looks like it is related to the generic-irq-subsystem patches. > Specifically, adding and removing proc entries for each interrupt. > > Laurent's configuration has two controllers sharing the same interrupt. > The hcd->description for both controllers are identical: "uhci_hcd" > > This string is used when requesting the irq (hcd-pci.c). > request_irq() creates a /proc/irq/nn/uhci_hcd entry. > The IRQ action->dir (one for each device) is a pointer to this entry. > There does not appear to be a check for name collision > when creating this entry. So two identical entries are created, > one for each device. The proc entries are added to the head of > a list so the second entry is 1st in the list. > > When unloading the module, the proc entry is removed when free_irq() > is called. Removal of the proc entry is based on name matching > starting at the head of the list so the 2nd entry is found 1st. > It looks like the proc entry of the second device is removed > when calling free_irq() for the first device. When the > second device is removed, the action->dir has already > been freed causing the oops. > > Comments?
Your explanation sounds entirely reasonable to me. Can you pass it on to the people responsible for the generic-irq subsystem? Alan Stern ------------------------------------------------------- This SF.net email is sponsored by: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel