WARNING: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected

15 views
Skip to first unread message

syzbot

unread,
Mar 31, 2020, 9:00:16 PM3/31/20
to syzkaller...@googlegroups.com
Hello,

syzbot found the following crash on:

HEAD commit: 01364dad Linux 4.14.174
git tree: linux-4.14.y
console output: https://syzkaller.appspot.com/x/log.txt?x=176c3197e00000
kernel config: https://syzkaller.appspot.com/x/.config?x=664dd71881ab2b2d
dashboard link: https://syzkaller.appspot.com/bug?extid=ee9b387c5b896f32b37b
compiler: gcc (GCC) 9.0.0 20181231 (experimental)

Unfortunately, I don't have any reproducer for this crash yet.

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+ee9b38...@syzkaller.appspotmail.com

=====================================================
WARNING: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected
4.14.174-syzkaller #0 Not tainted
-----------------------------------------------------
kswapd0/1457 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
(&(&info->lock)->rlock){+.+.}, at: [<ffffffff8174ef84>] shmem_uncharge+0x24/0x250 mm/shmem.c:318

and this task is already holding:
(&(&mapping->tree_lock)->rlock){-.-.}, at: [<ffffffff81861f38>] spin_lock include/linux/spinlock.h:317 [inline]
(&(&mapping->tree_lock)->rlock){-.-.}, at: [<ffffffff81861f38>] split_huge_page_to_list+0x548/0x1f40 mm/huge_memory.c:2625
which would create a new lock dependency:
(&(&mapping->tree_lock)->rlock){-.-.} -> (&(&info->lock)->rlock){+.+.}

but this new dependency connects a HARDIRQ-irq-safe lock:
(&(&mapping->tree_lock)->rlock){-.-.}

... which became HARDIRQ-irq-safe at:
lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3994
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
_raw_spin_lock_irqsave+0x8c/0xbf kernel/locking/spinlock.c:160
test_clear_page_writeback+0x199/0xc20 mm/page-writeback.c:2742
end_page_writeback+0xe4/0x210 mm/filemap.c:1153
end_buffer_async_write+0x363/0x680 fs/buffer.c:377
end_bio_bh_io_sync+0xbf/0x100 fs/buffer.c:3038
bio_endio+0x315/0x670 block/bio.c:1918
req_bio_endio block/blk-core.c:204 [inline]
blk_update_request+0x27a/0x9d0 block/blk-core.c:2763
scsi_end_request+0x7d/0x9b0 drivers/scsi/scsi_lib.c:659
scsi_io_completion+0xa63/0x1590 drivers/scsi/scsi_lib.c:885
scsi_softirq_done+0x2c8/0x360 drivers/scsi/scsi_lib.c:1671
__blk_mq_complete_request+0x30b/0x6c0 block/blk-mq.c:571
blk_mq_complete_request+0x51/0x60 block/blk-mq.c:591
virtscsi_vq_done+0xa7/0x130 drivers/scsi/virtio_scsi.c:223
vring_interrupt+0x101/0x150 drivers/virtio/virtio_ring.c:951
__handle_irq_event_percpu+0x125/0x7e0 kernel/irq/handle.c:147
handle_irq_event_percpu+0x66/0x120 kernel/irq/handle.c:187
handle_irq_event+0xa2/0x12d kernel/irq/handle.c:204
handle_edge_irq+0x215/0x810 kernel/irq/chip.c:770
generic_handle_irq_desc include/linux/irqdesc.h:159 [inline]
handle_irq+0x35/0x50 arch/x86/kernel/irq_64.c:87
do_IRQ+0x93/0x1d0 arch/x86/kernel/irq.c:230
ret_from_intr+0x0/0x1e
arch_local_irq_restore arch/x86/include/asm/paravirt.h:779 [inline]
lock_is_held_type+0x17a/0x210 kernel/locking/lockdep.c:4034
radix_tree_deref_slot include/linux/radix-tree.h:238 [inline]
find_get_entry+0x2ee/0x690 mm/filemap.c:1357
pagecache_get_page+0x44/0xa10 mm/filemap.c:1465
find_get_page include/linux/pagemap.h:276 [inline]
generic_file_buffered_read mm/filemap.c:1999 [inline]
generic_file_read_iter+0x5c0/0x26a0 mm/filemap.c:2273
ext4_file_read_iter+0x14b/0x330 fs/ext4/file.c:76
call_read_iter include/linux/fs.h:1771 [inline]
new_sync_read fs/read_write.c:401 [inline]
__vfs_read+0x44b/0x610 fs/read_write.c:413
integrity_kernel_read+0x11b/0x1b0 security/integrity/iint.c:199
ima_calc_file_hash_tfm security/integrity/ima/ima_crypto.c:381 [inline]
ima_calc_file_shash security/integrity/ima/ima_crypto.c:410 [inline]
ima_calc_file_hash+0x41d/0x810 security/integrity/ima/ima_crypto.c:475
ima_collect_measurement+0x39a/0x420 security/integrity/ima/ima_api.c:227
process_measurement+0x78a/0xb20 security/integrity/ima/ima_main.c:264
security_bprm_check+0x8d/0xa0 security/security.c:343
search_binary_handler+0x61/0x6c0 fs/exec.c:1626
exec_binprm fs/exec.c:1680 [inline]
do_execveat_common.isra.0+0xf32/0x1c70 fs/exec.c:1802
do_execve fs/exec.c:1847 [inline]
SYSC_execve fs/exec.c:1928 [inline]
SyS_execve+0x34/0x40 fs/exec.c:1923
do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292
entry_SYSCALL_64_after_hwframe+0x42/0xb7

to a HARDIRQ-irq-unsafe lock:
(&(&info->lock)->rlock){+.+.}

... which became HARDIRQ-irq-unsafe at:
...
lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3994
__raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
_raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:152
spin_lock include/linux/spinlock.h:317 [inline]
shmem_mfill_atomic_pte+0x11ba/0x1790 mm/shmem.c:2333
shmem_mcopy_atomic_pte+0x3a/0x50 mm/shmem.c:2371
mfill_atomic_pte mm/userfaultfd.c:425 [inline]
__mcopy_atomic mm/userfaultfd.c:549 [inline]
mcopy_atomic+0xc11/0x20a0 mm/userfaultfd.c:598
userfaultfd_copy fs/userfaultfd.c:1713 [inline]
userfaultfd_ioctl+0x32e/0x2f80 fs/userfaultfd.c:1858
vfs_ioctl fs/ioctl.c:46 [inline]
file_ioctl fs/ioctl.c:500 [inline]
do_vfs_ioctl+0x75a/0xfe0 fs/ioctl.c:684
SYSC_ioctl fs/ioctl.c:701 [inline]
SyS_ioctl+0x7f/0xb0 fs/ioctl.c:692
do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292
entry_SYSCALL_64_after_hwframe+0x42/0xb7

other info that might help us debug this:

Possible interrupt unsafe locking scenario:

CPU0 CPU1
---- ----
lock(&(&info->lock)->rlock);
local_irq_disable();
lock(&(&mapping->tree_lock)->rlock);
lock(&(&info->lock)->rlock);
<Interrupt>
lock(&(&mapping->tree_lock)->rlock);

*** DEADLOCK ***

5 locks held by kswapd0/1457:
#0: (shrinker_rwsem){++++}, at: [<ffffffff817232e0>] shrink_slab.part.0+0xb0/0xa50 mm/vmscan.c:474
#1: (&type->s_umount_key#31){++++}, at: [<ffffffff818bbc2b>] trylock_super+0x1b/0xe0 fs/super.c:402
#2: (&mapping->i_mmap_rwsem){++++}, at: [<ffffffff81861c7d>] i_mmap_lock_read include/linux/fs.h:483 [inline]
#2: (&mapping->i_mmap_rwsem){++++}, at: [<ffffffff81861c7d>] split_huge_page_to_list+0x28d/0x1f40 mm/huge_memory.c:2590
#3: (&(&pgdat->lru_lock)->rlock){-.-.}, at: [<ffffffff81861f19>] split_huge_page_to_list+0x529/0x1f40 mm/huge_memory.c:2620
#4: (&(&mapping->tree_lock)->rlock){-.-.}, at: [<ffffffff81861f38>] spin_lock include/linux/spinlock.h:317 [inline]
#4: (&(&mapping->tree_lock)->rlock){-.-.}, at: [<ffffffff81861f38>] split_huge_page_to_list+0x548/0x1f40 mm/huge_memory.c:2625

the dependencies between HARDIRQ-irq-safe lock and the holding lock:
-> (&(&mapping->tree_lock)->rlock){-.-.} ops: 3398234 {
IN-HARDIRQ-W at:
lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3994
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
_raw_spin_lock_irqsave+0x8c/0xbf kernel/locking/spinlock.c:160
test_clear_page_writeback+0x199/0xc20 mm/page-writeback.c:2742
end_page_writeback+0xe4/0x210 mm/filemap.c:1153
end_buffer_async_write+0x363/0x680 fs/buffer.c:377
end_bio_bh_io_sync+0xbf/0x100 fs/buffer.c:3038
bio_endio+0x315/0x670 block/bio.c:1918
req_bio_endio block/blk-core.c:204 [inline]
blk_update_request+0x27a/0x9d0 block/blk-core.c:2763
scsi_end_request+0x7d/0x9b0 drivers/scsi/scsi_lib.c:659
scsi_io_completion+0xa63/0x1590 drivers/scsi/scsi_lib.c:885
scsi_softirq_done+0x2c8/0x360 drivers/scsi/scsi_lib.c:1671
__blk_mq_complete_request+0x30b/0x6c0 block/blk-mq.c:571
blk_mq_complete_request+0x51/0x60 block/blk-mq.c:591
virtscsi_vq_done+0xa7/0x130 drivers/scsi/virtio_scsi.c:223
vring_interrupt+0x101/0x150 drivers/virtio/virtio_ring.c:951
__handle_irq_event_percpu+0x125/0x7e0 kernel/irq/handle.c:147
handle_irq_event_percpu+0x66/0x120 kernel/irq/handle.c:187
handle_irq_event+0xa2/0x12d kernel/irq/handle.c:204
handle_edge_irq+0x215/0x810 kernel/irq/chip.c:770
generic_handle_irq_desc include/linux/irqdesc.h:159 [inline]
handle_irq+0x35/0x50 arch/x86/kernel/irq_64.c:87
do_IRQ+0x93/0x1d0 arch/x86/kernel/irq.c:230
ret_from_intr+0x0/0x1e
arch_local_irq_restore arch/x86/include/asm/paravirt.h:779 [inline]
lock_is_held_type+0x17a/0x210 kernel/locking/lockdep.c:4034
radix_tree_deref_slot include/linux/radix-tree.h:238 [inline]
find_get_entry+0x2ee/0x690 mm/filemap.c:1357
pagecache_get_page+0x44/0xa10 mm/filemap.c:1465
find_get_page include/linux/pagemap.h:276 [inline]
generic_file_buffered_read mm/filemap.c:1999 [inline]
generic_file_read_iter+0x5c0/0x26a0 mm/filemap.c:2273
ext4_file_read_iter+0x14b/0x330 fs/ext4/file.c:76
call_read_iter include/linux/fs.h:1771 [inline]
new_sync_read fs/read_write.c:401 [inline]
__vfs_read+0x44b/0x610 fs/read_write.c:413
integrity_kernel_read+0x11b/0x1b0 security/integrity/iint.c:199
ima_calc_file_hash_tfm security/integrity/ima/ima_crypto.c:381 [inline]
ima_calc_file_shash security/integrity/ima/ima_crypto.c:410 [inline]
ima_calc_file_hash+0x41d/0x810 security/integrity/ima/ima_crypto.c:475
ima_collect_measurement+0x39a/0x420 security/integrity/ima/ima_api.c:227
process_measurement+0x78a/0xb20 security/integrity/ima/ima_main.c:264
security_bprm_check+0x8d/0xa0 security/security.c:343
search_binary_handler+0x61/0x6c0 fs/exec.c:1626
exec_binprm fs/exec.c:1680 [inline]
do_execveat_common.isra.0+0xf32/0x1c70 fs/exec.c:1802
do_execve fs/exec.c:1847 [inline]
SYSC_execve fs/exec.c:1928 [inline]
SyS_execve+0x34/0x40 fs/exec.c:1923
do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292
entry_SYSCALL_64_after_hwframe+0x42/0xb7
IN-SOFTIRQ-W at:
lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3994
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
_raw_spin_lock_irqsave+0x8c/0xbf kernel/locking/spinlock.c:160
test_clear_page_writeback+0x199/0xc20 mm/page-writeback.c:2742
end_page_writeback+0xe4/0x210 mm/filemap.c:1153
ext4_finish_bio+0x483/0x6e0 fs/ext4/page-io.c:118
ext4_end_bio+0x14b/0x5a0 fs/ext4/page-io.c:342
bio_endio+0x315/0x670 block/bio.c:1918
req_bio_endio block/blk-core.c:204 [inline]
blk_update_request+0x27a/0x9d0 block/blk-core.c:2763
scsi_end_request+0x7d/0x9b0 drivers/scsi/scsi_lib.c:659
scsi_io_completion+0xa63/0x1590 drivers/scsi/scsi_lib.c:885
scsi_softirq_done+0x2c8/0x360 drivers/scsi/scsi_lib.c:1671
__blk_mq_complete_request+0x30b/0x6c0 block/blk-mq.c:571
blk_mq_complete_request+0x51/0x60 block/blk-mq.c:591
virtscsi_vq_done+0xa7/0x130 drivers/scsi/virtio_scsi.c:223
vring_interrupt+0x101/0x150 drivers/virtio/virtio_ring.c:951
__handle_irq_event_percpu+0x125/0x7e0 kernel/irq/handle.c:147
handle_irq_event_percpu+0x66/0x120 kernel/irq/handle.c:187
handle_irq_event+0xa2/0x12d kernel/irq/handle.c:204
handle_edge_irq+0x215/0x810 kernel/irq/chip.c:770
generic_handle_irq_desc include/linux/irqdesc.h:159 [inline]
handle_irq+0x35/0x50 arch/x86/kernel/irq_64.c:87
do_IRQ+0x93/0x1d0 arch/x86/kernel/irq.c:230
ret_from_intr+0x0/0x1e
orc_ip arch/x86/kernel/unwind_orc.c:27 [inline]
__orc_find+0x6f/0xf0 arch/x86/kernel/unwind_orc.c:49
orc_find arch/x86/kernel/unwind_orc.c:121 [inline]
unwind_next_frame+0x5de/0x17a0 arch/x86/kernel/unwind_orc.c:348
__save_stack_trace+0x6b/0xd0 arch/x86/kernel/stacktrace.c:44
save_stack+0x32/0xa0 mm/kasan/kasan.c:447
set_track mm/kasan/kasan.c:459 [inline]
kasan_kmalloc mm/kasan/kasan.c:551 [inline]
kasan_kmalloc+0xbf/0xe0 mm/kasan/kasan.c:529
kmem_cache_alloc+0x127/0x770 mm/slab.c:3552
__build_skb+0x2e/0x2d0 net/core/skbuff.c:281
__napi_alloc_skb+0x1a4/0x2d0 net/core/skbuff.c:486
napi_alloc_skb include/linux/skbuff.h:2692 [inline]
page_to_skb+0x7a/0x730 drivers/net/virtio_net.c:323
receive_mergeable drivers/net/virtio_net.c:719 [inline]
receive_buf+0x195b/0x4480 drivers/net/virtio_net.c:824
virtnet_receive drivers/net/virtio_net.c:1098 [inline]
virtnet_poll+0x4d3/0x9b3 drivers/net/virtio_net.c:1189
napi_poll net/core/dev.c:5598 [inline]
net_rx_action+0x456/0xe90 net/core/dev.c:5664
__do_softirq+0x254/0x9bf kernel/softirq.c:288
invoke_softirq kernel/softirq.c:368 [inline]
irq_exit+0x15b/0x1a0 kernel/softirq.c:409
exiting_irq arch/x86/include/asm/apic.h:648 [inline]
do_IRQ+0x112/0x1d0 arch/x86/kernel/irq.c:242
ret_from_intr+0x0/0x1e
arch_local_irq_enable arch/x86/include/asm/paravirt.h:789 [inline]
__raw_spin_unlock_irq include/linux/spinlock_api_smp.h:168 [inline]
_raw_spin_unlock_irq+0x50/0x80 kernel/locking/spinlock.c:200
finish_lock_switch kernel/sched/sched.h:1346 [inline]
finish_task_switch+0x178/0x620 kernel/sched/core.c:2675
context_switch kernel/sched/core.c:2811 [inline]
__schedule+0x7c0/0x1ca0 kernel/sched/core.c:3384
preempt_schedule_irq+0xb0/0x140 kernel/sched/core.c:3611
retint_kernel+0x1b/0x2d
arch_local_irq_restore arch/x86/include/asm/paravirt.h:779 [inline]
lock_acquire+0x1ec/0x3f0 kernel/locking/lockdep.c:3997
fs_reclaim_acquire.part.0+0x20/0x30 mm/page_alloc.c:3551
slab_pre_alloc_hook mm/slab.h:416 [inline]
slab_alloc mm/slab.c:3376 [inline]
kmem_cache_alloc_trace+0x29/0x7b0 mm/slab.c:3616
kmalloc include/linux/slab.h:488 [inline]
tty_alloc_file drivers/tty/tty_io.c:186 [inline]
tty_open+0x125/0x9c0 drivers/tty/tty_io.c:2015
chrdev_open+0x1fc/0x540 fs/char_dev.c:423
do_dentry_open+0x732/0xe90 fs/open.c:777
vfs_open+0x105/0x220 fs/open.c:888
do_last fs/namei.c:3428 [inline]
path_openat+0x8ca/0x3c50 fs/namei.c:3569
do_filp_open+0x18e/0x250 fs/namei.c:3603
do_sys_open+0x29d/0x3f0 fs/open.c:1081
do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292
entry_SYSCALL_64_after_hwframe+0x42/0xb7
INITIAL USE at:
lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3994
__raw_spin_lock_irq include/linux/spinlock_api_smp.h:128 [inline]
_raw_spin_lock_irq+0x5b/0x80 kernel/locking/spinlock.c:168
spin_lock_irq include/linux/spinlock.h:342 [inline]
__add_to_page_cache_locked+0x286/0x870 mm/filemap.c:781
add_to_page_cache_lru+0xe9/0x300 mm/filemap.c:830
do_read_cache_page+0x6d5/0x12a0 mm/filemap.c:2703
read_mapping_page include/linux/pagemap.h:398 [inline]
read_dev_sector+0xbb/0x380 block/partition-generic.c:659
read_part_sector block/partitions/check.h:38 [inline]
adfspart_check_ICS+0xf3/0xc10 block/partitions/acorn.c:366
check_partition+0x33f/0x62d block/partitions/check.c:167
rescan_partitions+0x1e5/0x850 block/partition-generic.c:523
__blkdev_get+0x926/0x10d0 fs/block_dev.c:1503
blkdev_get+0x84/0x8a0 fs/block_dev.c:1612
register_disk block/genhd.c:616 [inline]
device_add_disk+0x897/0xd80 block/genhd.c:679
add_disk include/linux/genhd.h:396 [inline]
brd_init+0x214/0x3c9 drivers/block/brd.c:586
do_one_initcall+0x88/0x202 init/main.c:824
do_initcall_level init/main.c:890 [inline]
do_initcalls init/main.c:898 [inline]
do_basic_setup init/main.c:916 [inline]
kernel_init_freeable+0x465/0x526 init/main.c:1073
kernel_init+0xd/0x15b init/main.c:998
ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:404
}
... key at: [<ffffffff8a5a6fe0>] __key.49019+0x0/0x40
... acquired at:
lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3994
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
_raw_spin_lock_irqsave+0x8c/0xbf kernel/locking/spinlock.c:160
shmem_uncharge+0x24/0x250 mm/shmem.c:318
__split_huge_page mm/huge_memory.c:2387 [inline]
split_huge_page_to_list+0x1590/0x1f40 mm/huge_memory.c:2649
split_huge_page include/linux/huge_mm.h:141 [inline]
shmem_unused_huge_shrink+0x5ca/0x1180 mm/shmem.c:526
shmem_unused_huge_scan+0x70/0xa0 mm/shmem.c:558
super_cache_scan+0x333/0x460 fs/super.c:107
do_shrink_slab mm/vmscan.c:401 [inline]
shrink_slab.part.0+0x3bb/0xa50 mm/vmscan.c:504
shrink_slab mm/vmscan.c:468 [inline]
shrink_node+0x848/0xb60 mm/vmscan.c:2672
kswapd_shrink_node mm/vmscan.c:3299 [inline]
balance_pgdat mm/vmscan.c:3405 [inline]
kswapd+0x88d/0x14b0 mm/vmscan.c:3623
kthread+0x30d/0x420 kernel/kthread.c:232
ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:404


the dependencies between the lock to be acquired
and HARDIRQ-irq-unsafe lock:
-> (&(&info->lock)->rlock){+.+.} ops: 456203 {
HARDIRQ-ON-W at:
lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3994
__raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
_raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:152
spin_lock include/linux/spinlock.h:317 [inline]
shmem_mfill_atomic_pte+0x11ba/0x1790 mm/shmem.c:2333
shmem_mcopy_atomic_pte+0x3a/0x50 mm/shmem.c:2371
mfill_atomic_pte mm/userfaultfd.c:425 [inline]
__mcopy_atomic mm/userfaultfd.c:549 [inline]
mcopy_atomic+0xc11/0x20a0 mm/userfaultfd.c:598
userfaultfd_copy fs/userfaultfd.c:1713 [inline]
userfaultfd_ioctl+0x32e/0x2f80 fs/userfaultfd.c:1858
vfs_ioctl fs/ioctl.c:46 [inline]
file_ioctl fs/ioctl.c:500 [inline]
do_vfs_ioctl+0x75a/0xfe0 fs/ioctl.c:684
SYSC_ioctl fs/ioctl.c:701 [inline]
SyS_ioctl+0x7f/0xb0 fs/ioctl.c:692
do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292
entry_SYSCALL_64_after_hwframe+0x42/0xb7
SOFTIRQ-ON-W at:
lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3994
__raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
_raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:152
spin_lock include/linux/spinlock.h:317 [inline]
shmem_mfill_atomic_pte+0x11ba/0x1790 mm/shmem.c:2333
shmem_mcopy_atomic_pte+0x3a/0x50 mm/shmem.c:2371
mfill_atomic_pte mm/userfaultfd.c:425 [inline]
__mcopy_atomic mm/userfaultfd.c:549 [inline]
mcopy_atomic+0xc11/0x20a0 mm/userfaultfd.c:598
userfaultfd_copy fs/userfaultfd.c:1713 [inline]
userfaultfd_ioctl+0x32e/0x2f80 fs/userfaultfd.c:1858
vfs_ioctl fs/ioctl.c:46 [inline]
file_ioctl fs/ioctl.c:500 [inline]
do_vfs_ioctl+0x75a/0xfe0 fs/ioctl.c:684
SYSC_ioctl fs/ioctl.c:701 [inline]
SyS_ioctl+0x7f/0xb0 fs/ioctl.c:692
do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292
entry_SYSCALL_64_after_hwframe+0x42/0xb7
INITIAL USE at:
lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3994
__raw_spin_lock_irq include/linux/spinlock_api_smp.h:128 [inline]
_raw_spin_lock_irq+0x5b/0x80 kernel/locking/spinlock.c:168
spin_lock_irq include/linux/spinlock.h:342 [inline]
shmem_getpage_gfp+0x17c6/0x2790 mm/shmem.c:1829
shmem_getpage mm/shmem.c:131 [inline]
shmem_write_begin+0xf4/0x190 mm/shmem.c:2413
generic_perform_write+0x1c9/0x420 mm/filemap.c:3047
__generic_file_write_iter+0x227/0x590 mm/filemap.c:3172
generic_file_write_iter+0x2fa/0x650 mm/filemap.c:3200
call_write_iter include/linux/fs.h:1777 [inline]
new_sync_write fs/read_write.c:469 [inline]
__vfs_write+0x44e/0x630 fs/read_write.c:482
vfs_write+0x192/0x4e0 fs/read_write.c:544
SYSC_write fs/read_write.c:590 [inline]
SyS_write+0xf2/0x210 fs/read_write.c:582
do_syscall_64+0x1d5/0x640 arch/x86/entry/common.c:292
entry_SYSCALL_64_after_hwframe+0x42/0xb7
}
... key at: [<ffffffff8a595880>] __key.49217+0x0/0x40
... acquired at:
lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3994
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
_raw_spin_lock_irqsave+0x8c/0xbf kernel/locking/spinlock.c:160
shmem_uncharge+0x24/0x250 mm/shmem.c:318
__split_huge_page mm/huge_memory.c:2387 [inline]
split_huge_page_to_list+0x1590/0x1f40 mm/huge_memory.c:2649
split_huge_page include/linux/huge_mm.h:141 [inline]
shmem_unused_huge_shrink+0x5ca/0x1180 mm/shmem.c:526
shmem_unused_huge_scan+0x70/0xa0 mm/shmem.c:558
super_cache_scan+0x333/0x460 fs/super.c:107
do_shrink_slab mm/vmscan.c:401 [inline]
shrink_slab.part.0+0x3bb/0xa50 mm/vmscan.c:504
shrink_slab mm/vmscan.c:468 [inline]
shrink_node+0x848/0xb60 mm/vmscan.c:2672
kswapd_shrink_node mm/vmscan.c:3299 [inline]
balance_pgdat mm/vmscan.c:3405 [inline]
kswapd+0x88d/0x14b0 mm/vmscan.c:3623
kthread+0x30d/0x420 kernel/kthread.c:232
ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:404


stack backtrace:
CPU: 1 PID: 1457 Comm: kswapd0 Not tainted 4.14.174-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:17 [inline]
dump_stack+0x13e/0x194 lib/dump_stack.c:58
print_bad_irq_dependency kernel/locking/lockdep.c:1605 [inline]
check_usage.cold+0x60e/0x97b kernel/locking/lockdep.c:1637
check_irq_usage kernel/locking/lockdep.c:1693 [inline]
check_prev_add_irq kernel/locking/lockdep_states.h:7 [inline]
check_prev_add kernel/locking/lockdep.c:1906 [inline]
check_prevs_add kernel/locking/lockdep.c:2018 [inline]
validate_chain kernel/locking/lockdep.c:2460 [inline]
__lock_acquire+0x1d77/0x4620 kernel/locking/lockdep.c:3487
lock_acquire+0x170/0x3f0 kernel/locking/lockdep.c:3994
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
_raw_spin_lock_irqsave+0x8c/0xbf kernel/locking/spinlock.c:160
shmem_uncharge+0x24/0x250 mm/shmem.c:318
__split_huge_page mm/huge_memory.c:2387 [inline]
split_huge_page_to_list+0x1590/0x1f40 mm/huge_memory.c:2649
split_huge_page include/linux/huge_mm.h:141 [inline]
shmem_unused_huge_shrink+0x5ca/0x1180 mm/shmem.c:526
shmem_unused_huge_scan+0x70/0xa0 mm/shmem.c:558
super_cache_scan+0x333/0x460 fs/super.c:107
do_shrink_slab mm/vmscan.c:401 [inline]
shrink_slab.part.0+0x3bb/0xa50 mm/vmscan.c:504
shrink_slab mm/vmscan.c:468 [inline]
shrink_node+0x848/0xb60 mm/vmscan.c:2672
kswapd_shrink_node mm/vmscan.c:3299 [inline]
balance_pgdat mm/vmscan.c:3405 [inline]
kswapd+0x88d/0x14b0 mm/vmscan.c:3623
kthread+0x30d/0x420 kernel/kthread.c:232
ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:404
bridge4: port 1(bridge_slave_0) entered learning state
bridge0: port 1(bridge_slave_0) entered learning state
arp_tables: arptables: counters copy to user failed while replacing table
arp_tables: arptables: counters copy to user failed while replacing table
arp_tables: arptables: counters copy to user failed while replacing table
arp_tables: arptables: counters copy to user failed while replacing table
ip_tables: iptables: counters copy to user failed while replacing table
ip_tables: iptables: counters copy to user failed while replacing table
arp_tables: arptables: counters copy to user failed while replacing table
ip_tables: iptables: counters copy to user failed while replacing table
ip_tables: iptables: counters copy to user failed while replacing table
ip_tables: iptables: counters copy to user failed while replacing table


---
This bug is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this bug report. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

syzbot

unread,
Aug 12, 2020, 9:44:10 PM8/12/20
to syzkaller...@googlegroups.com
Auto-closing this bug as obsolete.
Crashes did not happen for a while, no reproducer and no activity.
Reply all
Reply to author
Forward
0 new messages