* [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