EHCI hotplug kernel crash in kernel 3.14 and 3.13

From: Stefani Seibold
Date: Sun Apr 13 2014 - 14:52:47 EST


A hot plug of an USB 2.0 EHCI controller cardbus card will result in a
kernel crash. This is the kernel log of a vanilla 3.14 x86_64 kernel. I
will attach my kernel config.

[ 70.418181] pcmcia_socket pcmcia_socket0: pccard: CardBus card inserted into slot 0
[ 70.418209] pci 0000:04:00.0: [1033:0035] type 00 class 0x0c0310
[ 70.418239] pci 0000:04:00.0: reg 0x10: [mem 0x00000000-0x00000fff]
[ 70.418359] pci 0000:04:00.0: supports D1 D2
[ 70.418362] pci 0000:04:00.0: PME# supported from D0 D1 D2 D3hot
[ 70.418500] pci 0000:04:00.1: [1033:0035] type 00 class 0x0c0310
[ 70.418529] pci 0000:04:00.1: reg 0x10: [mem 0x00000000-0x00000fff]
[ 70.418653] pci 0000:04:00.1: supports D1 D2
[ 70.418655] pci 0000:04:00.1: PME# supported from D0 D1 D2 D3hot
[ 70.418756] pci 0000:04:00.2: [1033:00e0] type 00 class 0x0c0320
[ 70.418784] pci 0000:04:00.2: reg 0x10: [mem 0x00000000-0x000000ff]
[ 70.418912] pci 0000:04:00.2: supports D1 D2
[ 70.418915] pci 0000:04:00.2: PME# supported from D0 D1 D2 D3hot
[ 70.419040] pci 0000:04:00.0: BAR 0: assigned [mem 0xf1400000-0xf1400fff]
[ 70.419051] pci 0000:04:00.1: BAR 0: assigned [mem 0xf1401000-0xf1401fff]
[ 70.419059] pci 0000:04:00.2: BAR 0: assigned [mem 0xf1402000-0xf14020ff]
[ 70.419112] pci 0000:04:00.0: enabling device (0000 -> 0002)
[ 70.419350] pci 0000:04:00.1: enabling device (0000 -> 0002)
[ 70.419508] pci 0000:04:00.2: enabling device (0000 -> 0002)
[ 70.419755] ehci-pci 0000:04:00.2: EHCI Host Controller
[ 70.419874] ehci-pci 0000:04:00.2: new USB bus registered, assigned bus number 9
[ 70.419980] ehci-pci 0000:04:00.2: irq 19, io mem 0xf1402000
[ 70.422796] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 70.424894] ohci-pci: OHCI PCI platform driver
[ 70.425072] ehci-pci 0000:04:00.2: USB 2.0 started, EHCI 0.95
[ 70.425132] usb usb9: New USB device found, idVendor=1d6b, idProduct=0002
[ 70.425135] usb usb9: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 70.425138] usb usb9: Product: EHCI Host Controller
[ 70.425141] usb usb9: Manufacturer: Linux 3.14.0 ehci_hcd
[ 70.425144] usb usb9: SerialNumber: 0000:04:00.2
[ 70.425332] hub 9-0:1.0: USB hub found
[ 70.425344] hub 9-0:1.0: 5 ports detected
[ 70.425556] BUG: unable to handle kernel NULL pointer dereference at 0000000000000040
[ 70.425560] IP: [<ffffffff814947cc>] usb_set_configuration+0x1c/0x7d0
[ 70.425568] PGD 30d571067 PUD 30d570067 PMD 0
[ 70.425572] Oops: 0000 [#1] PREEMPT SMP
[ 70.425576] Modules linked in: ohci_pci(+) ohci_hcd rfcomm btusb ppdev intel_agp intel_gtt 8250 video parport_pc parport serial_core nvidia(PO) drm agpgart
[ 70.425604] CPU: 3 PID: 83 Comm: pccardd Tainted: P O 3.14.0 #1
[ 70.425607] Hardware name: Dell Inc. Precision M6400 /0G841G, BIOS A13 06/05/2013
[ 70.425609] task: ffff88030eefe150 ti: ffff88030ef86000 task.ti: ffff88030ef86000
[ 70.425611] RIP: 0010:[<ffffffff814947cc>] [<ffffffff814947cc>] usb_set_configuration+0x1c/0x7d0
[ 70.425615] RSP: 0018:ffff88030ef87ba0 EFLAGS: 00010286
[ 70.425617] RAX: ffff88030c7ce800 RBX: 0000000000000000 RCX: ffff88030ea57000
[ 70.425619] RDX: ffff88030dcb6800 RSI: 0000000000000001 RDI: 0000000000000000
[ 70.425620] RBP: ffff88030ef87c38 R08: ffff88030dfa6910 R09: 0000000000000000
[ 70.425622] R10: 0000000000004e2e R11: 0000000000000000 R12: 0000000000000000
[ 70.425624] R13: 0000000000000000 R14: ffffffff814a0b80 R15: ffff88030c7ce800
[ 70.425626] FS: 0000000000000000(0000) GS:ffff88031fd80000(0000) knlGS:0000000000000000
[ 70.425628] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 70.425630] CR2: 0000000000000040 CR3: 000000030c714000 CR4: 00000000000407e0
[ 70.425631] Stack:
[ 70.425632] ffffffff81340110 ffffffff814a0b80 ffff88030ef87bc8 ffffffff817b3858
[ 70.425636] ffff88030dcb6898 ffff88030ef87c00 ffffffff813d6daf ffff88030f429000
[ 70.425640] 000000010ef87bf0 ffffffff813d4737 ffff88030ef87c00 ffffffff8133f19a
[ 70.425644] Call Trace:
[ 70.425650] [<ffffffff81340110>] ? pci_do_find_bus+0x70/0x70
[ 70.425653] [<ffffffff814a0b80>] ? hcd_pci_suspend_noirq+0xa0/0xa0
[ 70.425659] [<ffffffff817b3858>] ? klist_iter_exit+0x18/0x30
[ 70.425663] [<ffffffff813d6daf>] ? bus_find_device+0x7f/0xb0
[ 70.425666] [<ffffffff813d4737>] ? put_device+0x17/0x20
[ 70.425669] [<ffffffff8133f19a>] ? pci_dev_put+0x1a/0x20
[ 70.425672] [<ffffffff81340361>] ? pci_get_dev_by_id+0x61/0x90
[ 70.425675] [<ffffffff814a0b80>] ? hcd_pci_suspend_noirq+0xa0/0xa0
[ 70.425679] [<ffffffff814a0bcb>] ehci_post_add+0x4b/0x60
[ 70.425682] [<ffffffff814a0070>] for_each_companion+0x80/0xa0
[ 70.425685] [<ffffffff814a0504>] usb_hcd_pci_probe+0x474/0x4e0
[ 70.425688] [<ffffffff8133f614>] pci_device_probe+0x84/0xe0
[ 70.425692] [<ffffffff813d89f6>] driver_probe_device+0x76/0x240
[ 70.425695] [<ffffffff813d8bc0>] ? driver_probe_device+0x240/0x240
[ 70.425698] [<ffffffff813d8bfb>] __device_attach+0x3b/0x40
[ 70.425701] [<ffffffff813d6cb3>] bus_for_each_drv+0x63/0xa0
[ 70.425704] [<ffffffff813d8938>] device_attach+0x88/0xa0
[ 70.425710] [<ffffffff81336d4d>] pci_bus_add_device+0x3d/0x60
[ 70.425714] [<ffffffff81337129>] pci_bus_add_devices+0x39/0xa0
[ 70.425717] [<ffffffff817b7055>] cb_alloc+0xd5/0xf0
[ 70.425722] [<ffffffff8147b2c0>] socket_insert+0xf0/0x110
[ 70.425725] [<ffffffff8147baaf>] pccardd+0x23f/0x400
[ 70.425728] [<ffffffff8147b870>] ? pcmcia_socket_uevent+0x30/0x30
[ 70.425732] [<ffffffff810a91f2>] kthread+0xd2/0xf0
[ 70.425735] [<ffffffff810a9120>] ? kthread_create_on_node+0x180/0x180
[ 70.425739] [<ffffffff817c996c>] ret_from_fork+0x7c/0xb0
[ 70.425742] [<ffffffff810a9120>] ? kthread_create_on_node+0x180/0x180
[ 70.425744] Code: 8f ff ff ff e9 9c fe ff ff 66 0f 1f 44 00 00 66 66 66 66 90 55 48 89 e5 41 57 41 56 41 55 41 54 49 89 fc 53 48 83 ec 70 89 75 ac <48> 8b 47 40 f6 87 4c 04 00 00 08 48 89 45 80 0f 84 97 00 00 00
[ 70.425784] RIP [<ffffffff814947cc>] usb_set_configuration+0x1c/0x7d0
[ 70.425788] RSP <ffff88030ef87ba0>
[ 70.425790] CR2: 0000000000000040
[ 70.425792] ---[ end trace cc8b88e5a9bc6642 ]---
[ 70.425805] ------------[ cut here ]------------
[ 70.425810] WARNING: CPU: 3 PID: 83 at kernel/smp.c:210 smp_call_function_single+0x15d/0x1a0()
[ 70.425811] Modules linked in: ohci_pci(+) ohci_hcd rfcomm btusb ppdev intel_agp intel_gtt 8250 video parport_pc parport serial_core nvidia(PO) drm agpgart
[ 70.425826] CPU: 3 PID: 83 Comm: pccardd Tainted: P D O 3.14.0 #1
[ 70.425827] Hardware name: Dell Inc. Precision M6400 /0G841G, BIOS A13 06/05/2013
[ 70.425829] 0000000000000009 ffff88030ef87758 ffffffff817ba834 0000000000000000
[ 70.425833] ffff88030ef87790 ffffffff8108789d 0000000000000003 0000000000000003
[ 70.425836] ffffffff81ce3e90 ffffffff8113be00 0000000000000001 ffff88030ef877a0
[ 70.425840] Call Trace:
[ 70.425845] [<ffffffff817ba834>] dump_stack+0x4d/0x6f
[ 70.425849] [<ffffffff8108789d>] warn_slowpath_common+0x7d/0xa0
[ 70.425853] [<ffffffff8113be00>] ? task_clock_event_add+0x40/0x40
[ 70.425856] [<ffffffff8108797a>] warn_slowpath_null+0x1a/0x20
[ 70.425859] [<ffffffff810eeafd>] smp_call_function_single+0x15d/0x1a0
[ 70.425863] [<ffffffff810b53fa>] ? enqueue_task+0x3a/0x60
[ 70.425866] [<ffffffff811399c4>] task_function_call+0x44/0x50
[ 70.425870] [<ffffffff8113ef00>] ? perf_cgroup_switch+0x1a0/0x1a0
[ 70.425873] [<ffffffff8113bfd0>] perf_cgroup_exit+0x20/0x30
[ 70.425877] [<ffffffff811000e3>] cgroup_exit+0xd3/0x100
[ 70.425880] [<ffffffff81089afb>] do_exit+0x2ab/0xa20
[ 70.425884] [<ffffffff810d4461>] ? kmsg_dump+0xc1/0xd0
[ 70.425887] [<ffffffff817c32fa>] oops_end+0x8a/0xd0
[ 70.425889] [<ffffffff817b8213>] no_context+0x212/0x21f
[ 70.425892] [<ffffffff817b82a0>] __bad_area_nosemaphore+0x80/0x1d6
[ 70.425895] [<ffffffff817b8409>] bad_area_nosemaphore+0x13/0x15
[ 70.425898] [<ffffffff817c55ce>] __do_page_fault+0x3ae/0x560
[ 70.425903] [<ffffffff81310cef>] ? idr_get_empty_slot+0x16f/0x3a0
[ 70.425906] [<ffffffff813112c4>] ? ida_get_new_above+0x1d4/0x200
[ 70.425909] [<ffffffff814a0b80>] ? hcd_pci_suspend_noirq+0xa0/0xa0
[ 70.425912] [<ffffffff817c578c>] do_page_fault+0xc/0x10
[ 70.425915] [<ffffffff817c2892>] page_fault+0x22/0x30
[ 70.425918] [<ffffffff814a0b80>] ? hcd_pci_suspend_noirq+0xa0/0xa0
[ 70.425921] [<ffffffff814947cc>] ? usb_set_configuration+0x1c/0x7d0
[ 70.425924] [<ffffffff81340110>] ? pci_do_find_bus+0x70/0x70
[ 70.425927] [<ffffffff814a0b80>] ? hcd_pci_suspend_noirq+0xa0/0xa0
[ 70.425930] [<ffffffff817b3858>] ? klist_iter_exit+0x18/0x30
[ 70.425933] [<ffffffff813d6daf>] ? bus_find_device+0x7f/0xb0
[ 70.425936] [<ffffffff813d4737>] ? put_device+0x17/0x20
[ 70.425939] [<ffffffff8133f19a>] ? pci_dev_put+0x1a/0x20
[ 70.425942] [<ffffffff81340361>] ? pci_get_dev_by_id+0x61/0x90
[ 70.425945] [<ffffffff814a0b80>] ? hcd_pci_suspend_noirq+0xa0/0xa0
[ 70.425948] [<ffffffff814a0bcb>] ehci_post_add+0x4b/0x60
[ 70.425951] [<ffffffff814a0070>] for_each_companion+0x80/0xa0
[ 70.425953] [<ffffffff814a0504>] usb_hcd_pci_probe+0x474/0x4e0
[ 70.425957] [<ffffffff8133f614>] pci_device_probe+0x84/0xe0
[ 70.425960] [<ffffffff813d89f6>] driver_probe_device+0x76/0x240
[ 70.425963] [<ffffffff813d8bc0>] ? driver_probe_device+0x240/0x240
[ 70.425966] [<ffffffff813d8bfb>] __device_attach+0x3b/0x40
[ 70.425971] [<ffffffff813d6cb3>] bus_for_each_drv+0x63/0xa0
[ 70.425974] [<ffffffff813d8938>] device_attach+0x88/0xa0
[ 70.425978] [<ffffffff81336d4d>] pci_bus_add_device+0x3d/0x60
[ 70.425981] [<ffffffff81337129>] pci_bus_add_devices+0x39/0xa0
[ 70.425984] [<ffffffff817b7055>] cb_alloc+0xd5/0xf0
[ 70.425988] [<ffffffff8147b2c0>] socket_insert+0xf0/0x110
[ 70.425991] [<ffffffff8147baaf>] pccardd+0x23f/0x400
[ 70.425994] [<ffffffff8147b870>] ? pcmcia_socket_uevent+0x30/0x30
[ 70.425997] [<ffffffff810a91f2>] kthread+0xd2/0xf0
[ 70.426000] [<ffffffff810a9120>] ? kthread_create_on_node+0x180/0x180
[ 70.426003] [<ffffffff817c996c>] ret_from_fork+0x7c/0xb0
[ 70.426006] [<ffffffff810a9120>] ? kthread_create_on_node+0x180/0x180
[ 70.426008] ---[ end trace cc8b88e5a9bc6643 ]---

Attachment: kernel.config.gz
Description: application/gzip