From: Sven Barth <pascaldragon@googlemail.com>
To: LMML <linux-media@vger.kernel.org>
Subject: cx25840: probe crashes for cx25837 chip on 2.6.37
Date: Sat, 05 Feb 2011 16:45:12 +0100 [thread overview]
Message-ID: <4D4D7088.5080903@googlemail.com> (raw)
Hello together!
I was eager to test my patch for cx25840 that was included in 2.6.37, so
I've updated my system and plugged in my Grabster AV400. But this
resulted in a "kernel bug" printed to dmesg:
==== dmesg begin ====
usb 1-5: new high speed USB device using ehci_hcd and address 6
Linux video capture interface: v2.00
pvrusb2: Hardware description: Terratec Grabster AV400
pvrusb2: **********
pvrusb2: WARNING: Support for this device (Terratec Grabster AV400) is
experimental.
pvrusb2: Important functionality might not be entirely working.
pvrusb2: Please consider contacting the driver author to help with
further stabilization of the driver.
pvrusb2: **********
usb 1-5: USB disconnect, address 6
usbcore: registered new interface driver pvrusb2
pvrusb2: 20110116 (from www.isely.net):Hauppauge WinTV-PVR-USB2 MPEG2
Encoder/Tuner
pvrusb2: Debug mask is 31 (0x1f)
pvrusb2: Failed to submit write-control URB status=-19
pvrusb2: Device being rendered inoperable
pvrusb2: ***WARNING*** pvrusb2 device hardware appears to be jammed and
I can't clear it.
pvrusb2: You might need to power cycle the pvrusb2 device in order to
recover.
usb 1-5: new high speed USB device using ehci_hcd and address 7
pvrusb2: Hardware description: Terratec Grabster AV400
pvrusb2: **********
pvrusb2: WARNING: Support for this device (Terratec Grabster AV400) is
experimental.
pvrusb2: Important functionality might not be entirely working.
pvrusb2: Please consider contacting the driver author to help with
further stabilization of the driver.
pvrusb2: **********
cx25840 6-0044: cx25837-3 found @ 0x88 (pvrusb2_a)
------------[ cut here ]------------
kernel BUG at drivers/media/video/v4l2-ctrls.c:1143!
invalid opcode: 0000 [#1] PREEMPT SMP
last sysfs file:
/sys/devices/pci0000:00/0000:00:02.2/usb1/1-5/i2c-6/6-0044/uevent
CPU 1
Modules linked in: cx25840 pvrusb2 dvb_core cx2341x v4l2_common videodev
v4l1_compat v4l2_compat_ioctl32 tveeprom ipv6 xfs exportfs ext2 radeon
snd_emu10k1 snd_intel8x0 ohci_hcd snd_rawmidi snd_ac97_codec ttm
drm_kms_helper ac97_bus snd_seq_dummy skge ehci_hcd snd_seq_oss
snd_seq_midi_event snd_seq snd_util_mem snd_seq_device snd_pcm_oss
snd_hwdep snd_mixer_oss snd_pcm snd_timer emu10k1_gp drm i2c_algo_bit
shpchp snd i2c_nforce2 soundcore usbcore processor pci_hotplug i2c_core
parport_pc snd_page_alloc floppy serio_raw button psmouse ns558
edac_core ppdev k8temp edac_mce_amd evdev sg analog lp gameport pcspkr
parport ext4 mbcache jbd2 crc16 sd_mod sr_mod cdrom sata_nv pata_acpi
sata_sil24 pata_amd libata scsi_mod raid1 md_mod
Pid: 2184, comm: pvrusb2-context Not tainted 2.6.37-ARCH #1 nForce/
RIP: 0010:[<ffffffffa020b352>] [<ffffffffa020b352>]
v4l2_ctrl_cluster+0x32/0x40 [videodev]
RSP: 0018:ffff880033c61a30 EFLAGS: 00010246
RAX: 0000000000000001 RBX: ffff880038065800 RCX: 0000000000000001
RDX: 0000000000000000 RSI: ffff880039de1ee0 RDI: 0000000000000002
RBP: ffff880033c61a30 R08: 2222222222222222 R09: 2222222222222222
R10: 0000000000000000 R11: 0000000000000000 R12: ffff880039de1e78
R13: 0000000000008373 R14: ffff880039de1e00 R15: 00000000000000ed
FS: 00007f05b98a8700(0000) GS:ffff88003fd00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 00007fff6c8c5fe0 CR3: 000000003c89b000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process pvrusb2-context (pid: 2184, threadinfo ffff880033c60000, task
ffff88003f8ada30)
Stack:
ffff880033c61aa0 ffffffffa0310b99 ffff880000000000 ffff88003c99e3fc
ffff880033c61ab0 ffffffff00000000 0000000000000200 ffff880039de1e08
ffff880033c61ac0 ffff880038065828 ffffffffa0318590 ffffffffa0318540
Call Trace:
[<ffffffffa0310b99>] cx25840_probe+0x479/0x840 [cx25840]
[<ffffffffa0308694>] i2c_device_probe+0x94/0xd0 [i2c_core]
[<ffffffff812b0f0a>] ? driver_sysfs_add+0x7a/0xb0
[<ffffffff812b11e6>] driver_probe_device+0x96/0x1c0
[<ffffffff812b13b0>] ? __device_attach+0x0/0x60
[<ffffffff812b13fb>] __device_attach+0x4b/0x60
[<ffffffff812afdd4>] bus_for_each_drv+0x64/0x90
[<ffffffff812b107f>] device_attach+0x8f/0xb0
[<ffffffff812b0805>] bus_probe_device+0x25/0x40
[<ffffffff812ae574>] device_add+0x4e4/0x5c0
[<ffffffff812ba941>] ? pm_runtime_init+0xd1/0xe0
[<ffffffff812ae669>] device_register+0x19/0x20
[<ffffffffa03091d5>] i2c_new_device+0x145/0x250 [i2c_core]
[<ffffffffa00b77b6>] v4l2_i2c_new_subdev_board+0x96/0x240 [v4l2_common]
[<ffffffffa00b79e3>] v4l2_i2c_new_subdev_cfg+0x83/0xb0 [v4l2_common]
[<ffffffffa0363760>] ? pvr2_context_notify+0x0/0x10 [pvrusb2]
[<ffffffffa0363760>] ? pvr2_context_notify+0x0/0x10 [pvrusb2]
[<ffffffffa035b606>] pvr2_hdw_initialize+0x346/0x1060 [pvrusb2]
[<ffffffffa036394b>] pvr2_context_thread_func+0x9b/0x320 [pvrusb2]
[<ffffffffa03638b0>] ? pvr2_context_thread_func+0x0/0x320 [pvrusb2]
[<ffffffff81077db0>] ? autoremove_wake_function+0x0/0x40
[<ffffffff813a6dc2>] ? _raw_spin_unlock_irqrestore+0x32/0x40
[<ffffffffa03638b0>] ? pvr2_context_thread_func+0x0/0x320 [pvrusb2]
[<ffffffff81077826>] kthread+0x96/0xa0
[<ffffffff8100cd24>] kernel_thread_helper+0x4/0x10
[<ffffffff81077790>] ? kthread+0x0/0xa0
[<ffffffff8100cd20>] ? kernel_thread_helper+0x0/0x10
Code: e5 74 28 31 c0 85 ff 74 20 48 63 d0 48 8d 14 d6 48 8b 0a 48 85 c9
74 0a 48 89 71 18 48 8b 12 89 7a 20 83 c0 01 39 f8 72 e0 c9 c3 <0f> 0b
66 66 66 2e 0f 1f 84 00 00 00 00 00 55 48 c7 c2 e0 ff 20
RIP [<ffffffffa020b352>] v4l2_ctrl_cluster+0x32/0x40 [videodev]
RSP <ffff880033c61a30>
---[ end trace f2fe4d11aa83a3aa ]---
==== dmesg end ====
I have pinpointed the problem to the following part of cx25840_probe in
cx25840-core.c:
==== source begin =====
sd->ctrl_handler = &state->hdl;
if (state->hdl.error) {
int err = state->hdl.error;
v4l2_ctrl_handler_free(&state->hdl);
kfree(state);
return err;
}
v4l2_ctrl_cluster(2, &state->volume); // <= here the crash occurs
v4l2_ctrl_handler_setup(&state->hdl);
==== source end ====
I have added a "if (!is_cx2583x(state))" check before the marked line
and now the probing (and my device) works. If this is the correct
solution for this problem I'll prepare a mail containing a patch. If not
feel free to propose a better solution.
Note: This is a regression as the module used to work in 2.6.35 together
with the AV400 (I haven't tested 2.6.36 though).
Regards,
Sven
PS: Is there a way to get the source file and line of a dmesg "kernel
bug" report?
next reply other threads:[~2011-02-05 15:45 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-05 15:45 Sven Barth [this message]
2011-02-05 21:25 ` cx25840: probe crashes for cx25837 chip on 2.6.37 Andy Walls
2011-02-05 21:30 ` Sven Barth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D4D7088.5080903@googlemail.com \
--to=pascaldragon@googlemail.com \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.