I have an APC UPS connected to my 2.4.26 linux box (using a hiddev device on an AMD756 OHCI controller).
Every night around 1am the kernel detects a BUG and the system freezes.


This particular bug is triggered in sohci_free_dev when it's called from an interrupt handler - comments state that it's likely caused by a refcount bug in the interface driver (hiddev.c / hid.c?).

sohci_free_dev shouldn't be called at all - the device is still connected and working. Manually pulling the USB plug also doesn't trigger the bug.

Might this be caused by a backup process that bzips a lot of data every day at 1:00am? I can think of nothing else that's happening exactly at that time (but I manually started the backup and the system still lives.. until tonight). Maybe something gets swapped out and triggers the bug? Or is it just bad locking somewhere in the HID code?

The UPS is the only USB device connected to the controller.
Communicating with the device works.


/proc/bus/usb/devices:

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 4
B:  Alloc=106/900 us (12%), #Int=  1, #Iso=  0
D:  Ver= 1.10 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 0.00
S:  Product=USB OHCI Root Hub
S:  SerialNumber=dc822000
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   2 Ivl=255ms

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  3 Spd=1.5 MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=051d ProdID=0002 Rev= 0.06
S:  Manufacturer=American Power Conversion
S:  Product=Back-UPS CS 500 FW:808.q3.I USB FW:q3
S:  SerialNumber=BB0415033775
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=hid
E:  Ad=81(I) Atr=03(Int.) MxPS=   6 Ivl=100ms


ksymoops output:


Kernel BUG at host/usb-ohci.c:966!
invalid operand: 0000
CPU: 0
EIP: 0010:[<c027a45f>] Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010286
eax: 0000003f ebx: c0118000 ecx: c0116058 edx: 00000001
esi: ffffffff edi: 00000002 ebp: c15ea610 esp: c0119ee8
ds: 0018 cs: 0018 ss: 0018
Process swapper (pid: 0, stackpage=c0119000)
Stack: c0332e00 dbfe2276 00000003 c15f6800 00000206 c86a6f40 d3e1d600 c02797ec
c15f6800 c86a6f40 02080000 02080000 c86a6f40 c027bcb5 c15f6800 c15ea610
c15ea610 dbb70600 c86a6f40 c15f6800 0000000a c026e2af dbb70600 c0118000
Call Trace: [<c02797ec>] [<c027bcb5>] [<c026e2af>] [<c027d288>] [<c016c6a5>]
[<c016c8d5>] [<c016c8d8>] [<c0169090>] [<c016f163>] [<c0169090>]
[<c01690b3>] [<c0169104>] [<c0167190>]
Code: 0f 0b c6 03 b1 3b 33 c0 e9 67 ff ff ff 89 7c 24 04 c7 04 24



>>EIP; c027a45f <sohci_free_dev+1df/230> <=====

>>ebx; c0118000 <init_task_union+0/2000>
>>ecx; c0116058 <runqueues+498/940>
>>ebp; c15ea610 <_end+12a5490/1c51bee0>
>>esp; c0119ee8 <init_task_union+1ee8/2000>

Trace; c02797ec <sohci_return_urb+5c/130>
Trace; c027bcb5 <dl_done_list+95/110>
Trace; c026e2af <usb_free_dev+2f/60>
Trace; c027d288 <ohci_complete+68/c0>
Trace; c016c6a5 <handle_IRQ_event+45/70>
Trace; c016c8d5 <do_IRQ+85/e0>
Trace; c016c8d8 <do_IRQ+88/e0>
Trace; c0169090 <default_idle+0/30>
Trace; c016f163 <call_do_IRQ+5/a>
Trace; c0169090 <default_idle+0/30>
Trace; c01690b3 <default_idle+23/30>
Trace; c0169104 <cpu_idle+24/30>
Trace; c0167190 <L6+0/2>



-------------------------------------------------------
This SF.Net email is sponsored by OSTG. Have you noticed the changes on
Linux.com, ITManagersJournal and NewsForge in the past few weeks? Now,
one more big change to announce. We are now OSTG- Open Source Technology
Group. Come see the changes on the new OSTG site. www.ostg.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to