lkml.org 
[lkml]   [2018]   [Apr]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectWARNING: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected
From
Hello,

syzbot hit the following crash on upstream commit
285848b0f4074f04ab606f1e5dca296482033d54 (Sun Apr 22 04:20:48 2018 +0000)
Merge tag 'random_for_linus_stable' of
git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random
syzbot dashboard link:
https://syzkaller.appspot.com/bug?extid=e1670f554caa60fb147b

So far this crash happened 398 times on upstream.
C reproducer: https://syzkaller.appspot.com/x/repro.c?id=6457007586410496
syzkaller reproducer:
https://syzkaller.appspot.com/x/repro.syz?id=5576436211515392
Raw console output:
https://syzkaller.appspot.com/x/log.txt?id=6327380104708096
Kernel config:
https://syzkaller.appspot.com/x/.config?id=1808800213120130118
compiler: gcc (GCC) 8.0.1 20180413 (experimental)

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+e1670f554caa60fb147b@syzkaller.appspotmail.com
It will help syzbot understand when the bug is fixed. See footer for
details.
If you forward the report, please keep this part and the footer.


=====================================================
WARNING: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected
4.17.0-rc1+ #12 Not tainted
-----------------------------------------------------
syzkaller880831/4534 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
(ptrval) (fs_reclaim){+.+.}, at:
fs_reclaim_acquire.part.82+0x0/0x30 mm/page_alloc.c:463

and this task is already holding:
(ptrval) (&(&dev->event_lock)->rlock){-.-.}, at:
input_inject_event+0xe0/0x3ed drivers/input/input.c:461
which would create a new lock dependency:
(&(&dev->event_lock)->rlock){-.-.} -> (fs_reclaim){+.+.}

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

... which became HARDIRQ-irq-safe at:
lock_acquire+0x1dc/0x520 kernel/locking/lockdep.c:3920
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
_raw_spin_lock_irqsave+0x96/0xc0 kernel/locking/spinlock.c:152
input_event+0x67/0xa0 drivers/input/input.c:435
input_report_key include/linux/input.h:393 [inline]
psmouse_report_standard_buttons+0x31/0x90
drivers/input/mouse/psmouse-base.c:127
psmouse_report_standard_packet drivers/input/mouse/psmouse-base.c:145
[inline]
psmouse_process_byte+0x1ef/0x710 drivers/input/mouse/psmouse-base.c:236
psmouse_handle_byte+0x4a/0x570 drivers/input/mouse/psmouse-base.c:278
psmouse_interrupt+0x38a/0x1420 drivers/input/mouse/psmouse-base.c:428
serio_interrupt+0x98/0x160 drivers/input/serio/serio.c:1018
i8042_interrupt+0x385/0x5e0 drivers/input/serio/i8042.c:586
__handle_irq_event_percpu+0x1c0/0xad0 kernel/irq/handle.c:149
handle_irq_event_percpu+0x98/0x1c0 kernel/irq/handle.c:189
handle_irq_event+0xa7/0x135 kernel/irq/handle.c:206
handle_edge_irq+0x20f/0x870 kernel/irq/chip.c:791
generic_handle_irq_desc include/linux/irqdesc.h:159 [inline]
handle_irq+0x18c/0x2e7 arch/x86/kernel/irq_64.c:77
do_IRQ+0x78/0x190 arch/x86/kernel/irq.c:245
ret_from_intr+0x0/0x1e
arch_local_irq_enable arch/x86/include/asm/paravirt.h:793 [inline]
__do_softirq+0x298/0xaf5 kernel/softirq.c:269
invoke_softirq kernel/softirq.c:365 [inline]
irq_exit+0x1d1/0x200 kernel/softirq.c:405
exiting_irq arch/x86/include/asm/apic.h:525 [inline]
smp_apic_timer_interrupt+0x17e/0x710 arch/x86/kernel/apic/apic.c:1052
apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:863
arch_local_irq_restore arch/x86/include/asm/paravirt.h:783 [inline]
lock_release+0x4d4/0xa10 kernel/locking/lockdep.c:3942
fs_reclaim_release.part.83+0x1c/0x20 mm/page_alloc.c:3746
fs_reclaim_release+0x14/0x20 mm/page_alloc.c:3747
slab_pre_alloc_hook mm/slab.h:419 [inline]
slab_alloc mm/slab.c:3378 [inline]
kmem_cache_alloc+0x30/0x760 mm/slab.c:3552
kmem_cache_zalloc include/linux/slab.h:691 [inline]
__kernfs_new_node+0xe7/0x580 fs/kernfs/dir.c:633
kernfs_new_node+0x80/0xf0 fs/kernfs/dir.c:679
__kernfs_create_file+0x4d/0x330 fs/kernfs/file.c:989
sysfs_add_file_mode_ns+0x21a/0x560 fs/sysfs/file.c:305
create_files fs/sysfs/group.c:62 [inline]
internal_create_group+0x282/0x970 fs/sysfs/group.c:132
sysfs_create_group fs/sysfs/group.c:154 [inline]
sysfs_create_groups+0x9b/0x150 fs/sysfs/group.c:181
device_add_groups drivers/base/core.c:1033 [inline]
device_add_attrs drivers/base/core.c:1181 [inline]
device_add+0x84d/0x16d0 drivers/base/core.c:1813
netdev_register_kobject+0x180/0x380 net/core/net-sysfs.c:1604
register_netdevice+0x997/0x11c0 net/core/dev.c:7961
register_netdev+0x30/0x50 net/core/dev.c:8076
sit_init_net+0x445/0xc50 net/ipv6/sit.c:1857
ops_init+0xff/0x550 net/core/net_namespace.c:128
__register_pernet_operations net/core/net_namespace.c:912 [inline]
register_pernet_operations+0x49a/0x9f0 net/core/net_namespace.c:987
register_pernet_device+0x2a/0x80 net/core/net_namespace.c:1074
sit_init+0x22/0x175 net/ipv6/sit.c:1914
do_one_initcall+0x127/0x913 init/main.c:883
do_initcall_level init/main.c:951 [inline]
do_initcalls init/main.c:959 [inline]
do_basic_setup init/main.c:977 [inline]
kernel_init_freeable+0x49b/0x58e init/main.c:1127
kernel_init+0x11/0x1b3 init/main.c:1053
ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:412

to a HARDIRQ-irq-unsafe lock:
(fs_reclaim){+.+.}

... which became HARDIRQ-irq-unsafe at:
...
lock_acquire+0x1dc/0x520 kernel/locking/lockdep.c:3920
fs_reclaim_acquire.part.82+0x24/0x30 mm/page_alloc.c:3739
fs_reclaim_acquire+0x14/0x20 mm/page_alloc.c:3740
slab_pre_alloc_hook mm/slab.h:418 [inline]
slab_alloc_node mm/slab.c:3299 [inline]
kmem_cache_alloc_node_trace+0x39/0x770 mm/slab.c:3661
kmalloc_node include/linux/slab.h:550 [inline]
kzalloc_node include/linux/slab.h:712 [inline]
alloc_worker+0xbd/0x2e0 kernel/workqueue.c:1704
init_rescuer.part.25+0x1f/0x190 kernel/workqueue.c:4000
init_rescuer kernel/workqueue.c:3997 [inline]
workqueue_init+0x51f/0x7d0 kernel/workqueue.c:5732
kernel_init_freeable+0x2ad/0x58e init/main.c:1115
kernel_init+0x11/0x1b3 init/main.c:1053
ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:412

other info that might help us debug this:

Possible interrupt unsafe locking scenario:

CPU0 CPU1
---- ----
lock(fs_reclaim);
local_irq_disable();
lock(&(&dev->event_lock)->rlock);
lock(fs_reclaim);
<Interrupt>
lock(&(&dev->event_lock)->rlock);

*** DEADLOCK ***

3 locks held by syzkaller880831/4534:
#0: (ptrval) (&evdev->mutex){+.+.}, at: evdev_write+0x1cc/0x860
drivers/input/evdev.c:543
#1: (ptrval) (&(&dev->event_lock)->rlock){-.-.}, at:
input_inject_event+0xe0/0x3ed drivers/input/input.c:461
#2: (ptrval) (rcu_read_lock){....}, at: is_event_supported
drivers/input/input.c:56 [inline]
#2: (ptrval) (rcu_read_lock){....}, at:
input_inject_event+0xc5/0x3ed drivers/input/input.c:460

the dependencies between HARDIRQ-irq-safe lock and the holding lock:
-> (&(&dev->event_lock)->rlock){-.-.} ops: 1797 {
IN-HARDIRQ-W at:
lock_acquire+0x1dc/0x520 kernel/locking/lockdep.c:3920
__raw_spin_lock_irqsave
include/linux/spinlock_api_smp.h:110 [inline]
_raw_spin_lock_irqsave+0x96/0xc0
kernel/locking/spinlock.c:152
input_event+0x67/0xa0 drivers/input/input.c:435
input_report_key include/linux/input.h:393 [inline]
psmouse_report_standard_buttons+0x31/0x90
drivers/input/mouse/psmouse-base.c:127
psmouse_report_standard_packet
drivers/input/mouse/psmouse-base.c:145 [inline]
psmouse_process_byte+0x1ef/0x710
drivers/input/mouse/psmouse-base.c:236
psmouse_handle_byte+0x4a/0x570
drivers/input/mouse/psmouse-base.c:278
psmouse_interrupt+0x38a/0x1420
drivers/input/mouse/psmouse-base.c:428
serio_interrupt+0x98/0x160
drivers/input/serio/serio.c:1018
i8042_interrupt+0x385/0x5e0
drivers/input/serio/i8042.c:586
__handle_irq_event_percpu+0x1c0/0xad0
kernel/irq/handle.c:149
handle_irq_event_percpu+0x98/0x1c0
kernel/irq/handle.c:189
handle_irq_event+0xa7/0x135 kernel/irq/handle.c:206
handle_edge_irq+0x20f/0x870 kernel/irq/chip.c:791
generic_handle_irq_desc include/linux/irqdesc.h:159
[inline]
handle_irq+0x18c/0x2e7 arch/x86/kernel/irq_64.c:77
do_IRQ+0x78/0x190 arch/x86/kernel/irq.c:245
ret_from_intr+0x0/0x1e
arch_local_irq_enable
arch/x86/include/asm/paravirt.h:793 [inline]
__do_softirq+0x298/0xaf5 kernel/softirq.c:269
invoke_softirq kernel/softirq.c:365 [inline]
irq_exit+0x1d1/0x200 kernel/softirq.c:405
exiting_irq arch/x86/include/asm/apic.h:525 [inline]
smp_apic_timer_interrupt+0x17e/0x710
arch/x86/kernel/apic/apic.c:1052
apic_timer_interrupt+0xf/0x20
arch/x86/entry/entry_64.S:863
arch_local_irq_restore
arch/x86/include/asm/paravirt.h:783 [inline]
lock_release+0x4d4/0xa10 kernel/locking/lockdep.c:3942
fs_reclaim_release.part.83+0x1c/0x20
mm/page_alloc.c:3746
fs_reclaim_release+0x14/0x20 mm/page_alloc.c:3747
slab_pre_alloc_hook mm/slab.h:419 [inline]
slab_alloc mm/slab.c:3378 [inline]
kmem_cache_alloc+0x30/0x760 mm/slab.c:3552
kmem_cache_zalloc include/linux/slab.h:691 [inline]
__kernfs_new_node+0xe7/0x580 fs/kernfs/dir.c:633
kernfs_new_node+0x80/0xf0 fs/kernfs/dir.c:679
__kernfs_create_file+0x4d/0x330 fs/kernfs/file.c:989
sysfs_add_file_mode_ns+0x21a/0x560 fs/sysfs/file.c:305
create_files fs/sysfs/group.c:62 [inline]
internal_create_group+0x282/0x970 fs/sysfs/group.c:132
sysfs_create_group fs/sysfs/group.c:154 [inline]
sysfs_create_groups+0x9b/0x150 fs/sysfs/group.c:181
device_add_groups drivers/base/core.c:1033 [inline]
device_add_attrs drivers/base/core.c:1181 [inline]
device_add+0x84d/0x16d0 drivers/base/core.c:1813
netdev_register_kobject+0x180/0x380
net/core/net-sysfs.c:1604
register_netdevice+0x997/0x11c0 net/core/dev.c:7961
register_netdev+0x30/0x50 net/core/dev.c:8076
sit_init_net+0x445/0xc50 net/ipv6/sit.c:1857
ops_init+0xff/0x550 net/core/net_namespace.c:128
__register_pernet_operations
net/core/net_namespace.c:912 [inline]
register_pernet_operations+0x49a/0x9f0
net/core/net_namespace.c:987
register_pernet_device+0x2a/0x80
net/core/net_namespace.c:1074
sit_init+0x22/0x175 net/ipv6/sit.c:1914
do_one_initcall+0x127/0x913 init/main.c:883
do_initcall_level init/main.c:951 [inline]
do_initcalls init/main.c:959 [inline]
do_basic_setup init/main.c:977 [inline]
kernel_init_freeable+0x49b/0x58e init/main.c:1127
kernel_init+0x11/0x1b3 init/main.c:1053
ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:412
IN-SOFTIRQ-W at:
lock_acquire+0x1dc/0x520 kernel/locking/lockdep.c:3920
__raw_spin_lock_irqsave
include/linux/spinlock_api_smp.h:110 [inline]
_raw_spin_lock_irqsave+0x96/0xc0
kernel/locking/spinlock.c:152
input_event+0x67/0xa0 drivers/input/input.c:435
input_report_key include/linux/input.h:393 [inline]
psmouse_report_standard_buttons+0x31/0x90
drivers/input/mouse/psmouse-base.c:127
psmouse_report_standard_packet
drivers/input/mouse/psmouse-base.c:145 [inline]
psmouse_process_byte+0x1ef/0x710
drivers/input/mouse/psmouse-base.c:236
psmouse_handle_byte+0x4a/0x570
drivers/input/mouse/psmouse-base.c:278
psmouse_interrupt+0x38a/0x1420
drivers/input/mouse/psmouse-base.c:428
serio_interrupt+0x98/0x160
drivers/input/serio/serio.c:1018
i8042_interrupt+0x385/0x5e0
drivers/input/serio/i8042.c:586
__handle_irq_event_percpu+0x1c0/0xad0
kernel/irq/handle.c:149
handle_irq_event_percpu+0x98/0x1c0
kernel/irq/handle.c:189
handle_irq_event+0xa7/0x135 kernel/irq/handle.c:206
handle_edge_irq+0x20f/0x870 kernel/irq/chip.c:791
generic_handle_irq_desc include/linux/irqdesc.h:159
[inline]
handle_irq+0x18c/0x2e7 arch/x86/kernel/irq_64.c:77
do_IRQ+0x78/0x190 arch/x86/kernel/irq.c:245
ret_from_intr+0x0/0x1e
arch_local_irq_enable
arch/x86/include/asm/paravirt.h:793 [inline]
__do_softirq+0x298/0xaf5 kernel/softirq.c:269
invoke_softirq kernel/softirq.c:365 [inline]
irq_exit+0x1d1/0x200 kernel/softirq.c:405
exiting_irq arch/x86/include/asm/apic.h:525 [inline]
smp_apic_timer_interrupt+0x17e/0x710
arch/x86/kernel/apic/apic.c:1052
apic_timer_interrupt+0xf/0x20
arch/x86/entry/entry_64.S:863
arch_local_irq_restore
arch/x86/include/asm/paravirt.h:783 [inline]
lock_release+0x4d4/0xa10 kernel/locking/lockdep.c:3942
fs_reclaim_release.part.83+0x1c/0x20
mm/page_alloc.c:3746
fs_reclaim_release+0x14/0x20 mm/page_alloc.c:3747
slab_pre_alloc_hook mm/slab.h:419 [inline]
slab_alloc mm/slab.c:3378 [inline]
kmem_cache_alloc+0x30/0x760 mm/slab.c:3552
kmem_cache_zalloc include/linux/slab.h:691 [inline]
__kernfs_new_node+0xe7/0x580 fs/kernfs/dir.c:633
kernfs_new_node+0x80/0xf0 fs/kernfs/dir.c:679
__kernfs_create_file+0x4d/0x330 fs/kernfs/file.c:989
sysfs_add_file_mode_ns+0x21a/0x560 fs/sysfs/file.c:305
create_files fs/sysfs/group.c:62 [inline]
internal_create_group+0x282/0x970 fs/sysfs/group.c:132
sysfs_create_group fs/sysfs/group.c:154 [inline]
sysfs_create_groups+0x9b/0x150 fs/sysfs/group.c:181
device_add_groups drivers/base/core.c:1033 [inline]
device_add_attrs drivers/base/core.c:1181 [inline]
device_add+0x84d/0x16d0 drivers/base/core.c:1813
netdev_register_kobject+0x180/0x380
net/core/net-sysfs.c:1604
register_netdevice+0x997/0x11c0 net/core/dev.c:7961
register_netdev+0x30/0x50 net/core/dev.c:8076
sit_init_net+0x445/0xc50 net/ipv6/sit.c:1857
ops_init+0xff/0x550 net/core/net_namespace.c:128
__register_pernet_operations
net/core/net_namespace.c:912 [inline]
register_pernet_operations+0x49a/0x9f0
net/core/net_namespace.c:987
register_pernet_device+0x2a/0x80
net/core/net_namespace.c:1074
sit_init+0x22/0x175 net/ipv6/sit.c:1914
do_one_initcall+0x127/0x913 init/main.c:883
do_initcall_level init/main.c:951 [inline]
do_initcalls init/main.c:959 [inline]
do_basic_setup init/main.c:977 [inline]
kernel_init_freeable+0x49b/0x58e init/main.c:1127
kernel_init+0x11/0x1b3 init/main.c:1053
ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:412
INITIAL USE at:
lock_acquire+0x1dc/0x520 kernel/locking/lockdep.c:3920
__raw_spin_lock_irqsave
include/linux/spinlock_api_smp.h:110 [inline]
_raw_spin_lock_irqsave+0x96/0xc0
kernel/locking/spinlock.c:152
input_inject_event+0xe0/0x3ed drivers/input/input.c:461
input_leds_brightness_set+0x81/0xb0
drivers/input/input-leds.c:66
__led_set_brightness drivers/leds/led-core.c:34 [inline]
led_set_brightness_nopm+0x4c/0xe0
drivers/leds/led-core.c:261
led_set_brightness_nosleep drivers/leds/led-core.c:278
[inline]
led_set_brightness+0x113/0x220
drivers/leds/led-core.c:253
led_trigger_event+0x77/0xd0
drivers/leds/led-triggers.c:292
kbd_led_trigger_activate+0xed/0x120
drivers/tty/vt/keyboard.c:969
led_trigger_set+0x668/0x930
drivers/leds/led-triggers.c:138
led_trigger_set_default+0x10a/0x180
drivers/leds/led-triggers.c:171
of_led_classdev_register+0x485/0x640
drivers/leds/led-class.c:302
input_leds_connect+0x410/0x7c0
drivers/input/input-leds.c:143
input_attach_handler+0x1b1/0x210
drivers/input/input.c:996
input_register_device.cold.22+0xe8/0x297
drivers/input/input.c:2152
atkbd_connect+0x6fe/0x930
drivers/input/keyboard/atkbd.c:1200
serio_connect_driver+0x4f/0x70
drivers/input/serio/serio.c:63
serio_driver_probe+0x47/0x60
drivers/input/serio/serio.c:794
really_probe drivers/base/dd.c:448 [inline]
driver_probe_device+0x69b/0x960 drivers/base/dd.c:590
__driver_attach+0x1b2/0x1f0 drivers/base/dd.c:824
bus_for_each_dev+0x151/0x1d0 drivers/base/bus.c:311
driver_attach+0x3d/0x50 drivers/base/dd.c:843
serio_attach_driver drivers/input/serio/serio.c:824
[inline]
serio_handle_event+0x70a/0xb20
drivers/input/serio/serio.c:243
process_one_work+0xc1e/0x1b50 kernel/workqueue.c:2145
worker_thread+0x1cc/0x1440 kernel/workqueue.c:2279
kthread+0x345/0x410 kernel/kthread.c:238
ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:412
}
... key at: [<ffffffff8b147da0>] __key.33448+0x0/0x40
... acquired at:
lock_acquire+0x1dc/0x520 kernel/locking/lockdep.c:3920
fs_reclaim_acquire.part.82+0x24/0x30 mm/page_alloc.c:3739
fs_reclaim_acquire+0x14/0x20 mm/page_alloc.c:3740
slab_pre_alloc_hook mm/slab.h:418 [inline]
slab_alloc mm/slab.c:3378 [inline]
__do_kmalloc mm/slab.c:3716 [inline]
__kmalloc+0x45/0x760 mm/slab.c:3727
kmalloc_array include/linux/slab.h:631 [inline]
kcalloc include/linux/slab.h:642 [inline]
numa_crng_init drivers/char/random.c:798 [inline]
crng_reseed+0x427/0x920 drivers/char/random.c:923
credit_entropy_bits+0x98d/0xa30 drivers/char/random.c:708
add_timer_randomness+0x26b/0x320 drivers/char/random.c:1133
add_input_randomness+0xce/0x3e0 drivers/char/random.c:1148
input_handle_event+0xb3/0x1210 drivers/input/input.c:375
input_inject_event+0x367/0x3ed drivers/input/input.c:466
evdev_write+0x4d1/0x860 drivers/input/evdev.c:560
__vfs_write+0x10b/0x960 fs/read_write.c:485
vfs_write+0x1f8/0x560 fs/read_write.c:549
ksys_write+0xf9/0x250 fs/read_write.c:598
__do_sys_write fs/read_write.c:610 [inline]
__se_sys_write fs/read_write.c:607 [inline]
__x64_sys_write+0x73/0xb0 fs/read_write.c:607
do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x49/0xbe


the dependencies between the lock to be acquired
and HARDIRQ-irq-unsafe lock:
-> (fs_reclaim){+.+.} ops: 1058989 {
HARDIRQ-ON-W at:
lock_acquire+0x1dc/0x520 kernel/locking/lockdep.c:3920
fs_reclaim_acquire.part.82+0x24/0x30
mm/page_alloc.c:3739
fs_reclaim_acquire+0x14/0x20 mm/page_alloc.c:3740
slab_pre_alloc_hook mm/slab.h:418 [inline]
slab_alloc_node mm/slab.c:3299 [inline]
kmem_cache_alloc_node_trace+0x39/0x770 mm/slab.c:3661
kmalloc_node include/linux/slab.h:550 [inline]
kzalloc_node include/linux/slab.h:712 [inline]
alloc_worker+0xbd/0x2e0 kernel/workqueue.c:1704
init_rescuer.part.25+0x1f/0x190 kernel/workqueue.c:4000
init_rescuer kernel/workqueue.c:3997 [inline]
workqueue_init+0x51f/0x7d0 kernel/workqueue.c:5732
kernel_init_freeable+0x2ad/0x58e init/main.c:1115
kernel_init+0x11/0x1b3 init/main.c:1053
ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:412
SOFTIRQ-ON-W at:
lock_acquire+0x1dc/0x520 kernel/locking/lockdep.c:3920
fs_reclaim_acquire.part.82+0x24/0x30
mm/page_alloc.c:3739
fs_reclaim_acquire+0x14/0x20 mm/page_alloc.c:3740
slab_pre_alloc_hook mm/slab.h:418 [inline]
slab_alloc_node mm/slab.c:3299 [inline]
kmem_cache_alloc_node_trace+0x39/0x770 mm/slab.c:3661
kmalloc_node include/linux/slab.h:550 [inline]
kzalloc_node include/linux/slab.h:712 [inline]
alloc_worker+0xbd/0x2e0 kernel/workqueue.c:1704
init_rescuer.part.25+0x1f/0x190 kernel/workqueue.c:4000
init_rescuer kernel/workqueue.c:3997 [inline]
workqueue_init+0x51f/0x7d0 kernel/workqueue.c:5732
kernel_init_freeable+0x2ad/0x58e init/main.c:1115
kernel_init+0x11/0x1b3 init/main.c:1053
ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:412
INITIAL USE at:
lock_acquire+0x1dc/0x520 kernel/locking/lockdep.c:3920
fs_reclaim_acquire.part.82+0x24/0x30 mm/page_alloc.c:3739
fs_reclaim_acquire+0x14/0x20 mm/page_alloc.c:3740
slab_pre_alloc_hook mm/slab.h:418 [inline]
slab_alloc_node mm/slab.c:3299 [inline]
kmem_cache_alloc_node_trace+0x39/0x770 mm/slab.c:3661
kmalloc_node include/linux/slab.h:550 [inline]
kzalloc_node include/linux/slab.h:712 [inline]
alloc_worker+0xbd/0x2e0 kernel/workqueue.c:1704
init_rescuer.part.25+0x1f/0x190 kernel/workqueue.c:4000
init_rescuer kernel/workqueue.c:3997 [inline]
workqueue_init+0x51f/0x7d0 kernel/workqueue.c:5732
kernel_init_freeable+0x2ad/0x58e init/main.c:1115
kernel_init+0x11/0x1b3 init/main.c:1053
ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:412
}
... key at: [<ffffffff88df4620>] __fs_reclaim_map+0x0/0x40
... acquired at:
lock_acquire+0x1dc/0x520 kernel/locking/lockdep.c:3920
fs_reclaim_acquire.part.82+0x24/0x30 mm/page_alloc.c:3739
fs_reclaim_acquire+0x14/0x20 mm/page_alloc.c:3740
slab_pre_alloc_hook mm/slab.h:418 [inline]
slab_alloc mm/slab.c:3378 [inline]
__do_kmalloc mm/slab.c:3716 [inline]
__kmalloc+0x45/0x760 mm/slab.c:3727
kmalloc_array include/linux/slab.h:631 [inline]
kcalloc include/linux/slab.h:642 [inline]
numa_crng_init drivers/char/random.c:798 [inline]
crng_reseed+0x427/0x920 drivers/char/random.c:923
credit_entropy_bits+0x98d/0xa30 drivers/char/random.c:708
add_timer_randomness+0x26b/0x320 drivers/char/random.c:1133
add_input_randomness+0xce/0x3e0 drivers/char/random.c:1148
input_handle_event+0xb3/0x1210 drivers/input/input.c:375
input_inject_event+0x367/0x3ed drivers/input/input.c:466
evdev_write+0x4d1/0x860 drivers/input/evdev.c:560
__vfs_write+0x10b/0x960 fs/read_write.c:485
vfs_write+0x1f8/0x560 fs/read_write.c:549
ksys_write+0xf9/0x250 fs/read_write.c:598
__do_sys_write fs/read_write.c:610 [inline]
__se_sys_write fs/read_write.c:607 [inline]
__x64_sys_write+0x73/0xb0 fs/read_write.c:607
do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x49/0xbe


stack backtrace:
CPU: 0 PID: 4534 Comm: syzkaller880831 Not tainted 4.17.0-rc1+ #12
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1b9/0x294 lib/dump_stack.c:113
print_bad_irq_dependency kernel/locking/lockdep.c:1570 [inline]
check_usage.cold.58+0x6d5/0xac7 kernel/locking/lockdep.c:1602
check_irq_usage kernel/locking/lockdep.c:1658 [inline]
check_prev_add_irq kernel/locking/lockdep_states.h:7 [inline]
check_prev_add kernel/locking/lockdep.c:1868 [inline]
check_prevs_add kernel/locking/lockdep.c:1976 [inline]
validate_chain kernel/locking/lockdep.c:2417 [inline]
__lock_acquire+0x2417/0x5140 kernel/locking/lockdep.c:3431
lock_acquire+0x1dc/0x520 kernel/locking/lockdep.c:3920
fs_reclaim_acquire.part.82+0x24/0x30 mm/page_alloc.c:3739
fs_reclaim_acquire+0x14/0x20 mm/page_alloc.c:3740
slab_pre_alloc_hook mm/slab.h:418 [inline]
slab_alloc mm/slab.c:3378 [inline]
__do_kmalloc mm/slab.c:3716 [inline]
__kmalloc+0x45/0x760 mm/slab.c:3727
kmalloc_array include/linux/slab.h:631 [inline]
kcalloc include/linux/slab.h:642 [inline]
numa_crng_init drivers/char/random.c:798 [inline]
crng_reseed+0x427/0x920 drivers/char/random.c:923
credit_entropy_bits+0x98d/0xa30 drivers/char/random.c:708
add_timer_randomness+0x26b/0x320 drivers/char/random.c:1133
add_input_randomness+0xce/0x3e0 drivers/char/random.c:1148
input_handle_event+0xb3/0x1210 drivers/input/input.c:375
input_inject_event+0x367/0x3ed drivers/input/input.c:466
evdev_write+0x4d1/0x860 drivers/input/evdev.c:560
__vfs_write+0x10b/0x960 fs/read_write.c:485
vfs_write+0x1f8/0x560 fs/read_write.c:549
ksys_write+0xf9/0x250 fs/read_write.c:598
__do_sys_write fs/read_write.c:610 [inline]
__se_sys_write fs/read_write.c:607 [inline]
__x64_sys_write+0x73/0xb0 fs/read_write.c:607
do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x443db9
RSP: 002b:00007ffd62c88e88 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0008000040000002 RCX: 0000000000443db9
RDX: 0000000000000030 RSI: 00000000200000c0 RDI: 00000000000003ff
RBP: 746e6576652f7475 R08: 00000000004002e0 R09: 00000000004002e0
R10: 0000000000000000 R11: 0000000000000246 R12: 706e692f7665642f
R13: 0000000000401af0 R14: 0000000000000000 R15: 0000000000000000
BUG: sleeping function called from invalid context at mm/slab.h:421
in_atomic(): 1, irqs_disabled(): 1, pid: 4534, name: syzkaller880831
INFO: lockdep is turned off.
irq event stamp: 74430
hardirqs last enabled at (74429): [<ffffffff8100c172>]
do_syscall_64+0x92/0x800 arch/x86/entry/common.c:274
hardirqs last disabled at (74430): [<ffffffff876eada4>]
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:108 [inline]
hardirqs last disabled at (74430): [<ffffffff876eada4>]
_raw_spin_lock_irqsave+0x74/0xc0 kernel/locking/spinlock.c:152
softirqs last enabled at (74408): [<ffffffff87a00778>]
__do_softirq+0x778/0xaf5 kernel/softirq.c:311
softirqs last disabled at (74401): [<ffffffff81475041>] invoke_softirq
kernel/softirq.c:365 [inline]
softirqs last disabled at (74401): [<ffffffff81475041>]
irq_exit+0x1d1/0x200 kernel/softirq.c:405
CPU: 0 PID: 4534 Comm: syzkaller880831 Not tainted 4.17.0-rc1+ #12
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x1b9/0x294 lib/dump_stack.c:113
___might_sleep.cold.87+0x11f/0x13a kernel/sched/core.c:6188
__might_sleep+0x95/0x190 kernel/sched/core.c:6141
slab_pre_alloc_hook mm/slab.h:421 [inline]
slab_alloc mm/slab.c:3378 [inline]
__do_kmalloc mm/slab.c:3716 [inline]
__kmalloc+0x2b9/0x760 mm/slab.c:3727
kmalloc_array include/linux/slab.h:631 [inline]
kcalloc include/linux/slab.h:642 [inline]
numa_crng_init drivers/char/random.c:798 [inline]
crng_reseed+0x427/0x920 drivers/char/random.c:923
credit_entropy_bits+0x98d/0xa30 drivers/char/random.c:708
add_timer_randomness+0x26b/0x320 drivers/char/random.c:1133
add_input_randomness+0xce/0x3e0 drivers/char/random.c:1148
input_handle_event+0xb3/0x1210 drivers/input/input.c:375
input_inject_event+0x367/0x3ed drivers/input/input.c:466
evdev_write+0x4d1/0x860 drivers/input/evdev.c:560
__vfs_write+0x10b/0x960 fs/read_write.c:485
vfs_write+0x1f8/0x560 fs/read_write.c:549
ksys_write+0xf9/0x250 fs/read_write.c:598
__do_sys_write fs/read_write.c:610 [inline]
__se_sys_write fs/read_write.c:607 [inline]
__x64_sys_write+0x73/0xb0 fs/read_write.c:607
do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x443db9
RSP: 002b:00007ffd62c88e88 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0008000040000002 RCX: 0000000000443db9
RDX: 0000000000000030 RSI: 00000000200000c0 RDI: 00000000000003ff
RBP: 746e6576652f7475 R08: 00000000004002e0 R09: 00000000004002e0
R10: 0000000000000000 R11: 0000000000000246 R12: 706e692f7665642f
R13: 0000000000401af0 R14: 0000000000000000 R15: 0000000000000000
random: crng init done


---
This bug is generated by a dumb bot. It may contain errors.
See https://goo.gl/tpsmEJ for details.
Direct all questions to syzkaller@googlegroups.com.

syzbot will keep track of this bug report.
If you forgot to add the Reported-by tag, once the fix for this bug is
merged
into any tree, please reply to this email with:
#syz fix: exact-commit-title
If you want to test a patch for this bug, please reply with:
#syz test: git://repo/address.git branch
and provide the patch inline or as an attachment.
To mark this as a duplicate of another syzbot report, please reply with:
#syz dup: exact-subject-of-another-report
If it's a one-off invalid bug report, please reply with:
#syz invalid
Note: if the crash happens again, it will cause creation of a new bug
report.
Note: all commands must start from beginning of the line in the email body.

\
 
 \ /
  Last update: 2018-04-23 04:02    [W:0.110 / U:0.160 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site