[REGRESSION next-20170410] Commit a6ff6cbf1fab ("usb: xhci: Add helper function xhci_set_power_on().") breaks armada-385

From: Ralph Sennhauser
Date: Wed Apr 12 2017 - 03:48:05 EST


Hi Guoqing Zhang,

Commit a6ff6cbf1fabe7500d8ac25e133e3346db0a0fca ("usb: xhci: Add helper
function xhci_set_power_on().") causes a null pointer dereference on an
armada-385. Below the kernel as well as the bisect log.

Regards
Ralph

----

[ 2.481636] Unable to handle kernel NULL pointer dereference at virtual address 00000000
[ 2.489758] pgd = c0004000
[ 2.492479] [00000000] *pgd=00000000
[ 2.496069] Internal error: Oops: 5 [#1] SMP ARM
[ 2.500702] Modules linked in:
[ 2.503769] CPU: 0 PID: 605 Comm: kworker/0:2 Not tainted 4.11.0-rc6-next-20170410 #3
[ 2.511629] Hardware name: Marvell Armada 380/385 (Device Tree)
[ 2.517578] Workqueue: events deferred_probe_work_func
[ 2.522737] task: def09600 task.stack: de688000
[ 2.527285] PC is at _raw_spin_unlock_irqrestore+0x28/0x2c
[ 2.532791] LR is at 0x0
[ 2.535333] pc : [<c05deb9c>] lr : [<00000000>] psr: 60000010
[ 2.535333] sp : 00000000 ip : de689720 fp : de68971c
[ 2.546856] r10: 00000000 r9 : 80000013 r8 : 00000001
[ 2.552100] r7 : 00000001 r6 : 000206e1 r5 : e0aa4430 r4 : df575168
[ 2.558651] r3 : 00000003 r2 : de6d1340 r1 : 00000000 r0 : df575168
[ 2.565204] Flags: nZCv IRQs on FIQs on Mode USER_32 ISA ARM Segment kernel
[ 2.572628] Control: 10c5387d Table: 0000404a DAC: 00000055
[ 2.578395] Process kworker/0:2 (pid: 605, stack limit = 0xde688210)
[ 2.584782] ---[ end trace 6795d9561f630b41 ]---
[ 2.589417] Kernel panic - not syncing: Fatal exception
[ 2.594663] CPU1: stopping
[ 2.597382] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D 4.11.0-rc6-next-20170410 #3
[ 2.606115] Hardware name: Marvell Armada 380/385 (Device Tree)
[ 2.612056] Backtrace:
[ 2.614518] [<c010ba4c>] (dump_backtrace) from [<c010bd20>] (show_stack+0x18/0x1c)
[ 2.622118] r7:df467f28 r6:60000193 r5:c0a15c70 r4:00000000
[ 2.627801] [<c010bd08>] (show_stack) from [<c0317384>] (dump_stack+0x94/0xa8)
[ 2.635054] [<c03172f0>] (dump_stack) from [<c010ed4c>] (handle_IPI+0x178/0x198)
[ 2.642478] r7:df467f28 r6:00000000 r5:00000001 r4:c0a2fcb0
[ 2.648160] [<c010ebd4>] (handle_IPI) from [<c01014e4>] (gic_handle_irq+0x90/0x94)
[ 2.655759] r7:df467f28 r6:e080210c r5:c0a03fac r4:c0a16080
[ 2.661440] [<c0101454>] (gic_handle_irq) from [<c010c86c>] (__irq_svc+0x6c/0x90)
[ 2.668951] Exception stack(0xdf467f28 to 0xdf467f70)
[ 2.674023] 7f20: 00000001 00000000 00000000 c0118e60 df466000 c0a03cf8
[ 2.682233] 7f40: c0a03cac c0969488 00000000 00000000 df467f98 df467f84 df467f88 df467f78
[ 2.690443] 7f60: c01085ac c01085b0 60000013 ffffffff
[ 2.695514] r9:df466000 r8:00000000 r7:df467f5c r6:ffffffff r5:60000013 r4:c01085b0
[ 2.703290] [<c0108570>] (arch_cpu_idle) from [<c05dea2c>] (default_idle_call+0x28/0x34)
[ 2.711416] [<c05dea04>] (default_idle_call) from [<c0153618>] (do_idle+0x1a4/0x1d0)
[ 2.719192] [<c0153474>] (do_idle) from [<c01538d8>] (cpu_startup_entry+0x20/0x24)
[ 2.726793] r10:00000000 r9:414fc091 r8:0000406a r7:c0a2fcc0 r6:10c0387d r5:00000001
[ 2.734652] r4:00000086
[ 2.737195] [<c01538b8>] (cpu_startup_entry) from [<c010e978>] (secondary_start_kernel+0x150/0x15c)
[ 2.746277] [<c010e828>] (secondary_start_kernel) from [<0010162c>] (0x10162c)
[ 2.753527] r5:00000051 r4:1f45c06a
[ 2.757117] Rebooting in 1 seconds..

---

git bisect start
# bad: [f8c97bdb49832d2b0edaa0c05db873aa2f6101ff] Add linux-next specific files for 20170410
git bisect bad f8c97bdb49832d2b0edaa0c05db873aa2f6101ff
# good: [c1ae3cfa0e89fa1a7ecc4c99031f5e9ae99d9201] Linux 4.11-rc1
git bisect good c1ae3cfa0e89fa1a7ecc4c99031f5e9ae99d9201
# good: [1902aaff4d92a3839ab1bb8764b8ce34d7302050] Merge remote-tracking branch 'crypto/master'
git bisect good 1902aaff4d92a3839ab1bb8764b8ce34d7302050
# good: [ebfd6b2f85a82b2833187961e97b2d9bf91b996e] Merge remote-tracking branch 'devicetree/for-next'
git bisect good ebfd6b2f85a82b2833187961e97b2d9bf91b996e
# bad: [5c1e203c899abd637f89234344ddd30044d9b77c] Merge remote-tracking branch 'extcon/extcon-next'
git bisect bad 5c1e203c899abd637f89234344ddd30044d9b77c
# good: [508fe66c67f2201e3ea873b679c6e0112302db43] Merge remote-tracking branch 'kvm/linux-next'
git bisect good 508fe66c67f2201e3ea873b679c6e0112302db43
# bad: [e8c7b5db5108ea627d088dffd3a7c235aafe9343] Merge remote-tracking branch 'usb/usb-next'
git bisect bad e8c7b5db5108ea627d088dffd3a7c235aafe9343
# good: [e8ce3e093a5ae3547b804413b1853e8ca2397940] Merge remote-tracking branch 'workqueues/for-next'
git bisect good e8ce3e093a5ae3547b804413b1853e8ca2397940
# bad: [96d9a6eb97d77d6a3768f101f400c42743799bb2] usb: xhci: fix link trb decoding
git bisect bad 96d9a6eb97d77d6a3768f101f400c42743799bb2
# good: [50129f74548b5075187fa4908c2ba3a081ec1b67] USB: ftdi-elan: refactor endpoint retrieval
git bisect good 50129f74548b5075187fa4908c2ba3a081ec1b67
# good: [2c930e3d0aed1505e86e0928d323df5027817740] usb: misc: add missing continue in switch
git bisect good 2c930e3d0aed1505e86e0928d323df5027817740
# bad: [5d062aba0d399c57e2d793603d6e372adb09b4d7] usb: host: xhci: fix up Control Transfer TRB decoder
git bisect bad 5d062aba0d399c57e2d793603d6e372adb09b4d7
# bad: [f9e609b82479ef48469d42b022b0951abc00dcd1] usb: xhci: Add helper function xhci_disable_slot().
git bisect bad f9e609b82479ef48469d42b022b0951abc00dcd1
# good: [c70a1529b29cb1362ade5dd113313fb945e32c3e] usb: xhci: plat: Enable async suspend/resume
git bisect good c70a1529b29cb1362ade5dd113313fb945e32c3e
# bad: [a6ff6cbf1fabe7500d8ac25e133e3346db0a0fca] usb: xhci: Add helper function xhci_set_power_on().
git bisect bad a6ff6cbf1fabe7500d8ac25e133e3346db0a0fca
# good: [d1001ab41064c7fe7bffbc1d7c3921912f3ec32d] usb: xhci: clear EINT bit in status correctly
git bisect good d1001ab41064c7fe7bffbc1d7c3921912f3ec32d
# first bad commit: [a6ff6cbf1fabe7500d8ac25e133e3346db0a0fca] usb: xhci: Add helper function xhci_set_power_on().