Arch Linux

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#23195 - [kernel26] ir-keytable busted for imon device 15c2:ffdc

Attached to Project: Arch Linux
Opened by ben123 (ben123) - Tuesday, 08 March 2011, 23:50 GMT
Last edited by Tobias Powalowski (tpowa) - Wednesday, 15 February 2012, 08:12 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Tobias Powalowski (tpowa)
Thomas Bächler (brain0)
Architecture x86_64
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 3
Private No

Details

Description:

After upgrading v4l-utils from 0.8.1-1 to 0.8.3-1, I started seeing the following error when loading the imon module (kernel/drivers/media/IR/imon.ko.gz)

"Pid: 5436, comm: ir-keytable Tainted: G C 2.6.37-ARCH #1"

Here's the device:

"Bus 004 Device 003: ID 15c2:ffdc SoundGraph Inc. iMON PAD Remote Controller"

The remote still works, but the LCD is now broken. The rc.d script from lcdproc package now hangs infinitely as it repeated tries to connect to the lcd and times out every 120s. Please see the attached error logs.

Downgrading back to 0.8.1-1 sees the IR keymap getting correctly registered.

"Registered IR keymap rc-imon-pad"

Could we:

1. Notified upstream
2. Downgrade arch back to 0.8.1

Additional info:
* package version(s) v4l-utils-0.8.3-1
* config and/or log files etc.


Steps to reproduce:
1. upgrade v4l-utils-0.8.3-1
2. reboot and watch system hang (luckily 1 in 5 reboots gets to prompt, so I was able to disable lcdd)
This task depends upon

Closed by  Tobias Powalowski (tpowa)
Wednesday, 15 February 2012, 08:12 GMT
Reason for closing:  Upstream
Comment by John (gee) - Wednesday, 09 March 2011, 05:14 GMT
Thanks for filling this bug report, I kept looking around but only wasted time till I found this.
Exactly same behavior here, and downgrading v4l-utils solves the problem!
Comment by ben123 (ben123) - Wednesday, 09 March 2011, 21:06 GMT Comment by Paolo (palmaway) - Friday, 11 March 2011, 00:14 GMT
I can confirm the behavior. Quite an annoying problem, since it hangs my HTPC at boot time, if lcdd is on the daemons list in /etc/rc.conf.
Comment by John (gee) - Friday, 11 March 2011, 01:26 GMT
Thanks Ben!
Paolo, you could prefix it with a "@", that's what I do since nothing depends on it anyway...
Comment by Paolo (palmaway) - Monday, 14 March 2011, 03:42 GMT
Thanks, John, but I had to fully disable it for the moment (with "!"), since it crashes XBMC on my HTPC.
Any news on the upsteam bug report (I can't see it since I don't have an account on freshmeat)?
Comment by ben123 (ben123) - Monday, 14 March 2011, 14:47 GMT
I'd incorrectly filed a ticket at freshmeat, which was only used to track website issues, as was pointed out by the maintainer. I've now sent email to people whose names appeared on the last several git commits.
Comment by Thomas Bächler (brain0) - Monday, 14 March 2011, 14:57 GMT
Regardless of the connection with the v4l-utils upgrade, this is a kernel bug and has to be fixed in the kernel.
Comment by ben123 (ben123) - Monday, 14 March 2011, 17:21 GMT
quoting the response from the developer:


from Jarod Wilson <???@redhat.com>
subject Re: v4l-utils 0.8.3

There's a bit of an egregious bug in the imon driver in 2.6.37,
specifically with the ffdc devices, which probably warrants a -stable
patch...

This should be fully fixed in 2.6.38 by these two patches:

7d2edfc23e9852591cb031a26093cdcd07a34a90
9ad77eb57b45f81ac3e12077d19e5f121c4cff6d
Comment by John (gee) - Monday, 14 March 2011, 20:05 GMT
I tried rc7 of 2.6.38 last week and it was a no go, so I am not fully sure about these patches.

I believe my device is different than yours though, but I am not at home and don't have the version right now.
Comment by Paolo (palmaway) - Monday, 11 April 2011, 20:17 GMT
I'm running Linux 2.6.38-ARCH (x86_64) now, but the bug is still there. Any news? My device id for the iMon is 15c2:0038 (different version than the one bug report title).
Comment by Benjamin Hodgetts (Enverex) - Thursday, 21 April 2011, 16:13 GMT
ben123 (and co): I contacted Jarod, the GIT references you've listed there aren't related to this issue at all, quote:

"That's an entirely different trace in that bug, unrelated to the fixes I was referring to. Not sure what's going on there.".

Which will be why it isn't fixed yet. I'm experiencing the same problem so hopefully this gets resolved soon. Not sure who or where to report this to (going to check with v4l).
Comment by Stephen E. Baker (TheCycoONE) - Saturday, 23 April 2011, 17:20 GMT
Just wanted to add a me too.

Would this cause my remote not to work, or would that be unrelated? I know there were a lot of changes for 2.6.37+ / lirc 0.9+ - and very little information regarding my (imon) Antec Veris.
Comment by Benjamin Hodgetts (Enverex) - Saturday, 23 April 2011, 23:10 GMT
My remote still works, but I have a feeling it's showing up as a HID Keyboard/Mouse rather than LIRC device.
Comment by Benjamin Hodgetts (Enverex) - Thursday, 28 April 2011, 07:03 GMT
Jarod has come back and believes it is actually a bug now which is being looked in to:

==================================================
Nope, I was wrong, its a bug in the imon code. A Fedora kernel-debug
build and a bit more code inspection revealed what was wrong. Now I
just have to write up a patch to fix it, its kind of a gross little
corner case bug that's been there a while, but only recently started
to be triggered... Basically, when v4l-utils started installing a
udev rule that ran ir-keytable, which calls the imon driver's
change_protocol function, things started going sideways, because of
an assumption in the driver that the send_packet() function is always
called with ictx->lock already held, and that isn't the case with the
change_protocol function. So it first tries to drop the lock (that it
isn't holding), then tries to reacquire it, assuming the calling
function will then drop it. It never gets dropped. Along comes a
second process, like lcdproc, which tries to write to the display,
which also calls send_packet(), but does so after first grabbing the
lock -- which is already held. Thus the hung task warning. I'll try
to get something together tomorrow, this'll be 2.6.38.x stable tree
stuff here...

[ 15.014153] =====================================
[ 15.015048] [ BUG: bad unlock balance detected! ]
[ 15.015048] -------------------------------------
[ 15.015048] ir-keytable/773 is trying to release lock (&ictx->lock) at:
[ 15.015048] [<ffffffff814c6297>] mutex_unlock+0xe/0x10
[ 15.015048] but there are no more locks to release!
[ 15.015048]
[ 15.015048] other info that might help us debug this:
[ 15.015048] 2 locks held by ir-keytable/773:
[ 15.015048] #0: (&buffer->mutex){+.+.+.}, at: [<ffffffff8119d400>] sysfs_write_file+0x3c/0x144
[ 15.015048] #1: (s_active#87){.+.+.+}, at: [<ffffffff8119d4ab>] sysfs_write_file+0xe7/0x144
[ 15.015048]
[ 15.015048] stack backtrace:
[ 15.015048] Pid: 773, comm: ir-keytable Not tainted 2.6.38.4-20.fc15.x86_64.debug #1
[ 15.015048] Call Trace:
[ 15.015048] [<ffffffff81089715>] ? print_unlock_inbalance_bug+0xca/0xd5
[ 15.015048] [<ffffffff8108b35c>] ? lock_release_non_nested+0xc1/0x263
[ 15.015048] [<ffffffff814c6297>] ? mutex_unlock+0xe/0x10
[ 15.015048] [<ffffffff814c6297>] ? mutex_unlock+0xe/0x10
[ 15.015048] [<ffffffff8108b67b>] ? lock_release+0x17d/0x1a4
[ 15.015048] [<ffffffff814c6229>] ? __mutex_unlock_slowpath+0xc5/0x125
[ 15.015048] [<ffffffff814c6297>] ? mutex_unlock+0xe/0x10
[ 15.015048] [<ffffffffa02964b6>] ? send_packet+0x1c9/0x264 [imon]
[ 15.015048] [<ffffffff8108b376>] ? lock_release_non_nested+0xdb/0x263
[ 15.015048] [<ffffffffa0296731>] ? imon_ir_change_protocol+0x126/0x15e [imon]
[ 15.015048] [<ffffffffa024a334>] ? store_protocols+0x1c3/0x286 [rc_core]
[ 15.015048] [<ffffffff81326e4e>] ? dev_attr_store+0x20/0x22
[ 15.015048] [<ffffffff8119d4cc>] ? sysfs_write_file+0x108/0x144
[ 15.015048] [<ffffffff8113f001>] ? vfs_write+0xaf/0x102
[ 15.015048] [<ffffffff81140530>] ? fget_light+0x3a/0x83
[ 15.015048] [<ffffffff8113f214>] ? sys_write+0x4d/0x74
[ 15.015048] [<ffffffff8110e3b3>] ? handle_pte_fault+0x1dc/0x6e2
[ 15.015048] [<ffffffff8100abc2>] ? system_call_fastpath+0x16/0x1b
==================================================
Comment by John (gee) - Monday, 23 May 2011, 04:37 GMT
Bug seems fixed with latest kernel and latest v4l-utils.

Thanks!
Comment by ben123 (ben123) - Thursday, 26 May 2011, 22:45 GMT
It now works for me as well with kernel26 2.6.38.6-2. Thanks Ben for chasing the devs down and getting this resolved.
Comment by nicoalas (nicoalas) - Friday, 03 June 2011, 06:53 GMT
not fixed

I am using the following kernel :
2.38.7-1 kernel

udev 171

and v4l-utils is 0.8.3-2

here is bellow the log at boot :

[ 7.074196] Registered IR keymap rc-imon-pad
[ 7.074330] input: iMON Remote (15c2:0038) as /devices/pci0000:00/0000:00:1a.0/usb2/2-1/2-1.5/2-1.5:1.0/rc/rc0/input5
[ 7.074377] rc0: iMON Remote (15c2:0038) as /devices/pci0000:00/0000:00:1a.0/usb2/2-1/2-1.5/2-1.5:1.0/rc/rc0
[ 7.074553] imon:send_packet: packet tx failed (-32)
[ 7.080879] imon 2-1.5:1.0: imon usb_rx_callback_intf0: status(-71): ignored
[ 7.091296] IR JVC protocol handler initialized
[ 7.104851] imon 2-1.5:1.0: imon usb_rx_callback_intf0: status(-71): ignored
[ 7.128770] imon 2-1.5:1.0: imon usb_rx_callback_intf0: status(-71): ignored
[ 7.137673] imon 2-1.5:1.0: remote input dev register failed
[ 7.137677] imon 2-1.5:1.0: imon_init_intf0: rc device setup failed
[ 7.152799] imon 2-1.5:1.0: imon usb_rx_callback_intf0: status(-71): ignored
[ 7.176668] imon 2-1.5:1.0: imon usb_rx_callback_intf0: status(-71): ignored
[ 7.200589] imon 2-1.5:1.0: imon usb_rx_callback_intf0: status(-71): ignored
[ 7.217275] imon 2-1.5:1.0: unable to initialize intf0, err 0
[ 7.217279] imon:imon_probe: failed to initialize context!
[ 7.217283] imon 2-1.5:1.0: unable to register, err -19
[ 7.217328] BUG: unable to handle kernel NULL pointer dereference at 0000000000000024
[ 7.217474] IP: [<ffffffff813b29a3>] __mutex_lock_slowpath+0x63/0x320
[ 7.217566] PGD 10e543067 PUD 10d599067 PMD 0
[ 7.217713] Oops: 0002 [#1] PREEMPT SMP
[ 7.217860] last sysfs file: /sys/module/imon/initstate
[ 7.217916] CPU 0
[ 7.217951] Modules linked in: ir_jvc_decoder ir_rc6_decoder rc_imon_pad ir_rc5_decoder ir_nec_decoder imon(+) rc_core snd_hda_codec_realtek snd_seq_dummy snd_seq_oss snd_hda_intel(+) snd_hda_codec nvidia(P) snd_seq_midi_event snd_seq snd_seq_device firewire_ohci snd_hwdep snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd soundcore ehci_hcd psmouse xhci_hcd firewire_core evdev snd_page_alloc i2c_i801 processor pcspkr serio_raw crc_itu_t usbcore intel_agp button intel_gtt iTCO_wdt i2c_core asus_atk0110 sg iTCO_vendor_support r8169 mii ext4 mbcache jbd2 crc16 ahci libahci sr_mod cdrom sd_mod pata_marvell ata_piix pata_acpi libata scsi_mod
[ 7.220178]
[ 7.220226] Pid: 1009, comm: modprobe Tainted: P 2.6.38-ARCH #1 System manufacturer System Product Name/P7H55D-M EVO
[ 7.220462] RIP: 0010:[<ffffffff813b29a3>] [<ffffffff813b29a3>] __mutex_lock_slowpath+0x63/0x320
[ 7.220569] RSP: 0018:ffff88010c8c9c48 EFLAGS: 00010046
[ 7.220623] RAX: 0000000000000100 RBX: 0000000000000020 RCX: 0000000000000000
[ 7.220680] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000020
[ 7.220737] RBP: ffff88010c8c9ca8 R08: ffff8800dfc16148 R09: 2222222222222222
[ 7.220795] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000024
[ 7.220852] R13: 0000000000000246 R14: ffff88010e95e200 R15: 0000000000000001
[ 7.220910] FS: 00007f502719d700(0000) GS:ffff8800dfc00000(0000) knlGS:0000000000000000
[ 7.220983] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 7.221039] CR2: 0000000000000024 CR3: 000000010d75c000 CR4: 00000000000006f0
[ 7.221096] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 7.221154] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 7.221212] Process modprobe (pid: 1009, threadinfo ffff88010c8c8000, task ffff88010e95e200)
[ 7.221285] Stack:
[ 7.221333] ffff88010c8c9ca8 0000000000000286 2222222222222222 ffffffffa01e15e9
[ 7.221529] 00000000000000c0 000000d022222222 ffff88010c8c9c98 0000000000000020
[ 7.221726] ffff88010efa6800 ffff88010ebbcc00 ffff88010efa6800 0000000000000001
[ 7.221921] Call Trace:
[ 7.221977] [<ffffffffa01e15e9>] ? usb_alloc_urb+0x19/0x50 [usbcore]
[ 7.222034] [<ffffffff813b2c71>] mutex_lock+0x11/0x30
[ 7.222091] [<ffffffffa0206c9b>] imon_probe+0x8aa/0xd01 [imon]
[ 7.222149] [<ffffffffa01e5943>] usb_probe_interface+0xd3/0x1e0 [usbcore]
[ 7.222208] [<ffffffff812b9209>] driver_probe_device+0x79/0x1a0
[ 7.222264] [<ffffffff812b93cb>] __driver_attach+0x9b/0xa0
[ 7.222320] [<ffffffff812b9330>] ? __driver_attach+0x0/0xa0
[ 7.222375] [<ffffffff812b9330>] ? __driver_attach+0x0/0xa0
[ 7.222430] [<ffffffff812b8234>] bus_for_each_dev+0x54/0x90
[ 7.222486] [<ffffffff812b8ec9>] driver_attach+0x19/0x20
[ 7.222540] [<ffffffff812b8b30>] bus_add_driver+0x1a0/0x270
[ 7.222596] [<ffffffff812b95b1>] driver_register+0x71/0x140
[ 7.222653] [<ffffffff8107fa4d>] ? notifier_call_chain.isra.0+0x4d/0x70
[ 7.223611] [<ffffffffa01e4788>] usb_register_driver+0x98/0x190 [usbcore]
[ 7.223670] [<ffffffffa00d7000>] ? imon_init+0x0/0x40 [imon]
[ 7.223726] [<ffffffffa00d701e>] imon_init+0x1e/0x40 [imon]
[ 7.223783] [<ffffffff8100204b>] do_one_initcall+0x3b/0x180
[ 7.223840] [<ffffffff81095d0b>] sys_init_module+0xab/0x200
[ 7.223896] [<ffffffff8100ae12>] system_call_fastpath+0x16/0x1b
[ 7.223951] Code: 63 80 44 e0 ff ff a9 00 ff ff 07 0f 85 a7 02 00 00 9c 58 0f 1f 44 00 00 49 89 c5 fa 66 0f 1f 44 00 00 b8 00 01 00 00 4c 8d 63 04 <f0> 66 0f c1 43 04 38 e0 74 07 f3 90 8a 43 04 eb f5 44 8b 3d d5
[ 7.226090] RIP [<ffffffff813b29a3>] __mutex_lock_slowpath+0x63/0x320
[ 7.226178] RSP <ffff88010c8c9c48>
[ 7.226229] CR2: 0000000000000024
[ 7.226281] ---[ end trace 9d967353f121f9e8 ]---
[ 7.226334] note: modprobe[1009] exited with preempt_count 1
[ 7.355338] IR Sony protocol handler initialized
[ 7.369728] lirc_dev: IR Remote Control driver registered, major 251
[ 7.370794] IR LIRC bridge handler initialized

Comment by Thomas Bächler (brain0) - Friday, 03 June 2011, 08:06 GMT
This is a kernel bug, reassigning to kernel26.

Loading...