Hi!

In 2.6.0-test1, OHCI is non-functional after first suspend/resume, and
kills machine during secon suspend/resume cycle.

What happens is that ohci_irq gets ohci->hcca == NULL, and kills
machine. Why is ohci->hcca == NULL? ohci_stop was called from
hcd_panic() and freed ohci->hcca.

I believe that we should

1) not free ohci->hcca so that system has better chance surviving
hcd_panic()

and 

2) inform user when hcd panics.

This patch does both, please apply,

[Okay, you probably want to kill the ifdefs, and kill the code,
leaving just a comment...]
                                                                Pavel

--- /usr/src/tmp/linux/drivers/usb/core/hcd.c   2003-07-06 20:07:49.000000000 +0200
+++ /usr/src/linux/drivers/usb/core/hcd.c       2003-07-23 23:32:55.000000000 +0200
@@ -1486,6 +1486,7 @@
 static void hcd_panic (void *_hcd)
 {
        struct usb_hcd *hcd = _hcd;
+       printk(KERN_CRIT "Host controller panicked\n");
        hcd->driver->stop (hcd);
 }
 
--- /usr/src/tmp/linux/drivers/usb/host/ohci-hcd.c      2003-05-27 13:43:39.000000000 
+0200
+++ /usr/src/linux/drivers/usb/host/ohci-hcd.c  2003-07-23 23:31:46.000000000 +0200
@@ -627,12 +632,18 @@
        
        remove_debug_files (ohci);
        ohci_mem_cleanup (ohci);
+#if 0
+       /* Freeing hcca at this point is bad idea, because ohci_irq
+          can't cope with ohci->hcca being NULL, and therefore will
+          crash the machine after hcd_panic()
+        */
        if (ohci->hcca) {
                pci_free_consistent (ohci->hcd.pdev, sizeof *ohci->hcca,
                                        ohci->hcca, ohci->hcca_dma);
                ohci->hcca = NULL;
                ohci->hcca_dma = 0;
        }
+#endif
 }
 
 /*-------------------------------------------------------------------------*/

-- 
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]


-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to