md: async del_gendisk mode will be removed in future, please upgrade to mdadm-4.5+
block device autoloading is deprecated and will be removed.
======================================================
WARNING: possible circular locking dependency detected
syzkaller #0 Tainted: G L
------------------------------------------------------
syz.8.6438/28993 is trying to acquire lock:
ffffffff90be7e80 (major_names_lock){+.+.}-{4:4}, at: blk_probe_dev+0x28/0x1e0 block/genhd.c:885
but task is already holding lock:
ffff888041ba4358 (&mddev->reconfig_mutex){+.+.}-{4:4}, at: mddev_lock drivers/md/md.h:713 [inline]
ffff888041ba4358 (&mddev->reconfig_mutex){+.+.}-{4:4}, at: mddev_suspend_and_lock drivers/md/md.h:1026 [inline]
ffff888041ba4358 (&mddev->reconfig_mutex){+.+.}-{4:4}, at: mddev_suspend_and_lock drivers/md/md.h:1018 [inline]
ffff888041ba4358 (&mddev->reconfig_mutex){+.+.}-{4:4}, at: md_ioctl+0x111b/0x3700 drivers/md/md.c:8426
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #2 (&mddev->reconfig_mutex){+.+.}-{4:4}:
lock_acquire kernel/locking/lockdep.c:5942 [inline]
lock_acquire+0x1d1/0x380 kernel/locking/lockdep.c:5899
__mutex_lock_common kernel/locking/mutex.c:646 [inline]
__mutex_lock+0x19f/0x1c10 kernel/locking/mutex.c:821
mddev_lock_nointr drivers/md/md.h:734 [inline]
md_alloc+0x3d0/0x10c0 drivers/md/md.c:6413
md_alloc_and_put drivers/md/md.c:6452 [inline]
md_probe drivers/md/md.c:6468 [inline]
md_probe+0x73/0xf0 drivers/md/md.c:6463
blk_probe_dev+0x149/0x1e0 block/genhd.c:888
blk_request_module+0x16/0xc0 block/genhd.c:901
blkdev_get_no_open+0x9b/0xf0 block/bdev.c:870
blkdev_open+0x141/0x4f0 block/fops.c:677
do_dentry_open+0x674/0x1470 fs/open.c:1000
vfs_open_consume+0xcc/0x460 fs/open.c:1131
do_open fs/namei.c:4851 [inline]
path_openat+0x1547/0x23f0 fs/namei.c:5016
do_file_open+0x20e/0x430 fs/namei.c:5045
do_sys_openat2+0x163/0x1d0 fs/open.c:1443
do_sys_open fs/open.c:1449 [inline]
__do_compat_sys_openat fs/open.c:1511 [inline]
__se_compat_sys_openat fs/open.c:1509 [inline]
__ia32_compat_sys_openat+0x12d/0x210 fs/open.c:1509
do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:79 [inline]
__do_fast_syscall_32+0x14d/0x8e0 arch/x86/entry/syscall_32.c:286
do_fast_syscall_32+0x32/0x70 arch/x86/entry/syscall_32.c:311
entry_SYSENTER_compat_after_hwframe+0x84/0x8e
-> #1 (disks_mutex){+.+.}-{4:4}:
lock_acquire kernel/locking/lockdep.c:5942 [inline]
lock_acquire+0x1d1/0x380 kernel/locking/lockdep.c:5899
__mutex_lock_common kernel/locking/mutex.c:646 [inline]
__mutex_lock+0x19f/0x1c10 kernel/locking/mutex.c:821
md_alloc+0x3e/0x10c0 drivers/md/md.c:6355
md_alloc_and_put drivers/md/md.c:6452 [inline]
md_probe drivers/md/md.c:6468 [inline]
md_probe+0x73/0xf0 drivers/md/md.c:6463
blk_probe_dev+0x149/0x1e0 block/genhd.c:888
blk_request_module+0x16/0xc0 block/genhd.c:901
blkdev_get_no_open+0x9b/0xf0 block/bdev.c:870
blkdev_open+0x141/0x4f0 block/fops.c:677
do_dentry_open+0x674/0x1470 fs/open.c:1000
vfs_open_consume+0xcc/0x460 fs/open.c:1131
do_open fs/namei.c:4851 [inline]
path_openat+0x1547/0x23f0 fs/namei.c:5016
do_file_open+0x20e/0x430 fs/namei.c:5045
do_sys_openat2+0x163/0x1d0 fs/open.c:1443
do_sys_open fs/open.c:1449 [inline]
__do_compat_sys_openat fs/open.c:1511 [inline]
__se_compat_sys_openat fs/open.c:1509 [inline]
__ia32_compat_sys_openat+0x12d/0x210 fs/open.c:1509
do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:79 [inline]
__do_fast_syscall_32+0x14d/0x8e0 arch/x86/entry/syscall_32.c:286
do_fast_syscall_32+0x32/0x70 arch/x86/entry/syscall_32.c:311
entry_SYSENTER_compat_after_hwframe+0x84/0x8e
-> #0 (major_names_lock){+.+.}-{4:4}:
check_prev_add+0xeb/0xe60 kernel/locking/lockdep.c:3209
check_prevs_add kernel/locking/lockdep.c:3328 [inline]
validate_chain kernel/locking/lockdep.c:3952 [inline]
__lock_acquire+0x1528/0x1f40 kernel/locking/lockdep.c:5288
lock_acquire kernel/locking/lockdep.c:5942 [inline]
lock_acquire+0x1d1/0x380 kernel/locking/lockdep.c:5899
__mutex_lock_common kernel/locking/mutex.c:646 [inline]
__mutex_lock+0x19f/0x1c10 kernel/locking/mutex.c:821
blk_probe_dev+0x28/0x1e0 block/genhd.c:885
blk_request_module+0x16/0xc0 block/genhd.c:901
blkdev_get_no_open+0x9b/0xf0 block/bdev.c:870
bdev_file_open_by_dev block/bdev.c:1091 [inline]
bdev_file_open_by_dev+0x70/0x210 block/bdev.c:1079
md_import_device+0x120/0x360 drivers/md/md.c:3861
md_add_new_disk+0x4b6/0x1820 drivers/md/md.c:7536
md_ioctl+0x2c1d/0x3700 drivers/md/md.c:8525
compat_blkdev_ioctl+0x633/0x750 block/ioctl.c:854
__do_compat_sys_ioctl fs/ioctl.c:695 [inline]
__se_compat_sys_ioctl fs/ioctl.c:638 [inline]
__ia32_compat_sys_ioctl+0x2cf/0x360 fs/ioctl.c:638
do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:79 [inline]
__do_fast_syscall_32+0x14d/0x8e0 arch/x86/entry/syscall_32.c:286
do_fast_syscall_32+0x32/0x70 arch/x86/entry/syscall_32.c:311
entry_SYSENTER_compat_after_hwframe+0x84/0x8e
other info that might help us debug this:
Chain exists of:
major_names_lock --> disks_mutex --> &mddev->reconfig_mutex
Possible unsafe locking scenario:
CPU0 CPU1
---- ----
lock(&mddev->reconfig_mutex);
lock(disks_mutex);
lock(&mddev->reconfig_mutex);
lock(major_names_lock);
*** DEADLOCK ***
locks held by syz.8.6438/28993: 1, on CPU#2:
#0: ffff888041ba4358 (&mddev->reconfig_mutex){+.+.}-{4:4}, at: mddev_lock drivers/md/md.h:713 [inline]
#0: ffff888041ba4358 (&mddev->reconfig_mutex){+.+.}-{4:4}, at: mddev_suspend_and_lock drivers/md/md.h:1026 [inline]
#0: ffff888041ba4358 (&mddev->reconfig_mutex){+.+.}-{4:4}, at: mddev_suspend_and_lock drivers/md/md.h:1018 [inline]
#0: ffff888041ba4358 (&mddev->reconfig_mutex){+.+.}-{4:4}, at: md_ioctl+0x111b/0x3700 drivers/md/md.c:8426
stack backtrace:
CPU: 2 UID: 0 PID: 28993 Comm: syz.8.6438 Tainted: G L syzkaller #0 PREEMPT(full)
Tainted: [L]=SOFTLOCKUP
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Call Trace:
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120
print_circular_bug.cold+0x178/0x1be kernel/locking/lockdep.c:2087
check_noncircular+0x146/0x160 kernel/locking/lockdep.c:2219
check_prev_add+0xeb/0xe60 kernel/locking/lockdep.c:3209
check_prevs_add kernel/locking/lockdep.c:3328 [inline]
validate_chain kernel/locking/lockdep.c:3952 [inline]
__lock_acquire+0x1528/0x1f40 kernel/locking/lockdep.c:5288
lock_acquire kernel/locking/lockdep.c:5942 [inline]
lock_acquire+0x1d1/0x380 kernel/locking/lockdep.c:5899
__mutex_lock_common kernel/locking/mutex.c:646 [inline]
__mutex_lock+0x19f/0x1c10 kernel/locking/mutex.c:821
blk_probe_dev+0x28/0x1e0 block/genhd.c:885
blk_request_module+0x16/0xc0 block/genhd.c:901
blkdev_get_no_open+0x9b/0xf0 block/bdev.c:870
bdev_file_open_by_dev block/bdev.c:1091 [inline]
bdev_file_open_by_dev+0x70/0x210 block/bdev.c:1079
md_import_device+0x120/0x360 drivers/md/md.c:3861
md_add_new_disk+0x4b6/0x1820 drivers/md/md.c:7536
md_ioctl+0x2c1d/0x3700 drivers/md/md.c:8525
compat_blkdev_ioctl+0x633/0x750 block/ioctl.c:854
__do_compat_sys_ioctl fs/ioctl.c:695 [inline]
__se_compat_sys_ioctl fs/ioctl.c:638 [inline]
__ia32_compat_sys_ioctl+0x2cf/0x360 fs/ioctl.c:638
do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:79 [inline]
__do_fast_syscall_32+0x14d/0x8e0 arch/x86/entry/syscall_32.c:286
do_fast_syscall_32+0x32/0x70 arch/x86/entry/syscall_32.c:311
entry_SYSENTER_compat_after_hwframe+0x84/0x8e
RIP: 0023:0xf7fc3fbc
Code: d2 74 05 c1 e8 0c 89 02 8b 5d fc 31 c0 c9 c3 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 2e 8d b4 26 00 00 00 00 8d b4 26 00 00 00 00 58 b8
RSP: 002b:00000000f547650c EFLAGS: 00000292 ORIG_RAX: 0000000000000036
RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 0000000040140921
RDX: 0000000080001540 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000292 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
debugfs: creating file 'ram16'
device: 'ram16': device_add
kobject: 'ram16' (ffff8880534074e0): kobject_add_internal: parent: 'block', set: 'devices'
PM: Adding info for No Bus:ram16
kobject: 'ram16' (ffff8880534074e0): kobject_uevent_env
kobject: 'ram16' (ffff8880534074e0): kobject_uevent_env: uevent_suppress caused the event to drop!
kobject: 'holders' (ffff888023287180): kobject_add_internal: parent: 'ram16', set: ''
kobject: 'slaves' (ffff888025ee0800): kobject_add_internal: parent: 'ram16', set: ''
kobject: 'queue' (ffff8880616e7388): kobject_add_internal: parent: 'ram16', set: ''
debugfs: creating file 'ram16'
debugfs: creating file 'error_injection'
kobject: 'queue' (ffff8880616e7388): kobject_uevent_env
kobject: 'queue' (ffff8880616e7388): kobject_uevent_env: filter function caused the event to drop!
device: '1:16': device_add
kobject: '1:16' (ffff8880540d5000): kobject_add_internal: parent: 'bdi', set: 'devices'
PM: Adding info for No Bus:1:16
kobject: '1:16' (ffff8880540d5000): kobject_uevent_env
kobject: '1:16' (ffff8880540d5000): fill_kobj_path: path = '/devices/virtual/bdi/1:16'
debugfs: creating file '1:16'
debugfs: creating file 'stats'
debugfs: creating file 'wb_stats'
kobject: 'ram16' (ffff8880534074e0): kobject_uevent_env
kobject: 'ram16' (ffff8880534074e0): fill_kobj_path: path = '/devices/virtual/block/ram16'
block device autoloading is deprecated and will be removed.
md: invalid raid superblock magic on ram16
md: ram16 does not have a valid v0.0 superblock, not importing!
md: md_import_device returned -22
kcov: kcov_task_exit: t = ffff88805ba82580, kcov->t = ffff88805ba82580
----------------
Code disassembly (best guess):
0: d2 74 05 c1 shlb %cl,-0x3f(%rbp,%rax,1)
4: e8 0c 89 02 8b call 0x8b028915
9: 5d pop %rbp
a: fc cld
b: 31 c0 xor %eax,%eax
d: c9 leave
e: c3 ret
f: 90 nop
10: 90 nop
11: 90 nop
12: 90 nop
13: 90 nop
14: 90 nop
15: 90 nop
16: 90 nop
17: 90 nop
18: 90 nop
19: 90 nop
1a: 90 nop
1b: 90 nop
1c: 90 nop
1d: 90 nop
1e: 0f 1f 00 nopl (%rax)
21: 51 push %rcx
22: 52 push %rdx
23: 55 push %rbp
24: 89 e5 mov %esp,%ebp
26: 0f 34 sysenter
28: cd 80 int $0x80
* 2a: 5d pop %rbp <-- trapping instruction
2b: 5a pop %rdx
2c: 59 pop %rcx
2d: c3 ret
2e: 90 nop
2f: 2e 8d b4 26 00 00 00 cs lea 0x0(%rsi,%riz,1),%esi
36: 00
37: 8d b4 26 00 00 00 00 lea 0x0(%rsi,%riz,1),%esi
3e: 58 pop %rax
3f: b8 .byte 0xb8