Re: [linux-usb-devel] OHCI problems with suspend/resume

From: David Brownell (
Date: Wed Jul 23 2003 - 20:19:43 EST

Pavel Machek wrote:
> Hi!
> In 2.6.0-test1, OHCI is non-functional after first suspend/resume, and
> kills machine during secon suspend/resume cycle.

Hmm, last time I tested suspend/resume it worked fine.
That was 2.5.67, but the OHCI code hasn't had any
relevant changes since then.

Evidently your system used different suspend/resume paths
than mine did ... :)

> 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.

Then the problem is that an IRQ is still coming in after the
HCD panicked.

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

Not ever????

It's freed in exactly one place, after everything should be
shut down. If it wasn't shut down, that was the problem.

Could you instead figure out why it wasn't shut down?

> and
> 2) inform user when hcd panics.

The OHCI code does that already on the normal panic path
(controller delivers a Unrecoverable Error interrupt), but
you're right that this would be better as a generic KERN_CRIT
diagnostic. (But one saying which HCD panicked, rather than
leaving folk to guess which of the N it applied to...) And
I'd print that message sooner, not waiting for that task to
be scheduled.

I'll merge that fix in with one I have in my queue.

- Dave

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

This archive was generated by hypermail 2b29 : Wed Jul 23 2003 - 22:00:51 EST