Re: [PATCH] xhci: fix null pointer deref for xhci_urb_enqueue

From: kernel test robot
Date: Wed Nov 22 2023 - 20:55:00 EST




Hello,

kernel test robot noticed "WARNING:HARDIRQ-safe->HARDIRQ-unsafe_lock_order_detected" on:

commit: 90703e106b4214512828bff96df3df2ecff5c7b7 ("[PATCH] xhci: fix null pointer deref for xhci_urb_enqueue")
url: https://github.com/intel-lab-lkp/linux/commits/Kuen-Han-Tsai/xhci-fix-null-pointer-deref-for-xhci_urb_enqueue/20231117-152346
base: https://git.kernel.org/cgit/linux/kernel/git/gregkh/usb.git usb-testing
patch link: https://lore.kernel.org/all/20231117072131.2886406-1-khtsai@xxxxxxxxxx/
patch subject: [PATCH] xhci: fix null pointer deref for xhci_urb_enqueue

in testcase: kernel-selftests
version: kernel-selftests-x86_64-60acb023-1_20230329
with following parameters:

group: net
test: fcnal-test.sh
atomic_test: ipv4_ping



compiler: gcc-12
test machine: 36 threads 1 sockets Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz (Cascade Lake) with 32G memory

(please refer to attached dmesg/kmsg for entire log/backtrace)



If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <oliver.sang@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-lkp/202311222304.1a72c7d4-oliver.sang@xxxxxxxxx


[ 18.016498][ T9] WARNING: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected
[ 18.016498][ T9] 6.7.0-rc1-00001-g90703e106b42 #1 Not tainted
[ 18.016498][ T9] -----------------------------------------------------
[ 18.016498][ T9] kworker/0:1/9 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
[ 18.019119][ T1] iTCO_vendor_support: vendor-support=0
[ 18.016498][ T9] ffffffff84f96760 (
[ 18.019656][ T1] intel_pstate: HWP enabled by BIOS
[ 18.016498][ T9] mmu_notifier_invalidate_range_start
[ 18.020037][ T1] intel_pstate: Intel P-state driver initializing
[ 18.016498][ T9] ){+.+.}-{0:0}, at: fs_reclaim_acquire (mm/page_alloc.c:3710 mm/page_alloc.c:3701)
[ 18.016498][ T9]
[ 18.016498][ T9] and this task is already holding:
[ 18.016498][ T9] ffff8881e0b12428 (&xhci->lock){-.-.}-{2:2}, at: xhci_urb_enqueue (drivers/usb/host/xhci.c:1525)
[ 18.016498][ T9] which would create a new lock dependency:
[ 18.016498][ T9] (&xhci->lock){-.-.}-{2:2} -> (mmu_notifier_invalidate_range_start){+.+.}-{0:0}
[ 18.016498][ T9]
[ 18.016498][ T9] but this new dependency connects a HARDIRQ-irq-safe lock:
[ 18.016498][ T9] (&xhci->lock){-.-.}-{2:2}
[ 18.016498][ T9]
[ 18.016498][ T9] ... which became HARDIRQ-irq-safe at:
[ 18.016498][ T9] __lock_acquire (kernel/locking/lockdep.c:5090)
[ 18.016498][ T9] lock_acquire (kernel/locking/lockdep.c:467 kernel/locking/lockdep.c:5755 kernel/locking/lockdep.c:5718)
[ 18.016498][ T9] _raw_spin_lock (include/linux/spinlock_api_smp.h:134 kernel/locking/spinlock.c:154)
[ 18.016498][ T9] xhci_irq (drivers/usb/host/xhci-ring.c:3032)
[ 18.016498][ T9] __handle_irq_event_percpu (kernel/irq/handle.c:158)



The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20231122/202311222304.1a72c7d4-oliver.sang@xxxxxxxxx



--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki