On Dec 20, 2010, at 4:41 PM, Jarod Wilson wrote:
> On Nov 26, 2010, at 1:08 AM, VDR User wrote:
>
>> Debian testing, gcc 4.4.5-8, lirc git nov.25 2010. This is from dmesg:
>>
>> lirc_dev: IR Remote Control driver registered, major 254
>> BUG: using smp_processor_id() in preemptible [00000000] code: modprobe/1226
>> caller is init_timing_params+0x26/0xdc [lirc_serial]
>> Pid: 1226, comm: modprobe Tainted: P 2.6.36.1.amd64-x2.112510.1 #1
>> Call Trace:
>> [<c116b795>] ? debug_smp_processor_id+0xa1/0xb4
>> [<f8325371>] ? init_timing_params+0x26/0xdc [lirc_serial]
>> [<f83290f9>] ? lirc_serial_init_module+0xf9/0x2d1 [lirc_serial]
>> [<f8329000>] ? lirc_serial_init_module+0x0/0x2d1 [lirc_serial]
>> [<c1001151>] ? do_one_initcall+0x68/0x106
>> [<c10460d1>] ? sys_init_module+0x77/0x196
>> [<c1002610>] ? sysenter_do_call+0x12/0x26
>> lirc_serial: auto-detected active low receiver
>> lirc_serial lirc_serial.0: lirc_dev: driver lirc_serial registered at minor = 0
>> lirc_serial $Revision: 5.108 $ registered
>>
>> Then after I load VDR and press a button:
>>
>> divide error: 0000 [#1] PREEMPT SMP
>> last sysfs file: /sys/devices/virtual/vtconsole/vtcon0/uevent
>> Modules linked in: lirc_serial lirc_dev
>>
>> Pid: 1230, comm: lircd Tainted: P
>> 2.6.36.1.amd64-x2.112510.1 #1 MS-7309/MS-7309
>> EIP: 0060:[<f8317b6c>] EFLAGS: 00010246 CPU: 1
>> EIP is at lirc_dev_fop_read+0xb6/0x276 [lirc_dev]
>> EAX: 00000004 EBX: f663d500 ECX: c138a448 EDX: 00000000
>> ESI: bfcaa8bc EDI: fffffff4 EBP: f6a311b0 ESP: f68e1f34
>> DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
>> Process lircd (pid: 1230, ti=f68e0000 task=f6a311b0 task.ti=f68e0000)
>> Stack:
>> f6a6cc7c 00000010 f663d570 00000004 f68d1940 f73e3b74 bfcaa8bc 00000000
>> <0> f6a311b0 c1021477 00000000 00000000 00000000 f68d1940 bfcaa8bc f8317ab6
>> <0> f68e1f9c c1072cb6 f68e1f9c c1017899 f68d1940 fffffff7 bfcaa948 f68e0000
>> Call Trace:
>> [<c1021477>] ? default_wake_function+0x0/0x8
>> [<f8317ab6>] ? lirc_dev_fop_read+0x0/0x276 [lirc_dev]
>> [<c1072cb6>] ? vfs_read+0x70/0x9f
>> [<c1017899>] ? do_page_fault+0x1eb/0x24e
>> [<c1072d78>] ? sys_read+0x3c/0x60
>> [<c1002610>] ? sysenter_do_call+0x12/0x26
>> Code: d7 92 f7 c8 85 c0 74 0b 31 f6 66 bf 00 fe e9 bf 01 00 00 83 7b
>> 68 00 75 0c 31 f6 bf ed ff ff ff e9 a4 01 00 00 31 d2 8b 44 24 0c <f7>
>> b3 88 00 00 00 85 d2 74 0c 31 f6 bf ea ff ff ff e9 88 01 00
>> EIP: [<f8317b6c>] lirc_dev_fop_read+0xb6/0x276 [lirc_dev] SS:ESP 0068:f68e1f34
>> ---[ end trace 0644bbe5a97a4206 ]---
>>
>> Anyone have a patch or know how to fix this?
>
> Not yet, but I've finally had a moment to look into it. I've reproduced
> the divide error problem here, now attempting to isolate the cause.
The in-kernel lirc_serial works just fine, so my solution here was to
basically resync the git tree lirc_serial with what's in the upstream
kernel, with the addition of older kernel support ifdeffery crud.
(committed and pushed as of a moment ago).
--
Jarod Wilson
jarod@...
|