OHCI: NULL or LIST_POISON dereference on ueagle-atm disconnection

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, I think I have a bug in the OHCI driver.

Kernel version: 4.4.11 (some old 3.14 seems fine, didn't try others)

Hardware: AMD SB850, Eagle III USB ADSL modem

Steps to reproduce:

1. boot with a USB keyboard
2. connect the modem
3. wait for the firmware, re-enumeration, etc
4. disconnect the modem when ueagle-atm says 'waiting for
   synchronization' - instant panic

or

1. disconnect the keyboard
2. connect the modem
3. connect the keyboard on 'waiting for synchronization'
4. disconnect the modem - nothing yet
5. disconnect the keyboard - boom

Nothing bad happens without the keyboard. Nothing bad happens on
another machine with PS/2 keyboard and USB mouse, until I start X.
Then it crashes too.

I'm including two logs. One shows NULL dereference which can be
produced with the above steps, the other shows LIST_POISON dereference
which I can't reproduce (came from random monkeying).

Offending code is from ohci-q.c, function finish_unlinks, line 1086:

  1082                  if (list_empty(&ed->td_list)) {
  1083                          *last = ed->ed_next;
  1084                          ed->ed_next = NULL;
  1085                          ed->state = ED_IDLE;
  1086                          list_del(&ed->in_use_list);
  1087                  } else if (ohci->rh_state == OHCI_RH_RUNNING) {
  1088                          *last = ed->ed_next;
  1089                          ed->ed_next = NULL;
  1090                          ed_schedule(ohci, ed);

list_del fails because in_use_list's ->next and ->prev are NULL or
LIST_POISON (see registers RAX, RDX).

Not sure what's so special about ueagle-atm, but other USB 1.0 devices
(keyboards, mice, audio) work fine.

Log 1:

[   58.787543] usb 5-5: new full-speed USB device number 3 using ohci-pci
[   59.006343] usb 5-5: New USB device found, idVendor=1110, idProduct=9032
[   59.086567] usb 5-5: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[   59.177810] NET: Registered protocol family 8
[   59.230009] NET: Registered protocol family 20
[   59.285627] usb 5-5: [ueagle-atm] ADSL device founded vid (0X1110) pid (0X9032) Rev (0X2000): Eagle III
[   59.520541] usb 5-5: reset full-speed USB device number 3 using ohci-pci
[   59.741335] usb 5-5: [ueagle-atm] pre-firmware device, uploading firmware
[   59.822563] usb 5-5: [ueagle-atm] loading firmware ueagle-atm/eagleIII.fw
[   59.903836] usbcore: registered new interface driver ueagle-atm
[   61.169321] usb 5-5: [ueagle-atm] firmware uploaded
[   61.191987] usb 5-5: USB disconnect, device number 3
[   63.551534] usb 5-5: new full-speed USB device number 4 using ohci-pci
[   63.776306] usb 5-5: New USB device found, idVendor=1110, idProduct=9031
[   63.856494] usb 5-5: New USB device strings: Mfr=0, Product=2, SerialNumber=3
[   63.941882] usb 5-5: Product: ADSL-USB Modem
[   63.992947] usb 5-5: SerialNumber: 00604C8D86AA
[   64.098336] usb 5-5: [ueagle-atm] ADSL device founded vid (0X1110) pid (0X9031) Rev (0X200B): Eagle III
[   64.333538] usb 5-5: reset full-speed USB device number 4 using ohci-pci
[   64.612298] usb 5-5: [ueagle-atm] using iso mode
[   64.668301] ATM dev 0: usbatm_submit_urb: urb 0xffff8807f1568b00 submission failed (-28)!
[   64.766206] usb 5-5: [ueagle-atm] (re)booting started
[   66.518285] usb 5-5: [ueagle-atm] ATU-R firmware version : 44e2ea17
[   66.593362] usb 5-5: Direct firmware load for ueagle-atm/CMVep.bin.v2 failed with error -2
[   66.692352] usb 5-5: [Ueagle-atm] requesting firmware ueagle-atm/CMVep.bin.v2 failed, try to get older cmvs
[   66.809162] usb 5-5: [Ueagle-atm] use deprecated cmvs version, please update your firmware
[   66.948277] usb 5-5: [ueagle-atm] modem started, waiting synchronization...
[   81.713955] usb 5-5: USB disconnect, device number 4
[   81.717161] usb 5-5: [UEAGLE-ATM] uea_intr() failed with -62
[   81.841145] ATM dev 0: usbatm_complete: urb 0xffff8807f1568b00 failed (-2)!
[   81.925151] ATM dev 0: usbatm_complete: urb 0xffff8807f1568000 failed (-2)!
[   82.009150] ATM dev 0: usbatm_complete: urb 0xffff8807f1568500 failed (-2)!
[   82.092484] usb 5-5: [UEAGLE-ATM] usb_control_msg error -19
[   82.159210] usb 5-5: [UEAGLE-ATM] reading cmv failed with error -19
[   82.160190] ATM dev 0: usbatm_complete: urb 0xffff8807f1568900 failed (-2)!
[   82.160197] BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
[   82.160202] IP: [<ffffffff816c8c07>] ohci_work.part.6+0x2a7/0x5a0
[   82.160202] PGD 0 
[   82.160204] Oops: 0002 [#1] PREEMPT SMP 
[   82.160207] Modules linked in: ueagle_atm usbatm atm 8021q ext2 atkbd snd_pcsp serio_raw asus_atk0110
[   82.160209] CPU: 4 PID: 0 Comm: swapper/4 Not tainted 4.4.11+ #44
[   82.160210] Hardware name: System manufacturer System Product Name/M4A88TD-M EVO, BIOS 1801    08/09/2012
[   82.160210] task: ffff8807fc2e0a00 ti: ffff8807fc2f0000 task.ti: ffff8807fc2f0000
[   82.160212] RIP: 0010:[<ffffffff816c8c07>]  [<ffffffff816c8c07>] ohci_work.part.6+0x2a7/0x5a0
[   82.160213] RSP: 0018:ffff88081fd03e18  EFLAGS: 00010046
[   82.160214] RAX: 0000000000000000 RBX: ffff8800df8411f0 RCX: ffffffff81edd6f8
[   82.160214] RDX: 0000000000000000 RSI: ffff8800df8411f0 RDI: ffff8807faa29a40
[   82.160215] RBP: ffff88081fd03e78 R08: 0000000000000000 R09: 000000000000003f
[   82.160215] R10: 0000000000000001 R11: 0000000000080000 R12: ffff8807f1568900
[   82.160216] R13: ffff8800df8411f0 R14: ffff8800df8411c0 R15: ffff8800df8411c8
[   82.160216] FS:  00007f65a9174940(0000) GS:ffff88081fd00000(0000) knlGS:0000000000000000
[   82.160217] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[   82.160218] CR2: 0000000000000008 CR3: 0000000001e0a000 CR4: 00000000000006e0
[   82.160218] Stack:
[   82.160219]  ffff8807faa29a60 ffff8800df8411c8 d71bffff810e3600 ffff8807faa29a40
[   82.160220]  ffff8807faa29a60 0000000100000001 ffff8800df8411c0 ffff8807faa29800
[   82.160221]  0000000000000004 ffffc90000076000 ffff8807faa29a40 0000000000000000
[   82.160221] Call Trace:
[   82.160224]  <IRQ> 
[   82.160224]  [<ffffffff816cc6ad>] ohci_irq+0x1ed/0x270
[   82.160226]  [<ffffffff816a6bd5>] usb_hcd_irq+0x25/0x40
[   82.160228]  [<ffffffff810d243c>] handle_irq_event_percpu+0x4c/0x1f0
[   82.160230]  [<ffffffff810d2620>] handle_irq_event+0x40/0x70
[   82.160232]  [<ffffffff810d57e8>] handle_fasteoi_irq+0x98/0x150
[   82.160233]  [<ffffffff8104eeca>] handle_irq+0x1a/0x30
[   82.160235]  [<ffffffff818ade1a>] do_IRQ+0x5a/0xf0
[   82.160236]  [<ffffffff818ac43c>] common_interrupt+0x7c/0x7c
[   82.160239]  <EOI> 
[   82.160239]  [<ffffffff8172ecda>] ? cpuidle_enter_state+0x11a/0x2b0
[   82.160240]  [<ffffffff8172eea7>] cpuidle_enter+0x17/0x20
[   82.160242]  [<ffffffff810c1da2>] call_cpuidle+0x32/0x60
[   82.160242]  [<ffffffff8172ee83>] ? cpuidle_select+0x13/0x20
[   82.160244]  [<ffffffff810c2046>] cpu_startup_entry+0x276/0x360
[   82.160245]  [<ffffffff8106c9e3>] start_secondary+0xf3/0x100
[   82.160255] Code: 39 de 0f 85 2d ff ff ff 49 89 c6 49 8b 46 20 48 8b 55 c0 48 89 02 49 8b 46 48 49 8b 56 40 49 c7 46 20 00 00 00 00 41 c6 46 50 00 <48> 89 42 08 48 89 10 48 b8 00 01 00 00 00 00 ad de 49 89 46 40 
[   82.160257] RIP  [<ffffffff816c8c07>] ohci_work.part.6+0x2a7/0x5a0
[   82.160257]  RSP <ffff88081fd03e18>
[   82.160257] CR2: 0000000000000008
[   82.170281] ---[ end trace 3535fcd0a1cd21cc ]---
[   82.170282] Kernel panic - not syncing: Fatal exception in interrupt
[   82.234180] Kernel Offset: disabled
[   85.642960] ---[ end Kernel panic - not syncing: Fatal exception in interrupt

Log 2:

[  143.404546] usb 5-5: [ueagle-atm] modem started, waiting synchronization...
[  171.401500] usb 5-5: USB disconnect, device number 6
[  171.404305] usbatm_submit_urb: 1 callbacks suppressed
[  171.404307] ATM dev 0: usbatm_submit_urb: urb 0xffff8807fa037600 submission failed (-19)!
[  171.405294] usb 5-5: [UEAGLE-ATM] uea_intr() failed with -62
[  171.407303] ATM dev 0: usbatm_submit_urb: urb 0xffff8807fa037600 submission failed (-19)!
[  171.410303] ATM dev 0: usbatm_submit_urb: urb 0xffff8807fa037600 submission failed (-19)!
[  171.413342] ATM dev 0: usbatm_submit_urb: urb 0xffff8807fa037600 submission failed (-19)!
[  171.517262] usb 5-5: [UEAGLE-ATM] usb_control_msg error -19
[  171.517263] usb 5-5: [UEAGLE-ATM] reading cmv failed with error -19
[  171.521387] ATM dev 0: usbatm_submit_urb: urb 0xffff8807fa037600 submission failed (-19)!
[  171.686955] ATM dev 0: usbatm_submit_urb: urb 0xffff8807fa037600 submission failed (-19)!
[  171.882699] ATM dev 0: usbatm_submit_urb: urb 0xffff8807fa037600 submission failed (-19)!
[  172.122229] ATM dev 0: usbatm_submit_urb: urb 0xffff8807fa037600 submission failed (-19)!
[  172.415834] ATM dev 0: usbatm_submit_urb: urb 0xffff8807fa037600 submission failed (-19)!
[  172.516829] usb 5-5: [ueagle-atm] (re)booting started
[  172.516831] usb 5-5: [UEAGLE-ATM] usb_control_msg error -19
[  172.516832] usb 5-5: [UEAGLE-ATM] usb_control_msg error -19
[  172.516833] usb 5-5: [UEAGLE-ATM] usb_control_msg error -19
[  172.616778] usb 5-5: [UEAGLE-ATM] usb_control_msg error -19
[  172.616780] usb 5-5: [UEAGLE-ATM] usb_control_msg error -19
[  172.616781] usb 5-5: [UEAGLE-ATM] usb_control_msg error -19
[  172.616781] usb 5-5: [UEAGLE-ATM] usb_control_msg error -19
[  172.672003] ATM dev 0: usbatm_submit_urb: urb 0xffff8807fa037600 submission failed (-19)!
[  173.236610] usb 5-5: [UEAGLE-ATM] usb_control_msg error -19
[  173.303374] usb 5-5: [ueagle-atm] ADSL device removed
[  215.107044] general protection fault: 0000 [#1] PREEMPT SMP 
[  215.175100] Modules linked in: ueagle_atm usbatm atm 8021q ext2 atkbd snd_pcsp serio_raw asus_atk0110
[  215.286491] CPU: 5 PID: 0 Comm: swapper/5 Not tainted 4.4.11+ #44
[  215.359399] Hardware name: System manufacturer System Product Name/M4A88TD-M EVO, BIOS 1801    08/09/2012
[  215.473910] task: ffff8807fc2e1400 ti: ffff8807fc2f4000 task.ti: ffff8807fc2f4000
[  215.563460] RIP: 0010:[<ffffffff816c8c07>]  [<ffffffff816c8c07>] ohci_work.part.6+0x2a7/0x5a0
[  215.665594] RSP: 0018:ffff88081fd43e18  EFLAGS: 00010046
[  215.729142] RAX: dead000000000200 RBX: ffff8800df82d0a0 RCX: ffffffff81edd6f8
[  215.814532] RDX: dead000000000100 RSI: ffff8800df82d0a0 RDI: ffff8807faa1c240
[  215.899921] RBP: ffff88081fd43e78 R08: 0000000000000000 R09: 0000000000000010
[  215.985310] R10: ffff8807fa0cd800 R11: 0000000000000004 R12: ffff8807fabd16c0
[  216.070700] R13: ffff8800df82d0a0 R14: ffff8800df82d070 R15: ffff8800df82d078
[  216.156090] FS:  00007facce5e1700(0000) GS:ffff88081fd40000(0000) knlGS:0000000000000000
[  216.252918] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[  216.321668] CR2: 00007fba4be16b40 CR3: 00000007f7a29000 CR4: 00000000000006e0
[  216.407055] Stack:
[  216.431082]  ffff8807faa1c260 ffff8800df82d078 3d5b88081fd43e50 ffff8807faa1c240
[  216.520007]  ffff8807faa1c260 0000000100000001 ffff8800df82d070 ffff8807faa1c000
[  216.608933]  0000000000000004 ffffc90000064000 ffff8807faa1c240 0000000000000000
[  216.697859] Call Trace:
[  216.727086]  <IRQ> 
[  216.750072]  [<ffffffff816cc6ad>] ohci_irq+0x1ed/0x270
[  216.813725]  [<ffffffff816a6bd5>] usb_hcd_irq+0x25/0x40
[  216.813728]  [<ffffffff810d243c>] handle_irq_event_percpu+0x4c/0x1f0
[  216.813729]  [<ffffffff810d2620>] handle_irq_event+0x40/0x70
[  216.813731]  [<ffffffff810d57e8>] handle_fasteoi_irq+0x98/0x150
[  216.813734]  [<ffffffff8104eeca>] handle_irq+0x1a/0x30
[  216.813736]  [<ffffffff818ade1a>] do_IRQ+0x5a/0xf0
[  216.813738]  [<ffffffff818ac43c>] common_interrupt+0x7c/0x7c
[  216.813740]  <EOI> 
[  216.813740]  [<ffffffff8172ecda>] ? cpuidle_enter_state+0x11a/0x2b0
[  216.813741]  [<ffffffff8172eea7>] cpuidle_enter+0x17/0x20
[  216.813743]  [<ffffffff810c1da2>] call_cpuidle+0x32/0x60
[  216.813743]  [<ffffffff8172ee83>] ? cpuidle_select+0x13/0x20
[  216.813744]  [<ffffffff810c2046>] cpu_startup_entry+0x276/0x360
[  216.813746]  [<ffffffff8106c9e3>] start_secondary+0xf3/0x100
[  216.813756] Code: 39 de 0f 85 2d ff ff ff 49 89 c6 49 8b 46 20 48 8b 55 c0 48 89 02 49 8b 46 48 49 8b 56 40 49 c7 46 20 00 00 00 00 41 c6 46 50 00 <48> 89 42 08 48 89 10 48 b8 00 01 00 00 00 00 ad de 49 89 46 40 
[  216.813758] RIP  [<ffffffff816c8c07>] ohci_work.part.6+0x2a7/0x5a0
[  216.813758]  RSP <ffff88081fd43e18>
[  216.823769] ---[ end trace 97aa62091fdf89db ]---
[  216.823770] Kernel panic - not syncing: Fatal exception in interrupt
[  216.876231] Kernel Offset: disabled
[  218.226129] ---[ end Kernel panic - not syncing: Fatal exception in interrupt
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux