Looks like we have forgotten to switch off the timer-driven
interrupt callback of the virtual root hub in suspend mode.
I will look at this on the weekend.

 Roman


Miles Lane wrote:
> 
> One other note, the machine did not crash with an OOPS message
> this time.  I just got the error output.  The machine suspended
> and unsuspended with no apparent problems.
> 
>         Miles
> 
> Miles Lane wrote:
> >
> > I build ac19 with the patch.  Here's the result of "apm -s":
> >
> > spurious 8259A interrupt: IRQ7.
> > usb-ohci.c: rh_send_irq given bogus controller address c5880000
> > usb-ohci.c: rh_send_irq given bogus controller address c5880000
> > usb-ohci.c: rh_send_irq given bogus controller address c5880000
> > usb-ohci.c: rh_send_irq given bogus controller address c5880000
> > usb-ohci.c: rh_send_irq given bogus controller address c5880000
> > usb-ohci.c: rh_send_irq given bogus controller address c5880000
> > usb-ohci.c: rh_send_irq given bogus controller address c5880000
> > usb-ohci.c: rh_send_irq given bogus controller address c5880000
> > usb-ohci.c: rh_send_irq given bogus controller address c5880000
> > usb-ohci.c: rh_send_irq given bogus controller address c5880000
> > usb-ohci.c: rh_send_irq given bogus controller address c5880000
> > usb-ohci.c: rh_send_irq given bogus controller address c5880000
> > usb-ohci.c: rh_send_irq given bogus controller address c5880000
> > usb-ohci.c: rh_send_irq given bogus controller address c5880000
> > cs: cb_free(bus 3)
> > usb-ohci.c: rh_send_irq given bogus controller address c5880000
> > usb-ohci.c: rh_send_irq given bogus controller address c5880000
> >
> > Not sure if this helps.
> >
> >         Miles
> >
> > David Brownell wrote:
> > >
> > > I hate seeing oops traces that look familiar ... this being
> > > the one where the rh_send_irq() code got a bogus pointer to
> > > an OHCI controller, so it's not surprising that it oopsed
> > > when accessing a non-existent root hub port on it.
> > >
> > > I attach a patch that tries to detect such cases a bit earlier
> > > in the call chain.  It should help a bit to determine whether
> > > this is happening because of a bug inside the OHCI driver (it's
> > > causing the bogus pointer itself) or outside (maybe some other
> > > component trashed the timer callback).
> > >
> > > Please try this patch and lets see if it gives better information.
> > > It behaves on my hardware, which doesn't see such Oopsen.
> > >
> > > - Dave
> > >
> > > > *pde = 00000000
> > > > Oops: 0000
> > > > CPU: 0
> > > > EIP: 0010:[<c587ece1>]
> > > > Using defaults from ksymoops -t elf32-i386 -a i386
> > > > EFLAGS: 00010292
> > > > eax: 14c589f4 ebx: 00000068 ecx: 0000009e edx: 00000000
> > > > esi: 0000000c edi: c0289f1c ebp: 00000061 esp: c0289ef8
> > > > ds: 0018 es: 0018 ss: 0018
> > > > Stack: c1e4c540 00000000 c02e06a0 c587ed7c 00000001 00000001 c0289f1e
> > > > 00002a1b
> > > >        000000ff ffffffff ffffffff ffffffff c1f0e001 c1e4d8e8 00000001
> > > > c1e4c540
> > > >        c0121441 c1e4c540 00000000 00000000 c02e06a0 c02e0660 00000000
> > > > c010f158
> > > > Call trace: [<c587ed7c>] [<c012144c>] [<c010f158>] [<c011e253>]
> > > > [<c011e1b0>]
> > > >             [<c011e0af>] [<c010c40e>] [<c0108c40>] [<c0108c40>]
> > > > [<c010b2f8>]
> > > >             [<c0108c40>] [<c0108c40>] [<c0100018>] [<c0108c63>]
> > > > [<c0108ca4>]
> > > >             [<c0105000>] [<c010018d>]
> > > > Code: 8b 00 a9 00 00 1f 00 74 16 b8 01 00 00 00 8b 4c 24 10 d3 e0
> > > >
> > > > >>EIP; c587ece1 <[usb-ohci]rh_send_irq+c5/160>   <=====
> > > > Trace; c587ed7c <[usb-ohci]rh_int_timer_do+0/54>
> > > > Trace; c012144c <timer_bh+26c/2a8>
> > > > Trace; c010f158 <timer_interrupt+84/f0>
> > > > Trace; c011e253 <bh_action+1b/60>
> > > > Trace; c011e1b0 <tasklet_hi_action+38/60>
> > > > Trace; c011e0af <do_softirq+4f/70>
> > > > Trace; c010c40e <do_IRQ+a6/b8>
> > > > Trace; c0108c40 <default_idle+0/28>
> > > > Trace; c0108c40 <default_idle+0/28>
> > > > Trace; c010b2f8 <ret_from_intr+0/20>
> > > > Trace; c0108c40 <default_idle+0/28>
> > > > Trace; c0108c40 <default_idle+0/28>
> > > > Trace; c0100018 <startup_32+18/135>
> > > > Trace; c0108c63 <default_idle+23/28>
> > > > Trace; c0108ca4 <cpu_idle+3c/50>
> > > > Trace; c0105000 <empty_bad_page+0/1000>
> > > > Trace; c010018d <L6+0/2>
> > > > Code;  c587ece1 <[usb-ohci]rh_send_irq+c5/160>
> > > > 00000000 <_EIP>:
> > > > Code;  c587ece1 <[usb-ohci]rh_send_irq+c5/160>   <=====
> > > >    0:   8b 00                     mov    (%eax),%eax   <=====
> > > > Code;  c587ece3 <[usb-ohci]rh_send_irq+c7/160>
> > > >    2:   a9 00 00 1f 00            test   $0x1f0000,%eax
> > > > Code;  c587ece8 <[usb-ohci]rh_send_irq+cc/160>
> > > >    7:   74 16                     je     1f <_EIP+0x1f> c587ed00
> > > > <[usb-ohci]rh_send_irq+e4/160>
> > > > Code;  c587ecea <[usb-ohci]rh_send_irq+ce/160>
> > > >    9:   b8 01 00 00 00            mov    $0x1,%eax
> > > > Code;  c587ecef <[usb-ohci]rh_send_irq+d3/160>
> > > >    e:   8b 4c 24 10               mov    0x10(%esp,1),%ecx
> > > > Code;  c587ecf3 <[usb-ohci]rh_send_irq+d7/160>
> > > >   12:   d3 e0                     shl    %cl,%eax
> > > >
> > >
> > >   ------------------------------------------------------------------------
> > >                           Name: ohci-paranoid.patch
> > >    ohci-paranoid.patch    Type: unspecified type (application/octet-stream)
> > >                       Encoding: quoted-printable
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to