Hi,
up to kernel 2.6.13.5 my USB attached DVB-T Medion MD95700 device (Conexant CX22702) worked fine. Starting with 2.6.14
I'm getting a NULL pointer dereference in dvb_frontend_release.
Here is the kernel log (2.6.15.5 #21 PREEMPT Sun Mar 5 15:15:51 CET 2006 i686 GNU/Linux) immediately after a re-boot:
----------------------------------
Mar 5 20:51:44 pillilz kernel: dvb-usb: found a 'Medion MD95700 (MDUSBTV-HYBRID)' in warm state.
Mar 5 20:51:44 pillilz kernel: dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
Mar 5 20:51:44 pillilz kernel: DVB: registering new adapter (Medion MD95700 (MDUSBTV-HYBRID)).
Mar 5 20:51:44 pillilz kernel: dvb_register_frontend
Mar 5 20:51:44 pillilz kernel: DVB: registering frontend 0 (Conexant CX22702 DVB-T)...
Mar 5 20:51:44 pillilz kernel: dvb-usb: Medion MD95700 (MDUSBTV-HYBRID) successfully initialized and connected.
Mar 5 20:51:44 pillilz kernel: usbcore: registered new driver dvb_usb_cxusb
Mar 5 20:51:56 pillilz kernel: dvb_frontend_open
Mar 5 20:51:56 pillilz kernel: dvb_frontend_start
Mar 5 20:51:56 pillilz kernel: dvb_frontend_ioctl
Mar 5 20:51:56 pillilz kernel: dvb_frontend_thread
Mar 5 20:51:56 pillilz kernel: DVB: initialising frontend 0 (Conexant CX22702 DVB-T)...
Mar 5 20:51:57 pillilz kernel: dvb_frontend_ioctl
Mar 5 20:51:57 pillilz kernel: dvb_frontend_add_event
Mar 5 20:51:57 pillilz kernel: dvb_frontend_autotune: drift:0 inversion:0 auto_step:0 auto_sub_step:0 started_auto_step:0
Mar 5 20:51:57 pillilz kernel: dvb_frontend_ioctl
Mar 5 20:51:57 pillilz kernel: dvb_frontend_ioctl
Mar 5 20:51:57 pillilz kernel: dvb_frontend_ioctl
Mar 5 20:51:57 pillilz kernel: dvb_frontend_ioctl
Mar 5 20:51:57 pillilz kernel: dvb_frontend_ioctl
Mar 5 20:51:58 pillilz kernel: dvb_frontend_add_event
Mar 5 20:51:58 pillilz kernel: update_delay
Mar 5 20:51:59 pillilz kernel: update_delay
Mar 5 20:52:00 pillilz kernel: usb 5-3.1: USB disconnect, address 3
Mar 5 20:52:00 pillilz kernel: dvb_unregister_frontend
Mar 5 20:52:00 pillilz kernel: dvb_frontend_stop
Mar 5 20:52:00 pillilz kernel: dvb-usb: bulk message failed: -22 (2/-16)
Mar 5 20:52:00 pillilz kernel: dvb-usb: Medion MD95700 (MDUSBTV-HYBRID) successfully deinitialized and disconnected.
Mar 5 20:52:00 pillilz kernel: usb 5-3.1: new high speed USB device using ehci_hcd and address 5
Mar 5 20:52:00 pillilz kernel: dvb-usb: found a 'Medion MD95700 (MDUSBTV-HYBRID)' in warm state.
Mar 5 20:52:00 pillilz kernel: dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
Mar 5 20:52:00 pillilz kernel: DVB: registering new adapter (Medion MD95700 (MDUSBTV-HYBRID)).
Mar 5 20:52:00 pillilz kernel: dvb_register_frontend
Mar 5 20:52:00 pillilz kernel: DVB: registering frontend 0 (Conexant CX22702 DVB-T)...
Mar 5 20:52:00 pillilz kernel: dvb-usb: Medion MD95700 (MDUSBTV-HYBRID) successfully initialized and connected.
Mar 5 20:52:23 pillilz kernel: dvb_frontend_release
Mar 5 20:52:23 pillilz kernel: XXXX fe->frontend_priv=0
Mar 5 20:52:23 pillilz kernel: Unable to handle kernel NULL pointer dereference at virtual address 000001b0
Mar 5 20:52:23 pillilz kernel: printing eip:
Mar 5 20:52:23 pillilz kernel: e09ee8d4
Mar 5 20:52:23 pillilz kernel: *pde = 00000000
Mar 5 20:52:23 pillilz kernel: Oops: 0002 [#1]
Mar 5 20:52:23 pillilz kernel: PREEMPT
Mar 5 20:52:23 pillilz kernel: Modules linked in: lp ne2k_pci 8390 ide_scsi hisax isdn slhc dvb_usb_cxusb dvb_usb
dvb_core cx22702 dvb_pll ati_remote sym53c8xx scsi_transport_spi tuner snd_via82xx tvaudio msp3400 snd_ac97_codec
snd_ac97_bus via686a hwmon snd_mpu401_uart i2c_isa snd_rawmidi bttv video_buf firmware_class i2c_algo_bit psmouse
ehci_hcd snd_bt87x evdev uhci_hcd btcx_risc tveeprom via_agp agpgart parport_pc parport
Mar 5 20:52:23 pillilz kernel: CPU: 0
Mar 5 20:52:23 pillilz kernel: EIP: 0060:[<e09ee8d4>] Not tainted VLI
Mar 5 20:52:23 pillilz kernel: EFLAGS: 00010202 (2.6.15.5)
Mar 5 20:52:23 pillilz kernel: EIP is at dvb_frontend_release+0x34/0x90 [dvb_core]
Mar 5 20:52:23 pillilz kernel: eax: ffff1df8 ebx: debd8ee0 ecx: 00000001 edx: c057854c
Mar 5 20:52:23 pillilz kernel: esi: 00000000 edi: dec5444c ebp: dfb62aa8 esp: dc1a3f48
Mar 5 20:52:23 pillilz kernel: ds: 007b es: 007b ss: 0068
Mar 5 20:52:23 pillilz kernel: Process mythbackend (pid: 5639, threadinfo=dc1a2000 task=dfba0590)
Mar 5 20:52:23 pillilz kernel: Stack: e09f20d0 00000000 00000008 debd8ee0 dec5444c c01678d3 dec5444c debd8ee0
Mar 5 20:52:23 pillilz kernel: 00000000 00000000 dffe4c20 debd8ee0 00000000 c15d7ac0 debd8ee0 c0165c62
Mar 5 20:52:23 pillilz kernel: debd8ee0 c15d7ac0 dc1a2000 00000007 c15d7ac0 c0165d15 debd8ee0 c15d7ac0
Mar 5 20:52:23 pillilz kernel: Call Trace:
Mar 5 20:52:23 pillilz kernel: [<c01678d3>] __fput+0xa3/0x190
Mar 5 20:52:23 pillilz kernel: [<c0165c62>] filp_close+0x52/0x90
Mar 5 20:52:23 pillilz kernel: [<c0165d15>] sys_close+0x75/0xd0
Mar 5 20:52:23 pillilz kernel: [<c0103251>] syscall_call+0x7/0xb
Mar 5 20:52:23 pillilz kernel: Code: 24 1c 89 7c 24 10 89 74 24 0c 8b 7c 24 18 8b 43 74 8b 40 28 8b 70 0c a1 10 a4 9f
e0 85 c0 75 2d f6 43 18 03 74 0b a1 78 96 57 c0 <89> 86 b0 01 00 00 89 5c 24 1c 89 7c 24 18 8b 5c 24 08 8b 74 24
----------------------------------
The problem occurs in (1) below, I added (2) to verify that fe->frontend_priv is NULL.
----------------------------------
static int dvb_frontend_release(struct inode *inode, struct file *file)
{
struct dvb_device *dvbdev = file->private_data;
struct dvb_frontend *fe = dvbdev->priv;
struct dvb_frontend_private *fepriv = fe->frontend_priv;
dprintk ("%s\n", __FUNCTION__);
(2) dprintk ("XXXX fe->frontend_priv=%x\n", fepriv);
if ((file->f_flags & O_ACCMODE) != O_RDONLY)
(1) fepriv->release_jiffies = jiffies;
return dvb_generic_release (inode, file);
}
----------------------------------
The problem seems to depend on the timing, as I sometimes get the following Oops (also immediately after re-boot):
----------------------------------
Mar 5 20:48:17 pillilz kernel: dvb-usb: found a 'Medion MD95700 (MDUSBTV-HYBRID)' in warm state.
Mar 5 20:48:17 pillilz kernel: dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
Mar 5 20:48:17 pillilz kernel: DVB: registering new adapter (Medion MD95700 (MDUSBTV-HYBRID)).
Mar 5 20:48:17 pillilz kernel: dvb_register_frontend
Mar 5 20:48:17 pillilz kernel: DVB: registering frontend 0 (Conexant CX22702 DVB-T)...
Mar 5 20:48:17 pillilz kernel: dvb-usb: Medion MD95700 (MDUSBTV-HYBRID) successfully initialized and connected.
Mar 5 20:48:17 pillilz kernel: usbcore: registered new driver dvb_usb_cxusb
Mar 5 20:48:29 pillilz kernel: dvb_frontend_open
Mar 5 20:48:29 pillilz kernel: dvb_frontend_start
Mar 5 20:48:29 pillilz kernel: dvb_frontend_ioctl
Mar 5 20:48:29 pillilz kernel: dvb_frontend_thread
Mar 5 20:48:29 pillilz kernel: DVB: initialising frontend 0 (Conexant CX22702 DVB-T)...
Mar 5 20:48:29 pillilz kernel: dvb_frontend_ioctl
Mar 5 20:48:29 pillilz kernel: dvb_frontend_add_event
Mar 5 20:48:29 pillilz kernel: dvb_frontend_autotune: drift:0 inversion:0 auto_step:0 auto_sub_step:0 started_auto_step:0
Mar 5 20:48:30 pillilz kernel: dvb_frontend_ioctl
Mar 5 20:48:30 pillilz kernel: dvb_frontend_ioctl
Mar 5 20:48:30 pillilz kernel: dvb_frontend_ioctl
Mar 5 20:48:30 pillilz kernel: dvb_frontend_ioctl
Mar 5 20:48:30 pillilz kernel: dvb_frontend_ioctl
Mar 5 20:48:30 pillilz kernel: dvb_frontend_add_event
Mar 5 20:48:30 pillilz kernel: update_delay
Mar 5 20:48:32 pillilz kernel: hub 5-3:1.0: port 1 disabled by hub (EMI?), re-enabling...
Mar 5 20:48:32 pillilz kernel: usb 5-3.1: USB disconnect, address 3
Mar 5 20:48:32 pillilz kernel: dvb_unregister_frontend
Mar 5 20:48:32 pillilz kernel: dvb_frontend_stop
Mar 5 20:48:32 pillilz kernel: dvb-usb: bulk message failed: -22 (2/-16)
Mar 5 20:48:32 pillilz kernel: dvb-usb: Medion MD95700 (MDUSBTV-HYBRID) successfully deinitialized and disconnected.
Mar 5 20:48:32 pillilz kernel: usb 5-3.1: new high speed USB device using ehci_hcd and address 5
Mar 5 20:48:32 pillilz kernel: dvb-usb: found a 'Medion MD95700 (MDUSBTV-HYBRID)' in warm state.
Mar 5 20:48:32 pillilz kernel: dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer.
Mar 5 20:48:32 pillilz kernel: DVB: registering new adapter (Medion MD95700 (MDUSBTV-HYBRID)).
Mar 5 20:48:32 pillilz kernel: dvb_register_frontend
Mar 5 20:48:32 pillilz kernel: DVB: registering frontend 0 (Conexant CX22702 DVB-T)...
Mar 5 20:48:32 pillilz kernel: dvb-usb: Medion MD95700 (MDUSBTV-HYBRID) successfully initialized and connected.
Mar 5 20:48:55 pillilz kernel: dvb_frontend_release
Mar 5 20:48:55 pillilz kernel: XXXX fe->frontend_priv=e0952000
Mar 5 20:48:56 pillilz kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000000
Mar 5 20:48:56 pillilz kernel: printing eip:
Mar 5 20:48:56 pillilz kernel: c04cae25
Mar 5 20:48:56 pillilz kernel: *pde = 00000000
Mar 5 20:48:56 pillilz kernel: Oops: 0002 [#1]
Mar 5 20:48:56 pillilz kernel: PREEMPT
Mar 5 20:48:56 pillilz kernel: Modules linked in: lp ne2k_pci 8390 ide_scsi hisax isdn slhc ati_remote dvb_usb_cxusb
dvb_usb dvb_core cx22702 dvb_pll tuner tvaudio ehci_hcd snd_via82xx snd_ac97_codec snd_ac97_bus snd_bt87x msp3400 bttv
video_buf firmware_class sym53c8xx i2c_algo_bit via686a hwmon scsi_transport_spi psmouse snd_mpu401_uart i2c_isa
btcx_risc tveeprom evdev uhci_hcd snd_rawmidi parport_pc parport via_agp agpgart
Mar 5 20:48:56 pillilz kernel: CPU: 0
Mar 5 20:48:56 pillilz kernel: EIP: 0060:[<c04cae25>] Not tainted VLI
Mar 5 20:48:56 pillilz kernel: EFLAGS: 00010002 (2.6.15.5)
Mar 5 20:48:56 pillilz kernel: EIP is at __down_interruptible+0x65/0x132
Mar 5 20:48:56 pillilz kernel: eax: dc1bc000 ebx: e0b0c070 ecx: 00000000 edx: dc1bdf24
Mar 5 20:48:56 pillilz kernel: esi: dc1bc000 edi: 00000286 ebp: dec42090 esp: dc1bdf14
Mar 5 20:48:56 pillilz kernel: ds: 007b es: 007b ss: 0068
Mar 5 20:48:56 pillilz kernel: Process mythbackend (pid: 5648, threadinfo=dc1bc000 task=dec42090)
Mar 5 20:48:56 pillilz kernel: Stack: e0b0c078 00000001 dec42090 c011c4d0 e0b0c078 00000000 e0b0c000 da1c9320
Mar 5 20:48:56 pillilz kernel: daf77794 df3faa20 c04c96db df3faa20 fffffe00 e09e3b4c 00000008 00000008
Mar 5 20:48:56 pillilz kernel: da1c9320 ded98994 c01678d3 daf77794 e0b0c000 00000000 00000000 dffe4c20
Mar 5 20:48:56 pillilz kernel: Call Trace:
Mar 5 20:48:56 pillilz kernel: [<c011c4d0>] default_wake_function+0x0/0x20
Mar 5 20:48:56 pillilz kernel: [<c04c96db>] __down_failed_interruptible+0x7/0xc
Mar 5 20:48:56 pillilz kernel: [<e09e3b4c>] .text.lock.dmxdev+0xbb/0x1cf [dvb_core]
Mar 5 20:48:56 pillilz kernel: [<c01678d3>] __fput+0xa3/0x190
Mar 5 20:48:56 pillilz kernel: [<c0165c62>] filp_close+0x52/0x90
Mar 5 20:48:56 pillilz kernel: [<c0165d15>] sys_close+0x75/0xd0
Mar 5 20:48:56 pillilz kernel: [<c0103251>] syscall_call+0x7/0xb
Mar 5 20:48:56 pillilz kernel: Code: 00 00 00 9c 5f fa ff 40 14 8d 53 08 83 4c 24 04 01 89 14 24 8b 4a 04 8d 54 24 10
8b 34 24 89 56 04 89 74 24 10 89 c6 89 4c 24 14 <89> 11 8b 53 04 42 89 53 04 eb 2c c7 43 04 01 00 00 00 57 9d ff
----------------------------------
As I'm not a kernel developer I don't have a clue what might cause the problem.
Please let me know if there is anything I can do to help solving it.
Cheers,
Joerg
_______________________________________________
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb