lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date: Fri, 14 Jun 2024 14:10:29 +0800
From: kernel test robot <oliver.sang@...el.com>
To: Marcello Sylvester Bauer <sylv@...v.io>
CC: <oe-lkp@...ts.linux.dev>, <lkp@...el.com>, <linux-kernel@...r.kernel.org>,
	Greg Kroah-Hartman <gregkh@...uxfoundation.org>, Marcello Sylvester Bauer
	<marcello.bauer@...ements.com>, Alan Stern <stern@...land.harvard.edu>,
	<linux-usb@...r.kernel.org>, <oliver.sang@...el.com>
Subject: [linus:master] [usb]  a7f3813e58: WARNING:inconsistent_lock_state



Hello,

kernel test robot noticed "WARNING:inconsistent_lock_state" on:

commit: a7f3813e589fd8e2834720829a47b5eb914a9afe ("usb: gadget: dummy_hcd: Switch to hrtimer transfer scheduler")
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git master

[test failed on linus/master      d20f6b3d747c36889b7ce75ee369182af3decb6b]
[test failed on linux-next/master 6906a84c482f098d31486df8dc98cead21cce2d0]

in testcase: boot

compiler: gcc-13
test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 16G

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


+---------------------------------------------------+------------+------------+
|                                                   | 920e7522e3 | a7f3813e58 |
+---------------------------------------------------+------------+------------+
| WARNING:inconsistent_lock_state                   | 0          | 9          |
+---------------------------------------------------+------------+------------+


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@...el.com>
| Closes: https://lore.kernel.org/oe-lkp/202406141323.413a90d2-lkp@intel.com


[    9.059145][    C1] WARNING: inconsistent lock state
[    9.059806][    C1] 6.9.0-rc2-00079-ga7f3813e589f #1 Tainted: G        W
[    9.060791][    C1] --------------------------------
[    9.061452][    C1] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage.
[    9.062377][    C1] swapper/1/0 [HC1[1]:SC0[0]:HE0:SE1] takes:
[ 9.063151][ C1] e7491784 (&syncp->seq#2){?...}-{0:0}, at: __usb_hcd_giveback_urb (drivers/usb/core/hcd.c:1651) 
[    9.064334][    C1] {HARDIRQ-ON-W} state was registered at:
[ 9.065080][ C1] __lock_acquire (kernel/locking/lockdep.c:5091 (discriminator 1)) 
[ 9.065718][ C1] lock_acquire (kernel/locking/lockdep.c:467 (discriminator 4) kernel/locking/lockdep.c:5756 (discriminator 4) kernel/locking/lockdep.c:5719 (discriminator 4)) 
[ 9.066493][ C1] dsa_user_xmit (include/linux/seqlock.h:423 include/linux/seqlock.h:470 include/linux/seqlock.h:495 include/linux/u64_stats_sync.h:146 include/linux/u64_stats_sync.h:182 include/linux/netdevice.h:2763 net/dsa/user.c:928) 
[ 9.067097][ C1] dev_hard_start_xmit (include/linux/netdevice.h:4903 include/linux/netdevice.h:4917 net/core/dev.c:3531 net/core/dev.c:3547) 
[ 9.067783][ C1] __dev_queue_xmit (include/linux/netdevice.h:3287 (discriminator 25) net/core/dev.c:4336 (discriminator 25)) 
[ 9.068380][ C1] neigh_resolve_output (net/core/neighbour.c:1573) 
[ 9.068989][ C1] ip6_finish_output2 (include/net/neighbour.h:542 (discriminator 2) net/ipv6/ip6_output.c:137 (discriminator 2)) 
[ 9.069558][ C1] ip6_finish_output+0x88/0x334 
[ 9.070027][ C1] ip6_output (net/ipv6/ip6_output.c:247) 
[ 9.070340][ C1] mld_sendpack (net/ipv6/mcast.c:1822) 
[ 9.070679][ C1] mld_send_cr (net/ipv6/mcast.c:2120) 
[ 9.071008][ C1] mld_ifc_work (net/ipv6/mcast.c:2652) 
[ 9.071340][ C1] process_one_work (arch/x86/include/asm/atomic.h:23 include/linux/atomic/atomic-arch-fallback.h:457 include/linux/jump_label.h:260 include/linux/jump_label.h:270 include/trace/events/workqueue.h:108 kernel/workqueue.c:3259) 
[ 9.071709][ C1] worker_thread (kernel/workqueue.c:3329 (discriminator 2) kernel/workqueue.c:3416 (discriminator 2)) 
[ 9.072097][ C1] kthread (kernel/kthread.c:388) 
[ 9.072390][ C1] ret_from_fork (arch/x86/kernel/process.c:153) 
[ 9.072726][ C1] ret_from_fork_asm (arch/x86/entry/entry_32.S:737) 
[ 9.073080][ C1] restore_all_switch_stack (arch/x86/entry/entry_32.S:944) 
[    9.073490][    C1] irq event stamp: 9450
[ 9.073816][ C1] hardirqs last enabled at (9449): cpuidle_idle_call (kernel/sched/idle.c:192) 
[ 9.074473][ C1] hardirqs last disabled at (9450): sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1043) 
[ 9.075191][ C1] softirqs last enabled at (9444): __do_softirq (kernel/softirq.c:401 (discriminator 2) kernel/softirq.c:583 (discriminator 2)) 
[ 9.075819][ C1] softirqs last disabled at (9439): do_softirq_own_stack (arch/x86/kernel/irq_32.c:57 arch/x86/kernel/irq_32.c:147) 
[    9.076487][    C1]
[    9.076487][    C1] other info that might help us debug this:
[    9.077082][    C1]  Possible unsafe locking scenario:
[    9.077082][    C1]
[    9.077627][    C1]        CPU0
[    9.077881][    C1]        ----
[    9.078119][    C1]   lock(&syncp->seq#2);
[    9.078439][    C1]   <Interrupt>
[    9.078691][    C1]     lock(&syncp->seq#2);
[    9.079016][    C1]
[    9.079016][    C1]  *** DEADLOCK ***
[    9.079016][    C1]
[    9.079612][    C1] no locks held by swapper/1/0.
[    9.079964][    C1]
[    9.079964][    C1] stack backtrace:
[    9.080391][    C1] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G        W          6.9.0-rc2-00079-ga7f3813e589f #1 f0ecba0cf7deeaf8786bb8219ff9a6fa3c51532b
[    9.081435][    C1] Call Trace:
[ 9.081686][ C1] dump_stack_lvl (lib/dump_stack.c:117) 
[ 9.082053][ C1] dump_stack (lib/dump_stack.c:124) 
[ 9.082359][ C1] print_usage_bug+0x208/0x2e0 
[ 9.082769][ C1] mark_lock_irq (kernel/locking/lockdep.c:3971 (discriminator 1) kernel/locking/lockdep.c:4013 (discriminator 1) kernel/locking/lockdep.c:4216 (discriminator 1)) 
[ 9.083119][ C1] mark_lock (kernel/locking/lockdep.c:4678) 
[ 9.083437][ C1] mark_usage (kernel/locking/lockdep.c:4564 (discriminator 1)) 
[ 9.083765][ C1] __lock_acquire (kernel/locking/lockdep.c:5091 (discriminator 1)) 
[ 9.084121][ C1] lock_acquire (kernel/locking/lockdep.c:467 (discriminator 4) kernel/locking/lockdep.c:5756 (discriminator 4) kernel/locking/lockdep.c:5719 (discriminator 4)) 
[ 9.084452][ C1] ? __usb_hcd_giveback_urb (drivers/usb/core/hcd.c:1651) 
[ 9.084879][ C1] ? sched_clock_noinstr (arch/x86/kernel/tsc.c:267) 
[ 9.085237][ C1] ? local_clock_noinstr (kernel/sched/clock.c:301 (discriminator 1)) 
[ 9.085624][ C1] ? lock_acquire (kernel/locking/lockdep.c:467 (discriminator 4) kernel/locking/lockdep.c:5756 (discriminator 4) kernel/locking/lockdep.c:5719 (discriminator 4)) 
[ 9.085975][ C1] tx_complete (include/linux/skbuff.h:2228 (discriminator 2) include/linux/skbuff.h:2336 (discriminator 2) include/linux/skbuff.h:2369 (discriminator 2) drivers/net/usb/lan78xx.c:3334 (discriminator 2) drivers/net/usb/lan78xx.c:3385 (discriminator 2)) 
[ 9.086304][ C1] ? __usb_hcd_giveback_urb (drivers/usb/core/hcd.c:1651) 
[ 9.086700][ C1] __usb_hcd_giveback_urb (drivers/usb/core/hcd.c:1651) 
[ 9.087089][ C1] usb_hcd_giveback_urb (drivers/usb/core/hcd.c:1752) 
[ 9.087462][ C1] dummy_timer (include/linux/spinlock.h:351 drivers/usb/gadget/udc/dummy_hcd.c:1986) 
[ 9.087807][ C1] __hrtimer_run_queues (kernel/time/hrtimer.c:1692 kernel/time/hrtimer.c:1756) 
[ 9.088197][ C1] ? transfer (drivers/usb/gadget/udc/dummy_hcd.c:1781) 
[ 9.088511][ C1] hrtimer_run_queues (kernel/time/hrtimer.c:1932) 
[ 9.088869][ C1] update_process_times (kernel/time/timer.c:2467 (discriminator 1) kernel/time/timer.c:2485 (discriminator 1)) 
[ 9.089230][ C1] tick_nohz_lowres_handler (kernel/time/tick-sched.c:274 kernel/time/tick-sched.c:294 kernel/time/tick-sched.c:1480) 
[ 9.089638][ C1] ? sysvec_call_function_single (arch/x86/kernel/apic/apic.c:1043) 
[ 9.090076][ C1] __sysvec_apic_timer_interrupt (arch/x86/include/asm/atomic.h:23 include/linux/atomic/atomic-arch-fallback.h:457 include/linux/jump_label.h:260 include/linux/jump_label.h:270 arch/x86/include/asm/trace/irq_vectors.h:41 arch/x86/kernel/apic/apic.c:1050) 
[ 9.090509][ C1] sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1043 (discriminator 3) arch/x86/kernel/apic/apic.c:1043 (discriminator 3)) 
[ 9.090949][ C1] handle_exception (arch/x86/entry/entry_32.S:1047) 
[ 9.091305][ C1] EIP: default_idle (arch/x86/include/asm/irqflags.h:37 arch/x86/include/asm/irqflags.h:72 arch/x86/kernel/process.c:743) 
[ 9.091654][ C1] Code: ff 89 da b8 fc a2 30 c3 e8 6f 7c 4f ff e9 e8 fa ff ff cc cc cc cc cc cc a1 a0 ea 65 c3 85 c0 7e 07 0f 00 2d f6 ed 17 c2 fb f4 <fa> c3 55 89 e5 53 64 8b 1d 00 32 64 c3 f0 80 4b 02 20 8b 03 a8 08
All code
========
   0:	ff 89 da b8 fc a2    	decl   -0x5d034726(%rcx)
   6:	30 c3                	xor    %al,%bl
   8:	e8 6f 7c 4f ff       	call   0xffffffffff4f7c7c
   d:	e9 e8 fa ff ff       	jmp    0xfffffffffffffafa
  12:	cc                   	int3
  13:	cc                   	int3
  14:	cc                   	int3
  15:	cc                   	int3
  16:	cc                   	int3
  17:	cc                   	int3
  18:	a1 a0 ea 65 c3 85 c0 	movabs 0x77ec085c365eaa0,%eax
  1f:	7e 07 
  21:	0f 00 2d f6 ed 17 c2 	verw   -0x3de8120a(%rip)        # 0xffffffffc217ee1e
  28:	fb                   	sti
  29:	f4                   	hlt
  2a:*	fa                   	cli		<-- trapping instruction
  2b:	c3                   	ret
  2c:	55                   	push   %rbp
  2d:	89 e5                	mov    %esp,%ebp
  2f:	53                   	push   %rbx
  30:	64 8b 1d 00 32 64 c3 	mov    %fs:-0x3c9bce00(%rip),%ebx        # 0xffffffffc3643237
  37:	f0 80 4b 02 20       	lock orb $0x20,0x2(%rbx)
  3c:	8b 03                	mov    (%rbx),%eax
  3e:	a8 08                	test   $0x8,%al

Code starting with the faulting instruction
===========================================
   0:	fa                   	cli
   1:	c3                   	ret
   2:	55                   	push   %rbp
   3:	89 e5                	mov    %esp,%ebp
   5:	53                   	push   %rbx
   6:	64 8b 1d 00 32 64 c3 	mov    %fs:-0x3c9bce00(%rip),%ebx        # 0xffffffffc364320d
   d:	f0 80 4b 02 20       	lock orb $0x20,0x2(%rbx)
  12:	8b 03                	mov    (%rbx),%eax
  14:	a8 08                	test   $0x8,%al


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20240614/202406141323.413a90d2-lkp@intel.com



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


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ