Re: [Em28xx] dvb-core random crashes

Alan Stern <[email protected]>
Newsgroups gmane.linux.usb.devel,gmane.linux.drivers.em28xx
Message-ID <[email protected]>
On Tue, 10 Jul 2007, Christoph wrote:

> Alan Stern schrieb:
> > On Sun, 8 Jul 2007, Markus Rechberger wrote:
> > 
> >> On 7/8/07, Christoph <[email protected]> wrote:
> >>> Hallo Markus!
> >>>
> >>> I'm using a Pinnacle PCTV DVB-T for several months now without serious
> >>> problems.
> >>> So far I used it only with my Notebook. Now I set up a Mini-ITX Machine with
> >>> MythTV running 24/24h.
> >>>
> >>> The machine freezes ~36h ... black screen, even no sysrq. (Debian etch
> >>> 2.6.18-4-k7).
> >>> So I setup kexec, kernel 2.6.21, v4l 5877:e9a7be188b2b and now I got a
> >>> backtrace:
> >>>
> >>> <1>[16645.528000] BUG: unable to handle kernel NULL pointer dereference at
> >>> virtual address 0
> >>> 0000068
> >>> [...]
> >>> [16645.528000] EIP is at end_unlink_async+0x1b/0xc5 [ehci_hcd]
> >>> [16645.528000] eax: 00000060   ebx: de4f20dc   ecx: df912020   edx: df8f0b57
> >>> [16645.528000] esi: 00000000   edi: de4f20dc   ebp: c58a9d4c   esp: c58a9d40
> >>> [16645.528000] ds: 007b   es: 007b   fs: 00d8  gs: 0033  ss: 0068
> >>> [16645.528000] Process mythbackend (pid: 12863, ti=c58a8000 task=dbb3d070
> >>> task.ti=c58a8000)
> >>> [16645.528000] Stack: 00000020 00000000 de4f20dc c58a9dbc df8ed7d6 d74ba800
> >>> de4f20dc de4f20d
> >>> c
> >>> [16645.528000]        dd9bd080 c58a9d78 df8ed22a de4f20dc 00000000 de4f20dc
> >>> c58a9de8 df8ed7d
> >>> 6
> >>> [16645.528000]        000000bc c58a9d9c 00000292 00000000 00000000 c56ce254
> >>> de4f20dc 0000000
> >>> 0
> >>> [16645.528000] Call Trace:
> >>> [16645.528000]  [<c0104a3e>] show_trace_log_lvl+0x1a/0x2f
> >>> [16645.528000]  [<c0104aee>] show_stack_log_lvl+0x9b/0xa3
> >>> [16645.528000]  [<c0104cac>] show_registers+0x1b6/0x288
> >>> [16645.528000]  [<c0104e68>] die+0xea/0x1bd
> >>> [16645.528000]  [<c0113bcf>] do_page_fault+0x435/0x506
> >>> [16645.528000]  [<c0289cbc>] error_code+0x74/0x7c
> >>> [16645.528000]  [<df8ed7d6>] ehci_work+0x22/0x64b [ehci_hcd]
> >>> [16645.528000]  [<df8f21b5>] ehci_irq+0x234/0x254 [ehci_hcd]
> >>> [16645.528000]  [<df8a83af>] usb_hcd_irq+0x24/0x51 [usbcore]
> >>> [16645.528000]  [<c013b3e2>] handle_IRQ_event+0x21/0x48
> >>> [16645.528000]  [<c013c515>] handle_level_irq+0x5f/0x96
> >>> [16645.528000]  [<c0105f8a>] do_IRQ+0x5c/0x7a
> >>> [16645.528000]  [<c010453f>] common_interrupt+0x23/0x28
> >>> [16645.528000]  [<c0140892>] free_hot_page+0xa/0xc
> >>> [16645.528000]  [<c01408ae>] __free_pages+0x1a/0x25
> >>> [16645.528000]  [<c014c0bc>] __vunmap+0xa2/0xcb
> >>> [16645.528000]  [<c014c16f>] vfree+0x25/0x27
> >>> [16645.528000]  [<dfb1e77b>] dvb_dvr_release+0x5b/0xb4 [dvb_core]
> >>> [16645.528000]  [<c0155973>] __fput+0xa9/0x153
> >>> [16645.528000]  [<c0155a33>] fput+0x16/0x18
> >>> [16645.528000]  [<c01535cf>] filp_close+0x54/0x5c
> >>> [16645.528000]  [<c0154597>] sys_close+0x57/0x8d
> >>> [16645.528000]  [<c0103b30>] sysenter_past_esp+0x5d/0x81
> >>> [16645.528000]  =======================
> >>> [16645.528000] Code: e0 89 f8 e8 4c 4c 86 e0 83 c4 2c 5b 5e 5f c9 c3 55 89
> >>> e5 57 56 53 89 c3
> >>>  8b 70 14 0f ba b0 bc 00 00 00 01 8d 46 60 ba 57 0b 8f df <c6> 46 68 03 c7
> >>> 46 48 00 00 00 00
> >>>  e8 21 8d 8c e0 8b 7e 58 80 63
> >>> [16645.528000] EIP: [<df8ed1da>] end_unlink_async+0x1b/0xc5 [ehci_hcd]
> > 
> > For whatever it's worth, the crash occurred in end_async_unlink because
> > ehci->reclaim was NULL.  This may imply that ehci->reclaim_ready was
> > set when it shouldn't be.  Don't ask me how either of these could
> > have happened.
> > 
> > Alan Stern
> > 
> 
> mh, how about this:
> drivers/usb/host/ehci-hcd.c:640
> 
>     /* complete the unlinking of some qh [4.15.2.3] */
>     if (status & STS_IAA) {
>         COUNT (ehci->stats.reclaim);
>         ehci->reclaim_ready = 1;
>         bh = 1;
>     }
> ...
>     if (bh)
>         ehci_work (ehci);
> 
> bh was set to 1 ... possible there?!

It is possible; I don't know enough about how the driver works to say
for sure.  You could test it easily enough.  Just add a printk there if
ehci->reclaim is NULL.

> chris
> 
> 
> ps: found the box this morning dead ... the kexec kernel also crashed, same story.
> dvb module was loaded, but mythtv not running. 
> (rc.S was run I messed with the boot options)
> 
> psps: found the box dead again when I came back from work ... 
> no dvb stuff in the backtrace, same story.

Alan Stern


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.