* [linux-dvb] Problems with kernel oops when installing HVR-1800.
@ 2008-12-27 16:40 Mark Jenks
2008-12-28 16:20 ` Mark Jenks
2008-12-28 21:36 ` Andy Walls
0 siblings, 2 replies; 14+ messages in thread
From: Mark Jenks @ 2008-12-27 16:40 UTC (permalink / raw)
To: linux-dvb
[-- Attachment #1.1: Type: text/plain, Size: 7909 bytes --]
G'morning all! (at least it's morning here.)
I have a running Mythtv server that is running Suse 10.3 with a hvr-1250
just fine on Kernel 2.6.24, and haven't had any problems at all.
I tried to install a hvr-1800 in it yesterday, and I get a kernel oops on it
and X won't start. I compiled up a 2.6.27.10 kernel for it, and moved to
that, and I still get the oops. Checked my vmalloc and I am fine, but
increased it anyways to 384 just for grins.
I compiled v4l-dvb-cae6de452897 up against the 2.6.24, and the 2.6.27
kernels without any changes. Server boots just fine without the 1800, but
with I get the oops.
The only thing that I can see, is that the 1250 and the 1800 look to be
using the same interrupt.
Here is more than enough debug info, I hope. :)
Thanks!
-Mark
BUG: unable to handle kernel NULL pointer dereference at 000001a0
IP: [<f8e5a594>] :cx23885:video_open+0x2c/0x150
*pde = 00000000
Oops: 0000 [#1] SMP
Modules linked in: iptable_filter ip_tables ip6_tables x_tables
cpufreq_conservative cpufreq_userspace cpufreq_powersave powernow_k8 xfs
loop dm_mod cx25840 mt2131 s5h1409 nvidia(P) cx23885 v4l2_compat_ioctl32
cx2341x videobuf_dma_sg button videobuf_dvb dvb_core videobuf_core
v4l2_common snd_hda_intel snd_usb_audio snd_usb_lib snd_mpu401 snd_cs4232
snd_opl3_lib snd_cs4231_lib snd_pcm ohci1394 videodev v4l1_compat osst
agpgart btcx_risc rtc_cmos i2c_nforce2 snd_timer ieee1394 snd_mpu401_uart
tveeprom sr_mod snd_hwdep i2c_core rtc_core rtc_lib parport_pc parport st
lirc_mceusb2 snd_rawmidi snd_seq_device snd k8temp hwmon cdrom forcedeth
soundcore snd_page_alloc lirc_dev sg usbhid hid ff_memless ohci_hcd ehci_hcd
usbcore sd_mod edd ext3 mbcache jbd fan aic7xxx scsi_transport_spi sata_nv
pata_amd libata scsi_mod dock thermal processor thermal_sys
Pid: 3178, comm: X Tainted: P (2.6.27.10-default #3)
EIP: 0060:[<f8e5a594>] EFLAGS: 00013287 CPU: 1
EIP is at video_open+0x2c/0x150 [cx23885]
EAX: 00000000 EBX: 00000000 ECX: f7a9f000 EDX: f7a0e000
ESI: 00000000 EDI: 00000000 EBP: 00000000 ESP: f764de90
DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
Process X (pid: 3178, ti=f764c000 task=f7398c00 task.ti=f764c000)
Stack: f7a6e540 00000000 f7b16538 00000000 f7bc30a0 c016bee5 f7a6e540
00000000
f7a6e540 f7bc30a0 00000000 c016bdd9 c01683cd f701ebc0 f6d756c0
f764df14
f7a6e540 f764df14 00000003 c01684d8 f7a6e540 00000000 00000000
f764df14
Call Trace:
[<c016bee5>] chrdev_open+0x10c/0x122
[<c016bdd9>] chrdev_open+0x0/0x122
[<c01683cd>] __dentry_open+0x10d/0x1fc
[<c01684d8>] nameidata_to_filp+0x1c/0x2c
[<c0172986>] do_filp_open+0x33d/0x63e
[<f9b7d8ce>] _nv004117rm+0x9/0x12 [nvidia]
[<c01582f8>] handle_mm_fault+0x2b3/0x5dd
[<c017ab2d>] alloc_fd+0x57/0xd3
[<c01681e8>] do_sys_open+0x3f/0xb8
[<c01682a5>] sys_open+0x1e/0x23
[<c01037ad>] sysenter_do_call+0x12/0x21
=======================
Code: 31 ed 57 31 ff 56 31 f6 53 83 ec 04 89 14 24 8b 58 34 e8 16 18 46 c7
8b 15 d0 ad e6 f8 81 e3 ff ff 0f 00 eb 49 8b 82 84 0d 00 00 <39> 98 a0 01 00
00 75 07 89 d6 bf 01 00 00 00 8b 82 88 0d 00 00
EIP: [<f8e5a594>] video_open+0x2c/0x150 [cx23885] SS:ESP 0068:f764de90
---[ end trace c26ff07c077248e0 ]---
# dmesg | grep cx
cx23885 driver version 0.0.1 loaded
cx23885 0000:02:00.0: PCI INT A -> Link[APC5] -> GSI 16 (level, low) -> IRQ
16
CORE cx23885[0]: subsystem: 0070:7911, board: Hauppauge WinTV-HVR1250
[card=3,autodetected]
cx23885[0]: warning: unknown hauppauge model #0
cx23885[0]: hauppauge eeprom: model=0
cx23885_dvb_register() allocating 1 frontend(s)
cx23885[0]: cx23885 based dvb card
DVB: registering new adapter (cx23885[0])
cx23885_dev_checkrevision() Hardware revision = 0xc0
cx23885[0]/0: found at 0000:02:00.0, rev: 3, irq: 16, latency: 0, mmio:
0xfd400000
cx23885 0000:02:00.0: setting latency timer to 64
cx23885 0000:03:00.0: PCI INT A -> Link[APC5] -> GSI 16 (level, low) -> IRQ
16
CORE cx23885[1]: subsystem: 0070:7801, board: Hauppauge WinTV-HVR1800
[card=2,autodetected]
cx23885[1]: hauppauge eeprom: model=78521
cx25840' 4-0044: cx25 0-21 found @ 0x88 (cx23885[0])
cx25840' 7-0044: cx25 0-21 found @ 0x88 (cx23885[1])
cx23885[1]/0: registered device video0 [v4l2]
cx23885[1]: registered device video1 [mpeg]
cx23885_dvb_register() allocating 1 frontend(s)
cx23885[1]: cx23885 based dvb card
DVB: registering new adapter (cx23885[1])
cx23885_dev_checkrevision() Hardware revision = 0xb1
cx23885[1]/0: found at 0000:03:00.0, rev: 15, irq: 16, latency: 0, mmio:
0xfd600000
cx23885 0000:03:00.0: setting latency timer to 64
# dmesg | grep DVB
DVB: registering new adapter (cx23885[0])
DVB: registering adapter 0 frontend 671089123 (Samsung S5H1409 QAM/8VSB
Frontend)...
tveeprom 5-0050: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0x88)
DVB: registering new adapter (cx23885[1])
DVB: registering adapter 1 frontend 0 (Samsung S5H1409 QAM/8VSB Frontend)...
# ls -l vid*
lrwxrwxrwx 1 root root 6 Dec 27 03:35 video -> video0
crw-rw---- 1 root video 81, 0 Dec 27 03:35 video0
crw-rw---- 1 root video 81, 1 Dec 27 03:35 video1
# ls -lR dvb*
dvb:
total 0
drwxr-xr-x 2 root root 120 Dec 27 03:35 adapter0
drwxr-xr-x 2 root root 120 Dec 27 03:35 adapter1
dvb/adapter0:
total 0
crw-rw---- 1 root video 212, 1 Dec 27 03:35 demux0
crw-rw---- 1 root video 212, 2 Dec 27 03:35 dvr0
crw-rw---- 1 root video 212, 0 Dec 27 03:35 frontend0
crw-rw---- 1 root video 212, 3 Dec 27 03:35 net0
dvb/adapter1:
total 0
crw-rw---- 1 root video 212, 5 Dec 27 03:35 demux0
crw-rw---- 1 root video 212, 6 Dec 27 03:35 dvr0
crw-rw---- 1 root video 212, 4 Dec 27 03:35 frontend0
crw-rw---- 1 root video 212, 7 Dec 27 03:35 net0
# cat /proc/meminfo
MemTotal: 3115468 kB
MemFree: 2787964 kB
Buffers: 9580 kB
Cached: 224572 kB
SwapCached: 0 kB
Active: 106360 kB
Inactive: 185368 kB
HighTotal: 2489280 kB
HighFree: 2191700 kB
LowTotal: 626188 kB
LowFree: 596264 kB
SwapTotal: 2104504 kB
SwapFree: 2104504 kB
Dirty: 2000 kB
Writeback: 0 kB
AnonPages: 57640 kB
Mapped: 27928 kB
Slab: 14800 kB
SReclaimable: 8112 kB
SUnreclaim: 6688 kB
PageTables: 972 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 3662236 kB
Committed_AS: 321112 kB
VmallocTotal: 376824 kB
VmallocUsed: 22080 kB
VmallocChunk: 354048 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 4096 kB
DirectMap4k: 20480 kB
DirectMap4M: 634880 kB
# cat /proc/interrupts
CPU0 CPU1
0: 43 1 IO-APIC-edge timer
1: 0 8 IO-APIC-edge i8042
7: 1 0 IO-APIC-edge parport0
8: 0 79 IO-APIC-edge rtc0
9: 0 0 IO-APIC-fasteoi acpi
10: 0 0 IO-APIC-edge MPU401 UART
12: 0 114 IO-APIC-edge i8042
14: 0 0 IO-APIC-edge pata_amd
15: 8 70 IO-APIC-edge pata_amd
16: 0 14 IO-APIC-fasteoi cx23885[0], cx23885[1]
17: 4 55 IO-APIC-fasteoi aic7xxx
19: 0 3 IO-APIC-fasteoi ohci1394
20: 0 4 IO-APIC-fasteoi ehci_hcd:usb2
21: 50 639 IO-APIC-fasteoi ohci_hcd:usb1
22: 0 0 IO-APIC-fasteoi sata_nv
23: 4394 9058 IO-APIC-fasteoi sata_nv, eth0
NMI: 0 0 Non-maskable interrupts
LOC: 6058 6020 Local timer interrupts
RES: 3291 1978 Rescheduling interrupts
CAL: 2402 122 function call interrupts
TLB: 261 129 TLB shootdowns
TRM: 0 0 Thermal event interrupts
SPU: 0 0 Spurious interrupts
ERR: 1
MIS: 0
[-- Attachment #1.2: Type: text/html, Size: 12583 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
^ permalink raw reply [flat|nested] 14+ messages in thread* Re: [linux-dvb] Problems with kernel oops when installing HVR-1800. 2008-12-27 16:40 [linux-dvb] Problems with kernel oops when installing HVR-1800 Mark Jenks @ 2008-12-28 16:20 ` Mark Jenks 2008-12-28 21:36 ` Andy Walls 1 sibling, 0 replies; 14+ messages in thread From: Mark Jenks @ 2008-12-28 16:20 UTC (permalink / raw) To: linux-dvb [-- Attachment #1.1: Type: text/plain, Size: 6734 bytes --] > > I tried to install a hvr-1800 in it yesterday, and I get a kernel oops on > it and X won't start. I compiled up a 2.6.27.10 kernel for it, and moved > to that, and I still get the oops. Checked my vmalloc and I am fine, but > increased it anyways to 384 just for grins. > That is a nasty bug that you are hitting. You shouldn't get NULL dereferences at any time. I'd either file this at the kernel's bugzilla or try to get it attention some other way. I'm not a systems programmer so I can't really help with a code fix. > Here is more than enough debug info, I hope. :) > Have you tried removing the 1250? Or moving the 1800 to a different slot? Or even manually placing the 1250 and 1800 on different IRQs via the BIOS? I'm not sure if any of this will work, but it might be worth a try. Also, what does your relevant kernel config look like? I have the 1800 and mine is: # # Multimedia devices # # # Multimedia core support # CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_COMMON=m # CONFIG_VIDEO_ALLOW_V4L1 is not set CONFIG_VIDEO_V4L1_COMPAT=y CONFIG_DVB_CORE=m CONFIG_VIDEO_MEDIA=m # # Multimedia drivers # CONFIG_MEDIA_TUNER=m CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m CONFIG_MEDIA_TUNER_MT20XX=m CONFIG_MEDIA_TUNER_MT2131=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m CONFIG_VIDEO_V4L2=m CONFIG_VIDEOBUF_GEN=m CONFIG_VIDEOBUF_DMA_SG=m CONFIG_VIDEOBUF_DVB=m CONFIG_VIDEO_BTCX=m CONFIG_VIDEO_IR=m CONFIG_VIDEO_TVEEPROM=m CONFIG_VIDEO_TUNER=m CONFIG_VIDEO_CAPTURE_DRIVERS=y CONFIG_VIDEO_HELPER_CHIPS_AUTO=y CONFIG_VIDEO_IR_I2C=m CONFIG_VIDEO_WM8775=m CONFIG_VIDEO_CX25840=m CONFIG_VIDEO_CX2341X=m CONFIG_VIDEO_CX88=m CONFIG_VIDEO_CX88_ALSA=m CONFIG_VIDEO_CX88_BLACKBIRD=m CONFIG_VIDEO_CX88_DVB=m CONFIG_VIDEO_CX88_VP3054=m CONFIG_VIDEO_CX23885=m CONFIG_DVB_CAPTURE_DRIVERS=y # # DVB-S (satellite) frontends # CONFIG_DVB_CX24123=m # # DVB-T (terrestrial) frontends # CONFIG_DVB_CX22702=m CONFIG_DVB_MT352=m CONFIG_DVB_ZL10353=m CONFIG_DVB_DIB7000P=m CONFIG_DVB_TDA10048=m # # ATSC (North American/Korean Terrestrial/Cable DTV) frontends # CONFIG_DVB_NXT200X=m CONFIG_DVB_OR51132=m CONFIG_DVB_LGDT330X=m CONFIG_DVB_S5H1409=m CONFIG_DVB_S5H1411=m # # Digital terrestrial only tuners/PLL # CONFIG_DVB_PLL=m # # SEC control devices for DVB-S # CONFIG_DVB_ISL6421=m Not all of these are needed, but my 1800 works perfectly with all these, so hopefully it is something you can work off of. This config is from kernel 2.6.27.1. Reply Forward Invite Andrey Falko to chat Mark JenksOkay, I noticed something else about this. With only the 1250 install, I stil... 4:21 PM (17 hours ago) Mark JenksLoading...4:21 PM (17 hours ago) Mark Jenks to Andrey show details 4:21 PM (17 hours ago) Reply On Sat, Dec 27, 2008 at 1:07 PM, Andrey Falko <ma3oxuct@gmail.com> wrote: > I tried to install a hvr-1800 in it yesterday, and I get a kernel oops on >> it and X won't start. I compiled up a 2.6.27.10 kernel for it, and moved >> to that, and I still get the oops. Checked my vmalloc and I am fine, but >> increased it anyways to 384 just for grins. >> > > That is a nasty bug that you are hitting. You shouldn't get NULL > dereferences at any time. I'd either file this at the kernel's bugzilla or > try to get it attention some other way. I'm not a systems programmer so I > can't really help with a code fix. > > >> Here is more than enough debug info, I hope. :) >> > > Have you tried removing the 1250? Or moving the 1800 to a different slot? > Or even manually placing the 1250 and 1800 on different IRQs via the BIOS? > I'm not sure if any of this will work, but it might be worth a try. > > Okay, I noticed something else about this. With only the 1250 install, I still show a conflict, but it's with nvidia. Which I am guessing is my graphics module. # cat /proc/interrupts CPU0 CPU1 0: 43 122 IO-APIC-edge timer 1: 0 10 IO-APIC-edge i8042 7: 1 0 IO-APIC-edge parport0 8: 1 98 IO-APIC-edge rtc0 9: 0 0 IO-APIC-fasteoi acpi 10: 0 0 IO-APIC-edge MPU401 UART 12: 0 114 IO-APIC-edge i8042 14: 0 0 IO-APIC-edge pata_amd 15: 428 110508 IO-APIC-edge pata_amd 16: 692578 871510 IO-APIC-fasteoi cx23885[0], nvidia 17: 0 59 IO-APIC-fasteoi aic7xxx 19: 0 3 IO-APIC-fasteoi ohci1394 20: 0 4 IO-APIC-fasteoi ehci_hcd:usb2 21: 10431 2805257 IO-APIC-fasteoi ohci_hcd:usb1 22: 9 301431 IO-APIC-fasteoi sata_nv, HDA Intel 23: 2188108 9575 IO-APIC-fasteoi sata_nv, eth0 NMI: 0 0 Non-maskable interrupts LOC: 3616861 3955952 Local timer interrupts RES: 405641 865050 Rescheduling interrupts CAL: 2622 2092 function call interrupts TLB: 727 496 TLB shootdowns TRM: 0 0 Thermal event interrupts SPU: 0 0 Spurious interrupts ERR: 1 MIS: 0 Reply Forward Andrey Falko to me show details 10:01 PM (12 hours ago) Reply On Sat, Dec 27, 2008 at 2:21 PM, Mark Jenks <mjenks1968@gmail.com> wrote: > Okay, I noticed something else about this. With only the 1250 install, I > still show a conflict, but it's with nvidia. Which I am guessing is my > graphics module. > > That is a good point. If you do report a bug make sure you are running the open source nv driver and not the proprietary nvidia driver. I am running the proprietary driver without issues, but trying the nv driver is another thing for you to try. Reply Forward Invite Andrey Falko to chat Your message has been sent. Mark Jenks to Andrey show details 10:17 AM (1 minute ago) Reply - Show quoted text - On Sat, Dec 27, 2008 at 10:01 PM, Andrey Falko <ma3oxuct@gmail.com> wrote: > On Sat, Dec 27, 2008 at 2:21 PM, Mark Jenks <mjenks1968@gmail.com> wrote: > > >> Okay, I noticed something else about this. With only the 1250 install, I >> still show a conflict, but it's with nvidia. Which I am guessing is my >> graphics module. >> >> > That is a good point. If you do report a bug make sure you are running the > open source nv driver and not the proprietary nvidia driver. I am running > the proprietary driver without issues, but trying the nv driver is another > thing for you to try. > The nv drvier I don't believe is going to work for me at all. I use Composite video out from my MB. -Mark > > > [-- Attachment #1.2: Type: text/html, Size: 20083 bytes --] [-- Attachment #2: Type: text/plain, Size: 150 bytes --] _______________________________________________ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Problems with kernel oops when installing HVR-1800. 2008-12-27 16:40 [linux-dvb] Problems with kernel oops when installing HVR-1800 Mark Jenks 2008-12-28 16:20 ` Mark Jenks @ 2008-12-28 21:36 ` Andy Walls 2008-12-28 22:51 ` Mark Jenks 1 sibling, 1 reply; 14+ messages in thread From: Andy Walls @ 2008-12-28 21:36 UTC (permalink / raw) To: Mark Jenks; +Cc: linux-dvb On Sat, 2008-12-27 at 10:40 -0600, Mark Jenks wrote: > G'morning all! (at least it's morning here.) > > I have a running Mythtv server that is running Suse 10.3 with a > hvr-1250 just fine on Kernel 2.6.24, and haven't had any problems at > all. > > I tried to install a hvr-1800 in it yesterday, and I get a kernel oops > on it and X won't start. I compiled up a 2.6.27.10 kernel for it, > and moved to that, and I still get the oops. Checked my vmalloc and > I am fine, but increased it anyways to 384 just for grins. > > I compiled v4l-dvb-cae6de452897 up against the 2.6.24, and the 2.6.27 > kernels without any changes. Server boots just fine without the > 1800, but with I get the oops. > > The only thing that I can see, is that the 1250 and the 1800 look to > be using the same interrupt. > > Here is more than enough debug info, I hope. :) > > Thanks! > > -Mark > > > BUG: unable to handle kernel NULL pointer dereference at 000001a0 > IP: [<f8e5a594>] :cx23885:video_open+0x2c/0x150 > *pde = 00000000 > Oops: 0000 [#1] SMP > Modules linked in: iptable_filter ip_tables ip6_tables x_tables > cpufreq_conservative cpufreq_userspace cpufreq_powersave powernow_k8 > xfs loop dm_mod cx25840 mt2131 s5h1409 nvidia(P) cx23885 > v4l2_compat_ioctl32 cx2341x videobuf_dma_sg button videobuf_dvb > dvb_core videobuf_core v4l2_common snd_hda_intel snd_usb_audio > snd_usb_lib snd_mpu401 snd_cs4232 snd_opl3_lib snd_cs4231_lib snd_pcm > ohci1394 videodev v4l1_compat osst agpgart btcx_risc rtc_cmos > i2c_nforce2 snd_timer ieee1394 snd_mpu401_uart tveeprom sr_mod > snd_hwdep i2c_core rtc_core rtc_lib parport_pc parport st lirc_mceusb2 > snd_rawmidi snd_seq_device snd k8temp hwmon cdrom forcedeth soundcore > snd_page_alloc lirc_dev sg usbhid hid ff_memless ohci_hcd ehci_hcd > usbcore sd_mod edd ext3 mbcache jbd fan aic7xxx scsi_transport_spi > sata_nv pata_amd libata scsi_mod dock thermal processor thermal_sys > > Pid: 3178, comm: X Tainted: P (2.6.27.10-default #3) > EIP: 0060:[<f8e5a594>] EFLAGS: 00013287 CPU: 1 > EIP is at video_open+0x2c/0x150 [cx23885] > EAX: 00000000 EBX: 00000000 ECX: f7a9f000 EDX: f7a0e000 > ESI: 00000000 EDI: 00000000 EBP: 00000000 ESP: f764de90 > DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 > Process X (pid: 3178, ti=f764c000 task=f7398c00 task.ti=f764c000) > Stack: f7a6e540 00000000 f7b16538 00000000 f7bc30a0 c016bee5 f7a6e540 > 00000000 > f7a6e540 f7bc30a0 00000000 c016bdd9 c01683cd f701ebc0 f6d756c0 > f764df14 > f7a6e540 f764df14 00000003 c01684d8 f7a6e540 00000000 00000000 > f764df14 > Call Trace: > [<c016bee5>] chrdev_open+0x10c/0x122 > [<c016bdd9>] chrdev_open+0x0/0x122 > [<c01683cd>] __dentry_open+0x10d/0x1fc > [<c01684d8>] nameidata_to_filp+0x1c/0x2c > [<c0172986>] do_filp_open+0x33d/0x63e > [<f9b7d8ce>] _nv004117rm+0x9/0x12 [nvidia] > [<c01582f8>] handle_mm_fault+0x2b3/0x5dd > [<c017ab2d>] alloc_fd+0x57/0xd3 > [<c01681e8>] do_sys_open+0x3f/0xb8 > [<c01682a5>] sys_open+0x1e/0x23 > [<c01037ad>] sysenter_do_call+0x12/0x21 > ======================= > Code: 31 ed 57 31 ff 56 31 f6 53 83 ec 04 89 14 24 8b 58 34 e8 16 18 > 46 c7 8b 15 d0 ad e6 f8 81 e3 ff ff 0f 00 eb 49 8b 82 84 0d 00 00 <39> > 98 a0 01 00 00 75 07 89 d6 bf 01 00 00 00 8b 82 88 0d 00 00 > EIP: [<f8e5a594>] video_open+0x2c/0x150 [cx23885] SS:ESP 0068:f764de90 > ---[ end trace c26ff07c077248e0 ]--- Mark, Using the same interrupt isn't the problem. Here's the gory translation of the Ooops data: The problem is tripped in cx23885-video.c:video_open(): 777 static int video_open(struct inode *inode, struct file *file) 778 { 779 int minor = iminor(inode); 780 struct cx23885_dev *h, *dev = NULL; 781 struct cx23885_fh *fh; 782 struct list_head *list; 783 enum v4l2_buf_type type = 0; 784 int radio = 0; 785 786 lock_kernel(); 787 list_for_each(list, &cx23885_devlist) { 788 h = list_entry(list, struct cx23885_dev, devlist); 789 if (h->video_dev->minor == minor) { 790 dev = h; 791 type = V4L2_BUF_TYPE_VIDEO_CAPTURE; 792 } 793 if (h->vbi_dev && 794 h->vbi_dev->minor == minor) { 795 dev = h; 796 type = V4L2_BUF_TYPE_VBI_CAPTURE; 797 } [...] Also note the list_entry() & list_for_each() macro definitions: 425 #define list_entry(ptr, type, member) \ 426 container_of(ptr, type, member) [...] 444 #define list_for_each(pos, head) \ 445 for (pos = (head)->next; prefetch(pos->next), pos != (head); \ 446 pos = pos->next) The code bytes dumped in the Oops disassemble to: 1: 31 ed xor %ebp,%ebp 3: 57 push %edi 4: 31 ff xor %edi,%edi 6: 56 push %esi 7: 31 f6 xor %esi,%esi 9: 53 push %ebx a: 83 ec 04 sub $0x4,%esp d: 89 14 24 mov %edx,(%esp) 10: 8b 58 34 mov 0x34(%eax),%ebx <--- line 779: minor = iminor(inode); 13: e8 16 18 46 c7 call 0xc746182e <--- line 786: lock_kernel() 18: 8b 15 d0 ad e6 f8 mov 0xf8e6add0,%edx <--- line 445: list = (&cx23885_devlist)->next; 1e: 81 e3 ff ff 0f 00 and $0xfffff,%ebx <--- line 779: minor = iminor(inode); 24: eb 49 jmp 0x6f <--- jmp to for loop condition check: line 445: prefetch(list->next), list != &cx23885_devlist; 26: 8b 82 84 0d 00 00 mov 0xd84(%edx),%eax <--- line 426 & 789: h = container_of(list, struct cx23885_dev, devlist); if (h->video_dev... 2c: 39 98 a0 01 00 00 cmp %ebx,0x1a0(%eax) <--- Ooops occurs here: line 789: if (h->video_dev->minor == minor) { 32: 75 07 jne 0x3b 34: 89 d6 mov %edx,%esi <--- line 790: dev = h; 36: bf 01 00 00 00 mov $0x1,%edi <--- line 791: type = V4L2_BUF_TYPE_VIDEO_CAPTURE; 3b: 8b 82 88 0d 00 00 mov 0xd88(%edx),%eax <--- line 793: if (h->vbi_dev ... So "h->video_dev" (I think) was "NULL" in this call to video_open(). This is a problem with the creation or manipulation of the "struct cx23885_dev" members of the "cx23885_devlist". This appears to be a problem with this list iteration in cx23885-video.c:video_open(). If one of these devices only has DVB support and no analog V4L support, then it would make sense why one of them would have "h->video_dev" set to NULL. The device shouldn't have a V4L2 "video_dev" if it doesn't support analog (V4L2) devices. I believe the 1800 supports analog video but the 1250 does not (someone correct me on this if I'm wrong - I'm no expert on these devices). The iteration loop in video_open() needs to be careful about NULL pointer dereference of h->video_dev for DVB only devices. Try this patch: diff -r cae6de452897 linux/drivers/media/video/cx23885/cx23885-video.c --- a/linux/drivers/media/video/cx23885/cx23885-video.c Fri Dec 26 08:07:39 2008 -0200 +++ b/linux/drivers/media/video/cx23885/cx23885-video.c Sun Dec 28 16:34:04 2008 -0500 @@ -786,7 +786,8 @@ static int video_open(struct inode *inod lock_kernel(); list_for_each(list, &cx23885_devlist) { h = list_entry(list, struct cx23885_dev, devlist); - if (h->video_dev->minor == minor) { + if (h->video_dev && + h->video_dev->minor == minor) { dev = h; type = V4L2_BUF_TYPE_VIDEO_CAPTURE; } If it doesn't work you'll need to find someone with access to a HVR-1250 and HVR-1800 in the same machine to do more interactive debugging (Andy Walls' thought experiments can only take one so far....). I can't help further since I don't have any CX23885 based cards. Regards, Andy > # dmesg | grep cx > cx23885 driver version 0.0.1 loaded > cx23885 0000:02:00.0: PCI INT A -> Link[APC5] -> GSI 16 (level, low) > -> IRQ 16 > CORE cx23885[0]: subsystem: 0070:7911, board: Hauppauge WinTV-HVR1250 > [card=3,autodetected] > cx23885[0]: warning: unknown hauppauge model #0 > cx23885[0]: hauppauge eeprom: model=0 > cx23885_dvb_register() allocating 1 frontend(s) > cx23885[0]: cx23885 based dvb card > DVB: registering new adapter (cx23885[0]) > cx23885_dev_checkrevision() Hardware revision = 0xc0 > cx23885[0]/0: found at 0000:02:00.0, rev: 3, irq: 16, latency: 0, > mmio: 0xfd400000 > cx23885 0000:02:00.0: setting latency timer to 64 > cx23885 0000:03:00.0: PCI INT A -> Link[APC5] -> GSI 16 (level, low) > -> IRQ 16 > CORE cx23885[1]: subsystem: 0070:7801, board: Hauppauge WinTV-HVR1800 > [card=2,autodetected] > cx23885[1]: hauppauge eeprom: model=78521 > cx25840' 4-0044: cx25 0-21 found @ 0x88 (cx23885[0]) > cx25840' 7-0044: cx25 0-21 found @ 0x88 (cx23885[1]) > cx23885[1]/0: registered device video0 [v4l2] > cx23885[1]: registered device video1 [mpeg] > cx23885_dvb_register() allocating 1 frontend(s) > cx23885[1]: cx23885 based dvb card > DVB: registering new adapter (cx23885[1]) > cx23885_dev_checkrevision() Hardware revision = 0xb1 > cx23885[1]/0: found at 0000:03:00.0, rev: 15, irq: 16, latency: 0, > mmio: 0xfd600000 > cx23885 0000:03:00.0: setting latency timer to 64 > > # dmesg | grep DVB > DVB: registering new adapter (cx23885[0]) > DVB: registering adapter 0 frontend 671089123 (Samsung S5H1409 > QAM/8VSB Frontend)... > tveeprom 5-0050: TV standards NTSC(M) ATSC/DVB Digital (eeprom 0x88) > DVB: registering new adapter (cx23885[1]) > DVB: registering adapter 1 frontend 0 (Samsung S5H1409 QAM/8VSB > Frontend)... > > > > # ls -l vid* > lrwxrwxrwx 1 root root 6 Dec 27 03:35 video -> video0 > crw-rw---- 1 root video 81, 0 Dec 27 03:35 video0 > crw-rw---- 1 root video 81, 1 Dec 27 03:35 video1 > > > # ls -lR dvb* > dvb: > total 0 > drwxr-xr-x 2 root root 120 Dec 27 03:35 adapter0 > drwxr-xr-x 2 root root 120 Dec 27 03:35 adapter1 > > dvb/adapter0: > total 0 > crw-rw---- 1 root video 212, 1 Dec 27 03:35 demux0 > crw-rw---- 1 root video 212, 2 Dec 27 03:35 dvr0 > crw-rw---- 1 root video 212, 0 Dec 27 03:35 frontend0 > crw-rw---- 1 root video 212, 3 Dec 27 03:35 net0 > > dvb/adapter1: > total 0 > crw-rw---- 1 root video 212, 5 Dec 27 03:35 demux0 > crw-rw---- 1 root video 212, 6 Dec 27 03:35 dvr0 > crw-rw---- 1 root video 212, 4 Dec 27 03:35 frontend0 > crw-rw---- 1 root video 212, 7 Dec 27 03:35 net0 > > # cat /proc/meminfo > MemTotal: 3115468 kB > MemFree: 2787964 kB > Buffers: 9580 kB > Cached: 224572 kB > SwapCached: 0 kB > Active: 106360 kB > Inactive: 185368 kB > HighTotal: 2489280 kB > HighFree: 2191700 kB > LowTotal: 626188 kB > LowFree: 596264 kB > SwapTotal: 2104504 kB > SwapFree: 2104504 kB > Dirty: 2000 kB > Writeback: 0 kB > AnonPages: 57640 kB > Mapped: 27928 kB > Slab: 14800 kB > SReclaimable: 8112 kB > SUnreclaim: 6688 kB > PageTables: 972 kB > NFS_Unstable: 0 kB > Bounce: 0 kB > WritebackTmp: 0 kB > CommitLimit: 3662236 kB > Committed_AS: 321112 kB > VmallocTotal: 376824 kB > VmallocUsed: 22080 kB > VmallocChunk: 354048 kB > HugePages_Total: 0 > HugePages_Free: 0 > HugePages_Rsvd: 0 > HugePages_Surp: 0 > Hugepagesize: 4096 kB > DirectMap4k: 20480 kB > DirectMap4M: 634880 kB > > # cat /proc/interrupts > CPU0 CPU1 > 0: 43 1 IO-APIC-edge timer > 1: 0 8 IO-APIC-edge i8042 > 7: 1 0 IO-APIC-edge parport0 > 8: 0 79 IO-APIC-edge rtc0 > 9: 0 0 IO-APIC-fasteoi acpi > 10: 0 0 IO-APIC-edge MPU401 UART > 12: 0 114 IO-APIC-edge i8042 > 14: 0 0 IO-APIC-edge pata_amd > 15: 8 70 IO-APIC-edge pata_amd > 16: 0 14 IO-APIC-fasteoi cx23885[0], cx23885[1] > 17: 4 55 IO-APIC-fasteoi aic7xxx > 19: 0 3 IO-APIC-fasteoi ohci1394 > 20: 0 4 IO-APIC-fasteoi ehci_hcd:usb2 > 21: 50 639 IO-APIC-fasteoi ohci_hcd:usb1 > 22: 0 0 IO-APIC-fasteoi sata_nv > 23: 4394 9058 IO-APIC-fasteoi sata_nv, eth0 > NMI: 0 0 Non-maskable interrupts > LOC: 6058 6020 Local timer interrupts > RES: 3291 1978 Rescheduling interrupts > CAL: 2402 122 function call interrupts > TLB: 261 129 TLB shootdowns > TRM: 0 0 Thermal event interrupts > SPU: 0 0 Spurious interrupts > ERR: 1 > MIS: 0 > > _______________________________________________ > linux-dvb mailing list > linux-dvb@linuxtv.org > http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb _______________________________________________ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Problems with kernel oops when installing HVR-1800. 2008-12-28 21:36 ` Andy Walls @ 2008-12-28 22:51 ` Mark Jenks 2008-12-28 23:45 ` CityK 0 siblings, 1 reply; 14+ messages in thread From: Mark Jenks @ 2008-12-28 22:51 UTC (permalink / raw) To: Andy Walls; +Cc: linux-dvb [-- Attachment #1.1: Type: text/plain, Size: 8866 bytes --] On Sun, Dec 28, 2008 at 3:36 PM, Andy Walls <awalls@radix.net> wrote: > On Sat, 2008-12-27 at 10:40 -0600, Mark Jenks wrote: > > G'morning all! (at least it's morning here.) > > > > I have a running Mythtv server that is running Suse 10.3 with a > > hvr-1250 just fine on Kernel 2.6.24, and haven't had any problems at > > all. > > > > I tried to install a hvr-1800 in it yesterday, and I get a kernel oops > > on it and X won't start. I compiled up a 2.6.27.10 kernel for it, > > and moved to that, and I still get the oops. Checked my vmalloc and > > I am fine, but increased it anyways to 384 just for grins. > > > > I compiled v4l-dvb-cae6de452897 up against the 2.6.24, and the 2.6.27 > > kernels without any changes. Server boots just fine without the > > 1800, but with I get the oops. > > > > The only thing that I can see, is that the 1250 and the 1800 look to > > be using the same interrupt. > > > > Here is more than enough debug info, I hope. :) > > > > Thanks! > > > > -Mark > > > > > > BUG: unable to handle kernel NULL pointer dereference at 000001a0 > > IP: [<f8e5a594>] :cx23885:video_open+0x2c/0x150 > > *pde = 00000000 > > Oops: 0000 [#1] SMP > > Modules linked in: iptable_filter ip_tables ip6_tables x_tables > > cpufreq_conservative cpufreq_userspace cpufreq_powersave powernow_k8 > > xfs loop dm_mod cx25840 mt2131 s5h1409 nvidia(P) cx23885 > > v4l2_compat_ioctl32 cx2341x videobuf_dma_sg button videobuf_dvb > > dvb_core videobuf_core v4l2_common snd_hda_intel snd_usb_audio > > snd_usb_lib snd_mpu401 snd_cs4232 snd_opl3_lib snd_cs4231_lib snd_pcm > > ohci1394 videodev v4l1_compat osst agpgart btcx_risc rtc_cmos > > i2c_nforce2 snd_timer ieee1394 snd_mpu401_uart tveeprom sr_mod > > snd_hwdep i2c_core rtc_core rtc_lib parport_pc parport st lirc_mceusb2 > > snd_rawmidi snd_seq_device snd k8temp hwmon cdrom forcedeth soundcore > > snd_page_alloc lirc_dev sg usbhid hid ff_memless ohci_hcd ehci_hcd > > usbcore sd_mod edd ext3 mbcache jbd fan aic7xxx scsi_transport_spi > > sata_nv pata_amd libata scsi_mod dock thermal processor thermal_sys > > > > Pid: 3178, comm: X Tainted: P (2.6.27.10-default #3) > > EIP: 0060:[<f8e5a594>] EFLAGS: 00013287 CPU: 1 > > EIP is at video_open+0x2c/0x150 [cx23885] > > EAX: 00000000 EBX: 00000000 ECX: f7a9f000 EDX: f7a0e000 > > ESI: 00000000 EDI: 00000000 EBP: 00000000 ESP: f764de90 > > DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 > > Process X (pid: 3178, ti=f764c000 task=f7398c00 task.ti=f764c000) > > Stack: f7a6e540 00000000 f7b16538 00000000 f7bc30a0 c016bee5 f7a6e540 > > 00000000 > > f7a6e540 f7bc30a0 00000000 c016bdd9 c01683cd f701ebc0 f6d756c0 > > f764df14 > > f7a6e540 f764df14 00000003 c01684d8 f7a6e540 00000000 00000000 > > f764df14 > > Call Trace: > > [<c016bee5>] chrdev_open+0x10c/0x122 > > [<c016bdd9>] chrdev_open+0x0/0x122 > > [<c01683cd>] __dentry_open+0x10d/0x1fc > > [<c01684d8>] nameidata_to_filp+0x1c/0x2c > > [<c0172986>] do_filp_open+0x33d/0x63e > > [<f9b7d8ce>] _nv004117rm+0x9/0x12 [nvidia] > > [<c01582f8>] handle_mm_fault+0x2b3/0x5dd > > [<c017ab2d>] alloc_fd+0x57/0xd3 > > [<c01681e8>] do_sys_open+0x3f/0xb8 > > [<c01682a5>] sys_open+0x1e/0x23 > > [<c01037ad>] sysenter_do_call+0x12/0x21 > > ======================= > > Code: 31 ed 57 31 ff 56 31 f6 53 83 ec 04 89 14 24 8b 58 34 e8 16 18 > > 46 c7 8b 15 d0 ad e6 f8 81 e3 ff ff 0f 00 eb 49 8b 82 84 0d 00 00 <39> > > 98 a0 01 00 00 75 07 89 d6 bf 01 00 00 00 8b 82 88 0d 00 00 > > EIP: [<f8e5a594>] video_open+0x2c/0x150 [cx23885] SS:ESP 0068:f764de90 > > ---[ end trace c26ff07c077248e0 ]--- > > Mark, > > Using the same interrupt isn't the problem. > > Here's the gory translation of the Ooops data: > > > The problem is tripped in cx23885-video.c:video_open(): > > 777 static int video_open(struct inode *inode, struct file *file) > 778 { > 779 int minor = iminor(inode); > 780 struct cx23885_dev *h, *dev = NULL; > 781 struct cx23885_fh *fh; > 782 struct list_head *list; > 783 enum v4l2_buf_type type = 0; > 784 int radio = 0; > 785 > 786 lock_kernel(); > 787 list_for_each(list, &cx23885_devlist) { > 788 h = list_entry(list, struct cx23885_dev, devlist); > 789 if (h->video_dev->minor == minor) { > 790 dev = h; > 791 type = V4L2_BUF_TYPE_VIDEO_CAPTURE; > 792 } > 793 if (h->vbi_dev && > 794 h->vbi_dev->minor == minor) { > 795 dev = h; > 796 type = V4L2_BUF_TYPE_VBI_CAPTURE; > 797 } > [...] > > Also note the list_entry() & list_for_each() macro definitions: > > 425 #define list_entry(ptr, type, member) \ > 426 container_of(ptr, type, member) > [...] > 444 #define list_for_each(pos, head) \ > 445 for (pos = (head)->next; prefetch(pos->next), pos != (head); \ > 446 pos = pos->next) > > > > The code bytes dumped in the Oops disassemble to: > > 1: 31 ed xor %ebp,%ebp > 3: 57 push %edi > 4: 31 ff xor %edi,%edi > 6: 56 push %esi > 7: 31 f6 xor %esi,%esi > 9: 53 push %ebx > a: 83 ec 04 sub $0x4,%esp > d: 89 14 24 mov %edx,(%esp) > 10: 8b 58 34 mov 0x34(%eax),%ebx <--- line 779: > minor = iminor(inode); > 13: e8 16 18 46 c7 call 0xc746182e <--- line 786: > lock_kernel() > 18: 8b 15 d0 ad e6 f8 mov 0xf8e6add0,%edx <--- line 445: list > = (&cx23885_devlist)->next; > 1e: 81 e3 ff ff 0f 00 and $0xfffff,%ebx <--- line 779: > minor = iminor(inode); > 24: eb 49 jmp 0x6f <--- jmp to for > loop condition check: line 445: prefetch(list->next), list != > &cx23885_devlist; > 26: 8b 82 84 0d 00 00 mov 0xd84(%edx),%eax <--- line 426 & > 789: h = container_of(list, struct cx23885_dev, devlist); if > (h->video_dev... > 2c: 39 98 a0 01 00 00 cmp %ebx,0x1a0(%eax) <--- Ooops occurs > here: line 789: if (h->video_dev->minor == minor) { > 32: 75 07 jne 0x3b > 34: 89 d6 mov %edx,%esi <--- line 790: dev > = h; > 36: bf 01 00 00 00 mov $0x1,%edi <--- line 791: type > = V4L2_BUF_TYPE_VIDEO_CAPTURE; > 3b: 8b 82 88 0d 00 00 mov 0xd88(%edx),%eax <--- line 793: if > (h->vbi_dev ... > > > So "h->video_dev" (I think) was "NULL" in this call to video_open(). > This is a problem with the creation or manipulation of the "struct > cx23885_dev" members of the "cx23885_devlist". > > This appears to be a problem with this list iteration in > cx23885-video.c:video_open(). > > If one of these devices only has DVB support and no analog V4L support, > then it would make sense why one of them would have "h->video_dev" set > to NULL. The device shouldn't have a V4L2 "video_dev" if it doesn't > support analog (V4L2) devices. I believe the 1800 supports analog video > but the 1250 does not (someone correct me on this if I'm wrong - I'm no > expert on these devices). > > The iteration loop in video_open() needs to be careful about NULL > pointer dereference of h->video_dev for DVB only devices. > > Try this patch: > > diff -r cae6de452897 linux/drivers/media/video/cx23885/cx23885-video.c > --- a/linux/drivers/media/video/cx23885/cx23885-video.c Fri Dec 26 08:07:39 > 2008 -0200 > +++ b/linux/drivers/media/video/cx23885/cx23885-video.c Sun Dec 28 16:34:04 > 2008 -0500 > @@ -786,7 +786,8 @@ static int video_open(struct inode *inod > lock_kernel(); > list_for_each(list, &cx23885_devlist) { > h = list_entry(list, struct cx23885_dev, devlist); > - if (h->video_dev->minor == minor) { > + if (h->video_dev && > + h->video_dev->minor == minor) { > dev = h; > type = V4L2_BUF_TYPE_VIDEO_CAPTURE; > } > > > > If it doesn't work you'll need to find someone with access to a HVR-1250 > and HVR-1800 in the same machine to do more interactive debugging (Andy > Walls' thought experiments can only take one so far....). > > I can't help further since I don't have any CX23885 based cards. > > Regards, > Andy > Andy, You are correct. They are both are cx23885 cards, and only one of them has an analog input to it. The 1250 is a DVB and the 1800 is DVB, but is a MCE card with analog(svideo, etc), in. I will give your patch a try tomorrow. I'm kind of tired of pulling my media computer, putting in and replacing the card 20 times in one day trying to figure this out. Thanks! -Mark [-- Attachment #1.2: Type: text/html, Size: 12796 bytes --] [-- Attachment #2: Type: text/plain, Size: 150 bytes --] _______________________________________________ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Problems with kernel oops when installing HVR-1800. 2008-12-28 22:51 ` Mark Jenks @ 2008-12-28 23:45 ` CityK 2008-12-29 1:01 ` Mark Jenks 0 siblings, 1 reply; 14+ messages in thread From: CityK @ 2008-12-28 23:45 UTC (permalink / raw) To: Mark Jenks; +Cc: linux-dvb Mark Jenks wrote: > > > On Sun, Dec 28, 2008 at 3:36 PM, Andy Walls <awalls@radix.net > <mailto:awalls@radix.net>> wrote: > > If one of these devices only has DVB support and no analog V4L > support, > then it would make sense why one of them would have "h->video_dev" set > to NULL. The device shouldn't have a V4L2 "video_dev" if it doesn't > support analog (V4L2) devices. I believe the 1800 supports analog > video > but the 1250 does not (someone correct me on this if I'm wrong - > I'm no > expert on these devices). > > > Andy, > > You are correct. They are both are cx23885 cards, and only one of > them has an analog input to it. The 1250 is a DVB and the 1800 is DVB, > but is a MCE card with analog(svideo, etc), in. > The HVR-1250 device itself supports analogue, but such support is not yet realized within the cx23885 driver. _______________________________________________ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Problems with kernel oops when installing HVR-1800. 2008-12-28 23:45 ` CityK @ 2008-12-29 1:01 ` Mark Jenks 2008-12-29 2:59 ` CityK 0 siblings, 1 reply; 14+ messages in thread From: Mark Jenks @ 2008-12-29 1:01 UTC (permalink / raw) To: CityK; +Cc: linux-dvb [-- Attachment #1.1: Type: text/plain, Size: 1196 bytes --] On Sun, Dec 28, 2008 at 5:45 PM, CityK <cityk@rogers.com> wrote: > Mark Jenks wrote: > > > > > > On Sun, Dec 28, 2008 at 3:36 PM, Andy Walls <awalls@radix.net > > <mailto:awalls@radix.net>> wrote: > > > > If one of these devices only has DVB support and no analog V4L > > support, > > then it would make sense why one of them would have "h->video_dev" > set > > to NULL. The device shouldn't have a V4L2 "video_dev" if it doesn't > > support analog (V4L2) devices. I believe the 1800 supports analog > > video > > but the 1250 does not (someone correct me on this if I'm wrong - > > I'm no > > expert on these devices). > > > > > > Andy, > > > > You are correct. They are both are cx23885 cards, and only one of > > them has an analog input to it. The 1250 is a DVB and the 1800 is DVB, > > but is a MCE card with analog(svideo, etc), in. > > > > The HVR-1250 device itself supports analogue, but such support is not > yet realized within the cx23885 driver. > Wow, actually it has an svideo in that I never paid attention to. Maybe someday I'll be able to use both of the analog in for both the 1250 and the 1800 (not keeping my hopes up here). -Mark [-- Attachment #1.2: Type: text/html, Size: 1898 bytes --] [-- Attachment #2: Type: text/plain, Size: 150 bytes --] _______________________________________________ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Problems with kernel oops when installing HVR-1800. 2008-12-29 1:01 ` Mark Jenks @ 2008-12-29 2:59 ` CityK 2009-01-01 18:34 ` Mark Jenks 0 siblings, 1 reply; 14+ messages in thread From: CityK @ 2008-12-29 2:59 UTC (permalink / raw) To: Mark Jenks; +Cc: linux-dvb Mark Jenks wrote: > On Sun, Dec 28, 2008 at 5:45 PM, CityK <cityk@rogers.com > <mailto:cityk@rogers.com>> wrote: > > > The HVR-1250 device itself supports analogue, but such support is not > yet realized within the cx23885 driver. > > > Wow, actually it has an svideo in that I never paid attention to. > Maybe someday I'll be able to use both of the analog in for both the > 1250 and the 1800 To be clear, just so everyone is on the same page, the device's analogue input facilities include both that from its analog TV tuner and from its (as mentioned above) A/V inputs _______________________________________________ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Problems with kernel oops when installing HVR-1800. 2008-12-29 2:59 ` CityK @ 2009-01-01 18:34 ` Mark Jenks 2009-01-01 20:57 ` Mark Jenks 2009-01-01 21:18 ` Andy Walls 0 siblings, 2 replies; 14+ messages in thread From: Mark Jenks @ 2009-01-01 18:34 UTC (permalink / raw) To: CityK; +Cc: linux-dvb [-- Attachment #1.1: Type: text/plain, Size: 3189 bytes --] On Sun, Dec 28, 2008 at 8:59 PM, CityK <cityk@rogers.com> wrote: > Mark Jenks wrote: > > On Sun, Dec 28, 2008 at 5:45 PM, CityK <cityk@rogers.com > > <mailto:cityk@rogers.com>> wrote: > > > > > > The HVR-1250 device itself supports analogue, but such support is not > > yet realized within the cx23885 driver. > > > > > > Wow, actually it has an svideo in that I never paid attention to. > > Maybe someday I'll be able to use both of the analog in for both the > > 1250 and the 1800 > > To be clear, just so everyone is on the same page, the device's analogue > input facilities include both that from its analog TV tuner and from its > (as mentioned above) A/V inputs Well, I patched it, make clean, make, make install, and a reboot. BUG: unable to handle kernel NULL pointer dereference at 00000168 IP: [<f0e2571c>] :cx23885:mpeg_open+0x41/0xc0 *pde = 00000000 Oops: 0000 [#1] SMP Modules linked in: cpufreq_conservative cpufreq_userspace cpufreq_powersave powernow_k8 xfs loop dm_mod cx25840 mt2131 s5h1409 cx23885 v4l2_compat_ioctl32 nvidia(P) snd_mpu401 cx2341x videobuf_dma_sg videobuf_dvb dvb_core videobuf_core snd_usb_audio snd_usb_lib snd_cs4232 snd_opl3_lib v4l2_common videodev agpgart snd_hwdep lirc_mceusb2 snd_cs4231_lib snd_mpu401_uart snd_rawmidi snd_hda_intel snd_pcm parport_pc ohci1394 snd_timer k8temp osst v4l1_compat snd_seq_device hwmon snd button i2c_nforce2 lirc_dev parport ieee1394 st forcedeth sr_mod cdrom rtc_cmos rtc_core btcx_risc tveeprom i2c_core snd_page_alloc soundcore rtc_lib sg usbhid hid ff_memless ohci_hcd ehci_hcd usbcore sd_mod edd ext3 mbcache jbd fan aic7xxx scsi_transport_spi sata_nv pata_amd libata scsi_mod dock thermal processor thermal_sys Pid: 2876, comm: X Tainted: P (2.6.27.10-default #3) EIP: 0060:[<f0e2571c>] EFLAGS: 00013287 CPU: 1 EIP is at mpeg_open+0x41/0xc0 [cx23885] EAX: 00000000 EBX: ef1fd000 ECX: f0e308a8 EDX: ef3be000 ESI: 00000001 EDI: ef189980 EBP: efba1790 ESP: efe93e84 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Process X (pid: 2876, ti=efe92000 task=ef1e5070 task.ti=efe92000) Stack: efbf5a00 efbf5a04 ef189980 f0d775b8 00000000 ef3876c0 00000000 efba1790 c016bee5 ef189980 00000000 ef189980 efba1790 00000000 c016bdd9 c01683cd ef81ebc0 ef504c6c efe93f14 ef189980 efe93f14 00000003 c01684d8 ef189980 Call Trace: [<f0d775b8>] v4l2_open+0x62/0x76 [videodev] [<c016bee5>] chrdev_open+0x10c/0x122 [<c016bdd9>] chrdev_open+0x0/0x122 [<c01683cd>] __dentry_open+0x10d/0x1fc [<c01684d8>] nameidata_to_filp+0x1c/0x2c [<c0172986>] do_filp_open+0x33d/0x63e [<f1aad8ce>] _nv004117rm+0x9/0x12 [nvidia] [<c01582f8>] handle_mm_fault+0x2b3/0x5dd [<f0dcf391>] __videobuf_mmap_free+0x3e/0x7d [videobuf_core] [<c017ab2d>] alloc_fd+0x57/0xd3 [<c01681e8>] do_sys_open+0x3f/0xb8 [<c01682a5>] sys_open+0x1e/0x23 [<c01037ad>] sysenter_do_call+0x12/0x21 ======================= Code: 17 68 38 7a e2 f0 68 c8 0a 00 00 68 ee a2 e2 f0 e8 51 aa 2f cf 83 c4 0c e8 88 66 49 cf 8b 1d a0 fd e2 f0 eb 10 8b 83 c4 0e 00 00 <39> b0 68 01 00 00 74 1c 89 d3 8b 13 0f 18 02 90 81 fb a0 fd e2 EIP: [<f0e2571c>] mpeg_open+0x41/0xc0 [cx23885] SS:ESP 0068:efe93e84 ---[ end trace 1bdce38cbcdc8781 ]--- [-- Attachment #1.2: Type: text/html, Size: 4095 bytes --] [-- Attachment #2: Type: text/plain, Size: 150 bytes --] _______________________________________________ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Problems with kernel oops when installing HVR-1800. 2009-01-01 18:34 ` Mark Jenks @ 2009-01-01 20:57 ` Mark Jenks 2009-01-01 21:18 ` Andy Walls 1 sibling, 0 replies; 14+ messages in thread From: Mark Jenks @ 2009-01-01 20:57 UTC (permalink / raw) To: CityK; +Cc: linux-dvb [-- Attachment #1.1: Type: text/plain, Size: 3491 bytes --] On Thu, Jan 1, 2009 at 12:34 PM, Mark Jenks <mjenks1968@gmail.com> wrote: > > > On Sun, Dec 28, 2008 at 8:59 PM, CityK <cityk@rogers.com> wrote: > >> Mark Jenks wrote: >> > On Sun, Dec 28, 2008 at 5:45 PM, CityK <cityk@rogers.com >> > <mailto:cityk@rogers.com>> wrote: >> > >> > >> > The HVR-1250 device itself supports analogue, but such support is >> not >> > yet realized within the cx23885 driver. >> > >> > >> > Wow, actually it has an svideo in that I never paid attention to. >> > Maybe someday I'll be able to use both of the analog in for both the >> > 1250 and the 1800 >> >> To be clear, just so everyone is on the same page, the device's analogue >> input facilities include both that from its analog TV tuner and from its >> (as mentioned above) A/V inputs > > > Well, I patched it, make clean, make, make install, and a reboot. > > BUG: unable to handle kernel NULL pointer dereference at 00000168 > IP: [<f0e2571c>] :cx23885:mpeg_open+0x41/0xc0 > *pde = 00000000 > Oops: 0000 [#1] SMP > Modules linked in: cpufreq_conservative cpufreq_userspace cpufreq_powersave > powernow_k8 xfs loop dm_mod cx25840 mt2131 s5h1409 cx23885 > v4l2_compat_ioctl32 nvidia(P) snd_mpu401 cx2341x videobuf_dma_sg > videobuf_dvb dvb_core videobuf_core snd_usb_audio snd_usb_lib snd_cs4232 > snd_opl3_lib v4l2_common videodev agpgart snd_hwdep lirc_mceusb2 > snd_cs4231_lib snd_mpu401_uart snd_rawmidi snd_hda_intel snd_pcm parport_pc > ohci1394 snd_timer k8temp osst v4l1_compat snd_seq_device hwmon snd button > i2c_nforce2 lirc_dev parport ieee1394 st forcedeth sr_mod cdrom rtc_cmos > rtc_core btcx_risc tveeprom i2c_core snd_page_alloc soundcore rtc_lib sg > usbhid hid ff_memless ohci_hcd ehci_hcd usbcore sd_mod edd ext3 mbcache jbd > fan aic7xxx scsi_transport_spi sata_nv pata_amd libata scsi_mod dock thermal > processor thermal_sys > > Pid: 2876, comm: X Tainted: P (2.6.27.10-default #3) > EIP: 0060:[<f0e2571c>] EFLAGS: 00013287 CPU: 1 > EIP is at mpeg_open+0x41/0xc0 [cx23885] > EAX: 00000000 EBX: ef1fd000 ECX: f0e308a8 EDX: ef3be000 > ESI: 00000001 EDI: ef189980 EBP: efba1790 ESP: efe93e84 > DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 > Process X (pid: 2876, ti=efe92000 task=ef1e5070 task.ti=efe92000) > Stack: efbf5a00 efbf5a04 ef189980 f0d775b8 00000000 ef3876c0 00000000 > efba1790 > c016bee5 ef189980 00000000 ef189980 efba1790 00000000 c016bdd9 > c01683cd > ef81ebc0 ef504c6c efe93f14 ef189980 efe93f14 00000003 c01684d8 > ef189980 > Call Trace: > [<f0d775b8>] v4l2_open+0x62/0x76 [videodev] > [<c016bee5>] chrdev_open+0x10c/0x122 > [<c016bdd9>] chrdev_open+0x0/0x122 > [<c01683cd>] __dentry_open+0x10d/0x1fc > [<c01684d8>] nameidata_to_filp+0x1c/0x2c > [<c0172986>] do_filp_open+0x33d/0x63e > [<f1aad8ce>] _nv004117rm+0x9/0x12 [nvidia] > [<c01582f8>] handle_mm_fault+0x2b3/0x5dd > [<f0dcf391>] __videobuf_mmap_free+0x3e/0x7d [videobuf_core] > [<c017ab2d>] alloc_fd+0x57/0xd3 > [<c01681e8>] do_sys_open+0x3f/0xb8 > [<c01682a5>] sys_open+0x1e/0x23 > [<c01037ad>] sysenter_do_call+0x12/0x21 > ======================= > Code: 17 68 38 7a e2 f0 68 c8 0a 00 00 68 ee a2 e2 f0 e8 51 aa 2f cf 83 c4 > 0c e8 88 66 49 cf 8b 1d a0 fd e2 f0 eb 10 8b 83 c4 0e 00 00 <39> b0 68 01 00 > 00 74 1c 89 d3 8b 13 0f 18 02 90 81 fb a0 fd e2 > EIP: [<f0e2571c>] mpeg_open+0x41/0xc0 [cx23885] SS:ESP 0068:efe93e84 > ---[ end trace 1bdce38cbcdc8781 ]--- > > > It's working! I had to change cx23885-417.c to the same if statement in mpeg_open. -Mark [-- Attachment #1.2: Type: text/html, Size: 4745 bytes --] [-- Attachment #2: Type: text/plain, Size: 150 bytes --] _______________________________________________ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Problems with kernel oops when installing HVR-1800. 2009-01-01 18:34 ` Mark Jenks 2009-01-01 20:57 ` Mark Jenks @ 2009-01-01 21:18 ` Andy Walls 2009-01-01 22:53 ` Mark Jenks 1 sibling, 1 reply; 14+ messages in thread From: Andy Walls @ 2009-01-01 21:18 UTC (permalink / raw) To: Mark Jenks; +Cc: linux-dvb On Thu, 2009-01-01 at 12:34 -0600, Mark Jenks wrote: > Well, I patched it, make clean, make, make install, and a reboot. > > BUG: unable to handle kernel NULL pointer dereference at 00000168 > IP: [<f0e2571c>] :cx23885:mpeg_open+0x41/0xc0 > *pde = 00000000 > Oops: 0000 [#1] SMP Same failure mode, different place in the driver: linux/drivers/media/video/cx23885/cx23885-417.c:mpeg_open(): static int mpeg_open(struct file *file) { [...] lock_kernel(); list_for_each(list, &cx23885_devlist) { h = list_entry(list, struct cx23885_dev, devlist); if (h->v4l_device->minor == minor) { dev = h; [...] "h->v4l_device" is likely NULL here for one device due to one card having analog support in the driver and the other not having analog support in the driver. The fix for this is analogous to the previous fix. Those are the only two places in the driver the cx23885_devlist is iterated over, so hopefully every other instance of system will know what type of device it it dealing with and v4l_device and video_dev will only be used when well defined. Fix, Test, Repeat... Regards, Andy > Modules linked in: cpufreq_conservative cpufreq_userspace > cpufreq_powersave powernow_k8 xfs loop dm_mod cx25840 mt2131 s5h1409 > cx23885 v4l2_compat_ioctl32 nvidia(P) snd_mpu401 cx2341x > videobuf_dma_sg videobuf_dvb dvb_core videobuf_core snd_usb_audio > snd_usb_lib snd_cs4232 snd_opl3_lib v4l2_common videodev agpgart > snd_hwdep lirc_mceusb2 snd_cs4231_lib snd_mpu401_uart snd_rawmidi > snd_hda_intel snd_pcm parport_pc ohci1394 snd_timer k8temp osst > v4l1_compat snd_seq_device hwmon snd button i2c_nforce2 lirc_dev > parport ieee1394 st forcedeth sr_mod cdrom rtc_cmos rtc_core btcx_risc > tveeprom i2c_core snd_page_alloc soundcore rtc_lib sg usbhid hid > ff_memless ohci_hcd ehci_hcd usbcore sd_mod edd ext3 mbcache jbd fan > aic7xxx scsi_transport_spi sata_nv pata_amd libata scsi_mod dock > thermal processor thermal_sys > > Pid: 2876, comm: X Tainted: P (2.6.27.10-default #3) > EIP: 0060:[<f0e2571c>] EFLAGS: 00013287 CPU: 1 > EIP is at mpeg_open+0x41/0xc0 [cx23885] > EAX: 00000000 EBX: ef1fd000 ECX: f0e308a8 EDX: ef3be000 > ESI: 00000001 EDI: ef189980 EBP: efba1790 ESP: efe93e84 > DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 > Process X (pid: 2876, ti=efe92000 task=ef1e5070 task.ti=efe92000) > Stack: efbf5a00 efbf5a04 ef189980 f0d775b8 00000000 ef3876c0 00000000 > efba1790 > c016bee5 ef189980 00000000 ef189980 efba1790 00000000 c016bdd9 > c01683cd > ef81ebc0 ef504c6c efe93f14 ef189980 efe93f14 00000003 c01684d8 > ef189980 > Call Trace: > [<f0d775b8>] v4l2_open+0x62/0x76 [videodev] > [<c016bee5>] chrdev_open+0x10c/0x122 > [<c016bdd9>] chrdev_open+0x0/0x122 > [<c01683cd>] __dentry_open+0x10d/0x1fc > [<c01684d8>] nameidata_to_filp+0x1c/0x2c > [<c0172986>] do_filp_open+0x33d/0x63e > [<f1aad8ce>] _nv004117rm+0x9/0x12 [nvidia] > [<c01582f8>] handle_mm_fault+0x2b3/0x5dd > [<f0dcf391>] __videobuf_mmap_free+0x3e/0x7d [videobuf_core] > [<c017ab2d>] alloc_fd+0x57/0xd3 > [<c01681e8>] do_sys_open+0x3f/0xb8 > [<c01682a5>] sys_open+0x1e/0x23 > [<c01037ad>] sysenter_do_call+0x12/0x21 > ======================= > Code: 17 68 38 7a e2 f0 68 c8 0a 00 00 68 ee a2 e2 f0 e8 51 aa 2f cf > 83 c4 0c e8 88 66 49 cf 8b 1d a0 fd e2 f0 eb 10 8b 83 c4 0e 00 00 <39> > b0 68 01 00 00 74 1c 89 d3 8b 13 0f 18 02 90 81 fb a0 fd e2 > EIP: [<f0e2571c>] mpeg_open+0x41/0xc0 [cx23885] SS:ESP 0068:efe93e84 > ---[ end trace 1bdce38cbcdc8781 ]--- > > > _______________________________________________ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Problems with kernel oops when installing HVR-1800. 2009-01-01 21:18 ` Andy Walls @ 2009-01-01 22:53 ` Mark Jenks 2009-01-01 23:01 ` Mark Jenks 0 siblings, 1 reply; 14+ messages in thread From: Mark Jenks @ 2009-01-01 22:53 UTC (permalink / raw) To: Andy Walls; +Cc: linux-dvb [-- Attachment #1.1: Type: text/plain, Size: 3999 bytes --] On Thu, Jan 1, 2009 at 3:18 PM, Andy Walls <awalls@radix.net> wrote: > On Thu, 2009-01-01 at 12:34 -0600, Mark Jenks wrote: > > > > > Well, I patched it, make clean, make, make install, and a reboot. > > > > BUG: unable to handle kernel NULL pointer dereference at 00000168 > > IP: [<f0e2571c>] :cx23885:mpeg_open+0x41/0xc0 > > *pde = 00000000 > > Oops: 0000 [#1] SMP > > Same failure mode, different place in the driver: > > linux/drivers/media/video/cx23885/cx23885-417.c:mpeg_open(): > > static int mpeg_open(struct file *file) > { > [...] > lock_kernel(); > list_for_each(list, &cx23885_devlist) { > h = list_entry(list, struct cx23885_dev, > devlist); > if (h->v4l_device->minor == minor) { > dev = h; > [...] > > "h->v4l_device" is likely NULL here for one device due to one card > having analog support in the driver and the other not having analog > support in the driver. > > The fix for this is analogous to the previous fix. > > Those are the only two places in the driver the cx23885_devlist is > iterated over, so hopefully every other instance of system will know > what type of device it it dealing with and v4l_device and video_dev will > only be used when well defined. > > Fix, Test, Repeat... > > Regards, > Andy > > > > > > Modules linked in: cpufreq_conservative cpufreq_userspace > > cpufreq_powersave powernow_k8 xfs loop dm_mod cx25840 mt2131 s5h1409 > > cx23885 v4l2_compat_ioctl32 nvidia(P) snd_mpu401 cx2341x > > videobuf_dma_sg videobuf_dvb dvb_core videobuf_core snd_usb_audio > > snd_usb_lib snd_cs4232 snd_opl3_lib v4l2_common videodev agpgart > > snd_hwdep lirc_mceusb2 snd_cs4231_lib snd_mpu401_uart snd_rawmidi > > snd_hda_intel snd_pcm parport_pc ohci1394 snd_timer k8temp osst > > v4l1_compat snd_seq_device hwmon snd button i2c_nforce2 lirc_dev > > parport ieee1394 st forcedeth sr_mod cdrom rtc_cmos rtc_core btcx_risc > > tveeprom i2c_core snd_page_alloc soundcore rtc_lib sg usbhid hid > > ff_memless ohci_hcd ehci_hcd usbcore sd_mod edd ext3 mbcache jbd fan > > aic7xxx scsi_transport_spi sata_nv pata_amd libata scsi_mod dock > > thermal processor thermal_sys > > > > Pid: 2876, comm: X Tainted: P (2.6.27.10-default #3) > > EIP: 0060:[<f0e2571c>] EFLAGS: 00013287 CPU: 1 > > EIP is at mpeg_open+0x41/0xc0 [cx23885] > > EAX: 00000000 EBX: ef1fd000 ECX: f0e308a8 EDX: ef3be000 > > ESI: 00000001 EDI: ef189980 EBP: efba1790 ESP: efe93e84 > > DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 > > Process X (pid: 2876, ti=efe92000 task=ef1e5070 task.ti=efe92000) > > Stack: efbf5a00 efbf5a04 ef189980 f0d775b8 00000000 ef3876c0 00000000 > > efba1790 > > c016bee5 ef189980 00000000 ef189980 efba1790 00000000 c016bdd9 > > c01683cd > > ef81ebc0 ef504c6c efe93f14 ef189980 efe93f14 00000003 c01684d8 > > ef189980 > > Call Trace: > > [<f0d775b8>] v4l2_open+0x62/0x76 [videodev] > > [<c016bee5>] chrdev_open+0x10c/0x122 > > [<c016bdd9>] chrdev_open+0x0/0x122 > > [<c01683cd>] __dentry_open+0x10d/0x1fc > > [<c01684d8>] nameidata_to_filp+0x1c/0x2c > > [<c0172986>] do_filp_open+0x33d/0x63e > > [<f1aad8ce>] _nv004117rm+0x9/0x12 [nvidia] > > [<c01582f8>] handle_mm_fault+0x2b3/0x5dd > > [<f0dcf391>] __videobuf_mmap_free+0x3e/0x7d [videobuf_core] > > [<c017ab2d>] alloc_fd+0x57/0xd3 > > [<c01681e8>] do_sys_open+0x3f/0xb8 > > [<c01682a5>] sys_open+0x1e/0x23 > > [<c01037ad>] sysenter_do_call+0x12/0x21 > > ======================= > > Code: 17 68 38 7a e2 f0 68 c8 0a 00 00 68 ee a2 e2 f0 e8 51 aa 2f cf > > 83 c4 0c e8 88 66 49 cf 8b 1d a0 fd e2 f0 eb 10 8b 83 c4 0e 00 00 <39> > > b0 68 01 00 00 74 1c 89 d3 8b 13 0f 18 02 90 81 fb a0 fd e2 > > EIP: [<f0e2571c>] mpeg_open+0x41/0xc0 [cx23885] SS:ESP 0068:efe93e84 > > ---[ end trace 1bdce38cbcdc8781 ]--- > > > > > > > > So, now that I have it fixed. I have no idea how to submit a patch for what just happened. -Mark [-- Attachment #1.2: Type: text/html, Size: 5475 bytes --] [-- Attachment #2: Type: text/plain, Size: 150 bytes --] _______________________________________________ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Problems with kernel oops when installing HVR-1800. 2009-01-01 22:53 ` Mark Jenks @ 2009-01-01 23:01 ` Mark Jenks 2009-01-02 3:14 ` Andy Walls 0 siblings, 1 reply; 14+ messages in thread From: Mark Jenks @ 2009-01-01 23:01 UTC (permalink / raw) To: Andy Walls; +Cc: linux-dvb [-- Attachment #1.1: Type: text/plain, Size: 4757 bytes --] On Thu, Jan 1, 2009 at 4:53 PM, Mark Jenks <mjenks1968@gmail.com> wrote: > > > On Thu, Jan 1, 2009 at 3:18 PM, Andy Walls <awalls@radix.net> wrote: > >> On Thu, 2009-01-01 at 12:34 -0600, Mark Jenks wrote: >> >> >> >> > Well, I patched it, make clean, make, make install, and a reboot. >> > >> > BUG: unable to handle kernel NULL pointer dereference at 00000168 >> > IP: [<f0e2571c>] :cx23885:mpeg_open+0x41/0xc0 >> > *pde = 00000000 >> > Oops: 0000 [#1] SMP >> >> Same failure mode, different place in the driver: >> >> linux/drivers/media/video/cx23885/cx23885-417.c:mpeg_open(): >> >> static int mpeg_open(struct file *file) >> { >> [...] >> lock_kernel(); >> list_for_each(list, &cx23885_devlist) { >> h = list_entry(list, struct cx23885_dev, >> devlist); >> if (h->v4l_device->minor == minor) { >> dev = h; >> [...] >> >> "h->v4l_device" is likely NULL here for one device due to one card >> having analog support in the driver and the other not having analog >> support in the driver. >> >> The fix for this is analogous to the previous fix. >> >> Those are the only two places in the driver the cx23885_devlist is >> iterated over, so hopefully every other instance of system will know >> what type of device it it dealing with and v4l_device and video_dev will >> only be used when well defined. >> >> Fix, Test, Repeat... >> >> Regards, >> Andy >> >> >> >> >> > Modules linked in: cpufreq_conservative cpufreq_userspace >> > cpufreq_powersave powernow_k8 xfs loop dm_mod cx25840 mt2131 s5h1409 >> > cx23885 v4l2_compat_ioctl32 nvidia(P) snd_mpu401 cx2341x >> > videobuf_dma_sg videobuf_dvb dvb_core videobuf_core snd_usb_audio >> > snd_usb_lib snd_cs4232 snd_opl3_lib v4l2_common videodev agpgart >> > snd_hwdep lirc_mceusb2 snd_cs4231_lib snd_mpu401_uart snd_rawmidi >> > snd_hda_intel snd_pcm parport_pc ohci1394 snd_timer k8temp osst >> > v4l1_compat snd_seq_device hwmon snd button i2c_nforce2 lirc_dev >> > parport ieee1394 st forcedeth sr_mod cdrom rtc_cmos rtc_core btcx_risc >> > tveeprom i2c_core snd_page_alloc soundcore rtc_lib sg usbhid hid >> > ff_memless ohci_hcd ehci_hcd usbcore sd_mod edd ext3 mbcache jbd fan >> > aic7xxx scsi_transport_spi sata_nv pata_amd libata scsi_mod dock >> > thermal processor thermal_sys >> > >> > Pid: 2876, comm: X Tainted: P (2.6.27.10-default #3) >> > EIP: 0060:[<f0e2571c>] EFLAGS: 00013287 CPU: 1 >> > EIP is at mpeg_open+0x41/0xc0 [cx23885] >> > EAX: 00000000 EBX: ef1fd000 ECX: f0e308a8 EDX: ef3be000 >> > ESI: 00000001 EDI: ef189980 EBP: efba1790 ESP: efe93e84 >> > DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 >> > Process X (pid: 2876, ti=efe92000 task=ef1e5070 task.ti=efe92000) >> > Stack: efbf5a00 efbf5a04 ef189980 f0d775b8 00000000 ef3876c0 00000000 >> > efba1790 >> > c016bee5 ef189980 00000000 ef189980 efba1790 00000000 c016bdd9 >> > c01683cd >> > ef81ebc0 ef504c6c efe93f14 ef189980 efe93f14 00000003 c01684d8 >> > ef189980 >> > Call Trace: >> > [<f0d775b8>] v4l2_open+0x62/0x76 [videodev] >> > [<c016bee5>] chrdev_open+0x10c/0x122 >> > [<c016bdd9>] chrdev_open+0x0/0x122 >> > [<c01683cd>] __dentry_open+0x10d/0x1fc >> > [<c01684d8>] nameidata_to_filp+0x1c/0x2c >> > [<c0172986>] do_filp_open+0x33d/0x63e >> > [<f1aad8ce>] _nv004117rm+0x9/0x12 [nvidia] >> > [<c01582f8>] handle_mm_fault+0x2b3/0x5dd >> > [<f0dcf391>] __videobuf_mmap_free+0x3e/0x7d [videobuf_core] >> > [<c017ab2d>] alloc_fd+0x57/0xd3 >> > [<c01681e8>] do_sys_open+0x3f/0xb8 >> > [<c01682a5>] sys_open+0x1e/0x23 >> > [<c01037ad>] sysenter_do_call+0x12/0x21 >> > ======================= >> > Code: 17 68 38 7a e2 f0 68 c8 0a 00 00 68 ee a2 e2 f0 e8 51 aa 2f cf >> > 83 c4 0c e8 88 66 49 cf 8b 1d a0 fd e2 f0 eb 10 8b 83 c4 0e 00 00 <39> >> > b0 68 01 00 00 74 1c 89 d3 8b 13 0f 18 02 90 81 fb a0 fd e2 >> > EIP: [<f0e2571c>] mpeg_open+0x41/0xc0 [cx23885] SS:ESP 0068:efe93e84 >> > ---[ end trace 1bdce38cbcdc8781 ]--- >> > >> > >> > >> >> > So, now that I have it fixed. I have no idea how to submit a patch for > what just happened. > > -Mark --- a/linux/drivers/media/video/cx23885/cx23885-417.c 2009-01-01 14:27:15.0000 00000 -0600 +++ b/linux/drivers/media/video/cx23885/cx23885-417.c 2009-01-01 14:27:39.0000 00000 -0600 @@ -1593,7 +1593,8 @@ lock_kernel(); list_for_each(list, &cx23885_devlist) { h = list_entry(list, struct cx23885_dev, devlist); - if (h->v4l_device->minor == minor) { + if (h->v4l_device && + h->v4l_device->minor == minor) { dev = h; break; } [-- Attachment #1.2: Type: text/html, Size: 7217 bytes --] [-- Attachment #2: Type: text/plain, Size: 150 bytes --] _______________________________________________ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] Problems with kernel oops when installing HVR-1800. 2009-01-01 23:01 ` Mark Jenks @ 2009-01-02 3:14 ` Andy Walls 2009-01-02 5:02 ` [linux-dvb] [Bulk] " CityK 0 siblings, 1 reply; 14+ messages in thread From: Andy Walls @ 2009-01-02 3:14 UTC (permalink / raw) To: Mark Jenks; +Cc: linux-dvb On Thu, 2009-01-01 at 17:01 -0600, Mark Jenks wrote: > So, now that I have it fixed. I have no idea how to submit > a patch for what just happened. > > -Mark Start here: http://linuxtv.org/wiki/index.php/Development:_How_to_submit_patches (CityK, please provide course correction if I'm wrong) Once you've got the whole patch ready to go (tested as well), submit it to the linux-dvb & video4linux ML's and Cc: the cx23885 maintainer (stoth@linuxtv.org I suspect). I can add my Signed-off-by for the small part I provided, once you post the full patch. Regards, Andy _______________________________________________ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [linux-dvb] [Bulk] Re: Problems with kernel oops when installing HVR-1800. 2009-01-02 3:14 ` Andy Walls @ 2009-01-02 5:02 ` CityK 0 siblings, 0 replies; 14+ messages in thread From: CityK @ 2009-01-02 5:02 UTC (permalink / raw) To: Andy Walls; +Cc: linux-dvb Andy Walls wrote: > On Thu, 2009-01-01 at 17:01 -0600, Mark Jenks wrote: > > > >> So, now that I have it fixed. I have no idea how to submit >> a patch for what just happened. >> >> -Mark >> > > Start here: > > http://linuxtv.org/wiki/index.php/Development:_How_to_submit_patches > > (CityK, please provide course correction if I'm wrong) > > Once you've got the whole patch ready to go (tested as well), submit it > to the linux-dvb & video4linux ML's and Cc: the cx23885 maintainer > (stoth@linuxtv.org I suspect). > > I can add my Signed-off-by for the small part I provided, once you post > the full patch. Looks good to me ... the only thing I'd note is that, per Mauro's most recent message (see: http://marc.info/?l=linux-video&m=123086606906411&w=2), this might be just the ideal thing for linux-media@vger.kernel.org ! _______________________________________________ linux-dvb mailing list linux-dvb@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2009-01-02 5:03 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-12-27 16:40 [linux-dvb] Problems with kernel oops when installing HVR-1800 Mark Jenks 2008-12-28 16:20 ` Mark Jenks 2008-12-28 21:36 ` Andy Walls 2008-12-28 22:51 ` Mark Jenks 2008-12-28 23:45 ` CityK 2008-12-29 1:01 ` Mark Jenks 2008-12-29 2:59 ` CityK 2009-01-01 18:34 ` Mark Jenks 2009-01-01 20:57 ` Mark Jenks 2009-01-01 21:18 ` Andy Walls 2009-01-01 22:53 ` Mark Jenks 2009-01-01 23:01 ` Mark Jenks 2009-01-02 3:14 ` Andy Walls 2009-01-02 5:02 ` [linux-dvb] [Bulk] " CityK
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox