I've added a return in the ehci-hcd.c:
static void ehci_stop (struct usb_hcd *hcd)
{
struct ehci_hcd *ehci = hcd_to_ehci (hcd);printk("ehci_stop\n");
/* no more interrupts ... */
if (hcd->state == USB_STATE_RUNNING)
ehci_ready (ehci);
if (in_interrupt ()) { /* must not happen!! */
ehci_err (ehci, "stopped in_interrupt!\n");
return;
}
del_timer_sync (&ehci->watchdog);
ehci_reset (ehci); //what you suggested
//works better. Get ksymoops later during shutdown/reboot.
//sorry. But no log in kernel.log. Cannot force with MagicKey//return;
/* let companion controllers work when we aren't */
writel (0, &ehci->regs->configured_flag);
unregister_reboot_notifier (&ehci->reboot_notifier); // shuts down without any ksymoops. Shuts down cleanly. /B
return;
// *******************************************************remove_debug_files (ehci);
/* root hub is shut down separately (first, when possible) */
spin_lock_irq (&ehci->lock);
ehci_work (ehci, NULL);
spin_unlock_irq (&ehci->lock);
ehci_mem_cleanup (ehci);The return prevens any ksymoops. Shutdown is possible.
/Bernd
David Brownell wrote:
Bernd Porr wrote:
I've added some debug info into the ehci code:
When I shut down the kernel I get following function calls:
ehci_stop ehci_work timer_action_done scan_async scan_periodic
I can't quite make sense of what you're saying. After ehci_stop() returns, ehci_work() should never again be called.
What do the driver's normal diagnostics say? (That is, CONFIG_USB_DEBUG.)
If you modify ehci_stop() to del_timer_sync() only after ehci_reset() is called, does that make things better?
[ Note I've updated the Subject: to stop implying this is related to the recent patch, since you also said it happened without that patch ... ]
- Dave
------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
