Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Strange USB crash



On Fri, Jun 04, 2010 at 05:22:27PM -0700, Paul Goyette wrote:
> After having had my previous motherboard go belly-up, I've replaced
> it with a new one.  The entire dmesg is attached, but here's the
> relevant messages for the ohci devices:
> 
 ~~
> 
> I've had multiple crashes for no apparent reason, under varying I/O
> loads (including nothing but CPU-bound code-cracker), and the
> backtrace is always the same:
> 
>       panic + 0x2ba
>       ohci_softintr + 0x466
>       softint_dispatch + 0xcc
> 
> gdb says that the address ohci_softintr+0x466 is in dev/usb/ohci.c at
> 
>                                 if (sitd->flags & OHCI_CALL_DONE)
>                                         break;
>                                 ohci_free_sitd(sc, sitd);
>                         }
>     >>>>                ohci_free_sitd(sc, sitd);
>                         if (uedir == UE_DIR_IN &&
>                             xfer->status == USBD_NORMAL_COMPLETION)
>                                 xfer->actlen = actlen;
>                         xfer->hcpriv = NULL;
> 
> And ohci_free_sitd() is defined in the same file as
> 
>       void
>       ohci_free_sitd(ohci_softc_t *sc, ohci_soft_itd_t *sitd)
>       {
>               int s;
> 
>               DPRINTFN(10,("ohci_free_sitd: sitd=%p\n", sitd));
> 
>       #ifdef DIAGNOSTIC
>               if (!sitd->isdone) {
>                       panic("ohci_free_sitd: sitd=%p not done", sitd);
>                       return;
>               }
>               /* Warn double free */
>               sitd->isdone = 0;
>       #endif
>       ...
> 
> 
> Yes, my kernel does have 'options DIAGNOSTIC' turned on (I don't
> remember why, it's just been on forever!) so hitting that panic is
> certainly possible.
> 
> My questions to the usb experts:
> 
> 1) should I just rebuild without DIAGNOSTIC and ignore the error?
> 
> 2) Is "something bad(tm)" going to happen later if it does double-free?
> 
> 3) Is this indicative of some other underlying problem?
> 
>    And if so, how would I go about finding and fixing it?
> 
> For now, I'm going to remove DIAGNOSTIC, since I really need my nfs
> server to be relatively stable.  :)

Sure this isn't kern/30398?

        Jonathan Kollasch


Home | Main Index | Thread Index | Old Index