tty: sleeping function in invalid in context do_con_write and deadlock in gsm_control_retransmit
From: Dmitry Vyukov
Date: Sat Sep 03 2016 - 07:07:58 EST
Hello,
While running syzkaller fuzzer on
0f98f121e1670eaa2a2fbb675e07d6ba7f0e146f of linux-next, I've for the
following splash. Note there are 2 separate bugs (but maybe related):
BUG: sleeping function called from invalid context at drivers/tty/vt/vt.c:2195
[ INFO: possible irq lock inversion dependency detected ]
BUG: sleeping function called from invalid context at drivers/tty/vt/vt.c:2195
in_atomic(): 1, irqs_disabled(): 1, pid: 11832, name: syz-executor
3 locks held by syz-executor/11832:
#0: (&tty->ldisc_sem){++++++}, at: [<ffffffff86e0f837>]
ldsem_down_write+0x37/0x3c drivers/tty/tty_ldsem.c:393
#1: (&(&gsm->control_lock)->rlock){......}, at: [<ffffffff8324c896>]
gsm_control_send+0x1b6/0x460 drivers/tty/n_gsm.c:1374
#2: (&(&gsm->tx_lock)->rlock){......}, at: [<ffffffff8324a87a>]
gsm_data_queue+0x3a/0xb0 drivers/tty/n_gsm.c:786
irq event stamp: 21728
hardirqs last enabled at (21727): [< inline >]
__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:162
hardirqs last enabled at (21727): [<ffffffff86e10441>]
_raw_spin_unlock_irqrestore+0x31/0xc0 kernel/locking/spinlock.c:191
hardirqs last disabled at (21728): [< inline >]
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110
hardirqs last disabled at (21728): [<ffffffff86e102e8>]
_raw_spin_lock_irqsave+0x78/0xd0 kernel/locking/spinlock.c:159
softirqs last enabled at (21418): [<ffffffff86e13c7c>]
__do_softirq+0x6cc/0xa3e kernel/softirq.c:299
softirqs last disabled at (21393): [< inline >] invoke_softirq
kernel/softirq.c:350
softirqs last disabled at (21393): [<ffffffff8139b4cf>]
irq_exit+0x18f/0x1d0 kernel/softirq.c:391
CPU: 1 PID: 11832 Comm: syz-executor Not tainted 4.8.0-rc3-next-20160825+ #8
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
ffffffff886b6fe0 ffff8800612e72d8 ffffffff82db38d9 ffffffff6b47a680
fffffbfff10d6dfc ffff88006b47a680 0000000000002e38 0000000000000000
0000000000000000 ffff88003d8f9280 ffff8800612e7300 ffffffff8140d58b
Call Trace:
[< inline >] __dump_stack lib/dump_stack.c:15
[<ffffffff82db38d9>] dump_stack+0x12e/0x185 lib/dump_stack.c:51
[<ffffffff8140d58b>] ___might_sleep+0x27b/0x3a0 kernel/sched/core.c:7644
[<ffffffff8140d740>] __might_sleep+0x90/0x1a0
[<ffffffff83285a75>] do_con_write.part.22+0xa5/0x1c30 drivers/tty/vt/vt.c:2195
[< inline >] do_con_write drivers/tty/vt/vt.c:2778
[<ffffffff83287732>] con_write+0xb2/0xc0 drivers/tty/vt/vt.c:2774
[<ffffffff83248e3e>] gsmld_output+0xce/0x1a0 drivers/tty/n_gsm.c:2217
[<ffffffff83247db3>] gsm_data_kick+0x1f3/0x6d0 drivers/tty/n_gsm.c:708
[<ffffffff8324a50f>] __gsm_data_queue.isra.5+0x5af/0x8e0
drivers/tty/n_gsm.c:770
[<ffffffff8324a89f>] gsm_data_queue+0x5f/0xb0 drivers/tty/n_gsm.c:787
[<ffffffff8324c223>] gsm_control_transmit+0x193/0x220 drivers/tty/n_gsm.c:1315
[<ffffffff8324ca68>] gsm_control_send+0x388/0x460 drivers/tty/n_gsm.c:1385
[<ffffffff832502dd>] gsm_cleanup_mux+0x1cd/0x630 drivers/tty/n_gsm.c:2055
[< inline >] gsmld_detach_gsm drivers/tty/n_gsm.c:2267
[<ffffffff83251c63>] gsmld_close+0xc3/0x190 drivers/tty/n_gsm.c:2335
[<ffffffff83239a19>] tty_ldisc_close.isra.2+0x99/0xe0
drivers/tty/tty_ldisc.c:487
[<ffffffff83239aab>] tty_ldisc_kill+0x4b/0xc0 drivers/tty/tty_ldisc.c:619
[<ffffffff8323afb3>] tty_ldisc_release+0x1b3/0x260 drivers/tty/tty_ldisc.c:787
[<ffffffff83222e41>] tty_release+0xad1/0x1310 drivers/tty/tty_io.c:1904
[<ffffffff81868bbc>] __fput+0x28c/0x780 fs/file_table.c:208
[<ffffffff81869135>] ____fput+0x15/0x20 fs/file_table.c:244
[<ffffffff813ebf63>] task_work_run+0xf3/0x170
[< inline >] exit_task_work include/linux/task_work.h:21
[<ffffffff81394218>] do_exit+0x868/0x2e70 kernel/exit.c:828
[<ffffffff81396998>] do_group_exit+0x108/0x330 kernel/exit.c:958
[<ffffffff813ba4aa>] get_signal+0x62a/0x15d0 kernel/signal.c:2307
[<ffffffff81202333>] do_signal+0x83/0x1f60 arch/x86/kernel/signal.c:805
[<ffffffff81006345>] exit_to_usermode_loop+0x1a5/0x210
arch/x86/entry/common.c:163
[< inline >] prepare_exit_to_usermode arch/x86/entry/common.c:198
[<ffffffff8100869f>] syscall_return_slowpath+0x2bf/0x340
arch/x86/entry/common.c:267
[<ffffffff86e1079c>] entry_SYSCALL_64_fastpath+0xbf/0xc1
=========================================================
[ INFO: possible irq lock inversion dependency detected ]
4.8.0-rc3-next-20160825+ #8 Tainted: G W
---------------------------------------------------------
swapper/1/0 just changed the state of lock:
(&(&gsm->control_lock)->rlock){..-...}, at: [<ffffffff8324c2d6>]
gsm_control_retransmit+0x26/0x220 drivers/tty/n_gsm.c:1334
but this lock took another, SOFTIRQ-unsafe lock in the past:
(console_lock){+.+.+.}
other info that might help us debug this:
Chain exists of:
Possible interrupt unsafe locking scenario:
CPU0 CPU1
---- ----
lock(console_lock);
local_irq_disable();
lock(&(&gsm->control_lock)->rlock);
lock(&(&gsm->tx_lock)->rlock);
<Interrupt>
lock(&(&gsm->control_lock)->rlock);
*** DEADLOCK ***
1 lock held by swapper/1/0:
#0: (((&gsm->t2_timer))){+.-...}, at: [< inline >]
lockdep_copy_map include/linux/lockdep.h:165
#0: (((&gsm->t2_timer))){+.-...}, at: [<ffffffff814fbe01>]
call_timer_fn+0xd1/0x6d0 kernel/time/timer.c:1288
the shortest dependencies between 2nd lock and 1st lock:
-> (console_lock){+.+.+.} ops: 4563 {
HARDIRQ-ON-W at:
[< inline >] mark_irqflags
kernel/locking/lockdep.c:2934
[<ffffffff8149bf29>]
__lock_acquire+0xd99/0x3410 kernel/locking/lockdep.c:3292
[<ffffffff8149f1eb>] lock_acquire+0x1db/0x450
kernel/locking/lockdep.c:3746
[<ffffffff814b3724>] console_lock+0x54/0x80
kernel/printk/printk.c:2224
[<ffffffff89705f5c>] con_init+0x17/0x5ac
drivers/tty/vt/vt.c:2966
[<ffffffff8970456a>] console_init+0x4d/0x5d
drivers/tty/tty_io.c:3585
[<ffffffff89642610>] start_kernel+0x3a3/0x660
init/main.c:587
[<ffffffff896412f4>]
x86_64_start_reservations+0x38/0x3a arch/x86/kernel/head64.c:195
[<ffffffff8964144e>]
x86_64_start_kernel+0x158/0x167 arch/x86/kernel/head64.c:176
SOFTIRQ-ON-W at:
[< inline >] mark_irqflags
kernel/locking/lockdep.c:2938
[<ffffffff8149bf8e>]
__lock_acquire+0xdfe/0x3410 kernel/locking/lockdep.c:3292
[<ffffffff8149f1eb>] lock_acquire+0x1db/0x450
kernel/locking/lockdep.c:3746
[<ffffffff814b3724>] console_lock+0x54/0x80
kernel/printk/printk.c:2224
[<ffffffff89705f5c>] con_init+0x17/0x5ac
drivers/tty/vt/vt.c:2966
[<ffffffff8970456a>] console_init+0x4d/0x5d
drivers/tty/tty_io.c:3585
[<ffffffff89642610>] start_kernel+0x3a3/0x660
init/main.c:587
[<ffffffff896412f4>]
x86_64_start_reservations+0x38/0x3a arch/x86/kernel/head64.c:195
[<ffffffff8964144e>]
x86_64_start_kernel+0x158/0x167 arch/x86/kernel/head64.c:176
RECLAIM_FS-ON-W at:
[<ffffffff8149a2e8>]
mark_held_locks+0xc8/0x120 kernel/locking/lockdep.c:2657
[< inline >] __lockdep_trace_alloc
kernel/locking/lockdep.c:2879
[<ffffffff814a0a77>]
lockdep_trace_alloc+0x1f7/0x350 kernel/locking/lockdep.c:2894
[< inline >] slab_pre_alloc_hook
mm/slab.h:392
[< inline >] slab_alloc mm/slab.c:3402
[<ffffffff81805701>]
kmem_cache_alloc_trace+0x31/0x7a0 mm/slab.c:3642
[< inline >] kmalloc include/linux/slab.h:490
[< inline >] kzalloc include/linux/slab.h:636
[<ffffffff83832232>]
device_create_groups_vargs+0x82/0x250 drivers/base/core.c:1691
[< inline >] device_create_vargs
drivers/base/core.c:1749
[<ffffffff83832517>]
device_create+0xb7/0xe0 drivers/base/core.c:1785
[<ffffffff896f3928>]
fb_console_init+0x5b/0x1fd drivers/video/console/fbcon.c:3606
[<ffffffff81002310>]
do_one_initcall+0xa0/0x2b0 init/main.c:778
[< inline >] do_initcall_level
init/main.c:844
[< inline >] do_initcalls init/main.c:852
[< inline >] do_basic_setup init/main.c:870
[<ffffffff89642d43>]
kernel_init_freeable+0x476/0x52f init/main.c:1017
[<ffffffff86df6283>] kernel_init+0x13/0x160
init/main.c:943
[<ffffffff86e1098a>]
ret_from_fork+0x2a/0x40 arch/x86/entry/entry_64.S:431
INITIAL USE at:
[<ffffffff8149b98b>]
__lock_acquire+0x7fb/0x3410 kernel/locking/lockdep.c:3296
[<ffffffff8149f1eb>] lock_acquire+0x1db/0x450
kernel/locking/lockdep.c:3746
[<ffffffff814b3724>] console_lock+0x54/0x80
kernel/printk/printk.c:2224
[<ffffffff814b9d26>]
register_console+0x3b6/0xb80 kernel/printk/printk.c:2725
[<ffffffff81378e98>]
early_console_register+0xce/0xd3 arch/x86/kernel/early_printk.c:331
[<ffffffff8968298a>]
setup_early_printk+0x14a/0x614 arch/x86/kernel/early_printk.c:350
[<ffffffff89641ab6>] do_early_param+0xc4/0x12a
init/main.c:422
[< inline >] parse_one kernel/params.c:156
[<ffffffff813efcaf>] parse_args+0x64f/0xb70
kernel/params.c:243
[<ffffffff89642203>]
parse_early_options+0x2d/0x35 init/main.c:432
[<ffffffff89642246>]
parse_early_param+0x3b/0x4c init/main.c:447
[<ffffffff896657e3>] setup_arch+0x68a/0x17a9
arch/x86/kernel/setup.c:986
[<ffffffff8964230b>] start_kernel+0x9e/0x660
init/main.c:505
[<ffffffff896412f4>]
x86_64_start_reservations+0x38/0x3a arch/x86/kernel/head64.c:195
[<ffffffff8964144e>]
x86_64_start_kernel+0x158/0x167 arch/x86/kernel/head64.c:176
}
... key at: [<ffffffff887384a0>] console_lock_dep_map+0x0/0x40
... acquired at:
[<ffffffff8149f1eb>] lock_acquire+0x1db/0x450 kernel/locking/lockdep.c:3746
[<ffffffff814b3724>] console_lock+0x54/0x80 kernel/printk/printk.c:2224
[<ffffffff83285a7f>] do_con_write.part.22+0xaf/0x1c30
drivers/tty/vt/vt.c:2197
[< inline >] do_con_write drivers/tty/vt/vt.c:2778
[<ffffffff83287732>] con_write+0xb2/0xc0 drivers/tty/vt/vt.c:2774
[<ffffffff83248e3e>] gsmld_output+0xce/0x1a0 drivers/tty/n_gsm.c:2217
[<ffffffff83247db3>] gsm_data_kick+0x1f3/0x6d0 drivers/tty/n_gsm.c:708
[<ffffffff8324a50f>] __gsm_data_queue.isra.5+0x5af/0x8e0
drivers/tty/n_gsm.c:770
[<ffffffff8324a89f>] gsm_data_queue+0x5f/0xb0 drivers/tty/n_gsm.c:787
[<ffffffff8324c223>] gsm_control_transmit+0x193/0x220
drivers/tty/n_gsm.c:1315
[<ffffffff8324ca68>] gsm_control_send+0x388/0x460 drivers/tty/n_gsm.c:1385
[<ffffffff832502dd>] gsm_cleanup_mux+0x1cd/0x630 drivers/tty/n_gsm.c:2055
[< inline >] gsmld_detach_gsm drivers/tty/n_gsm.c:2267
[<ffffffff83251c63>] gsmld_close+0xc3/0x190 drivers/tty/n_gsm.c:2335
[<ffffffff83239a19>] tty_ldisc_close.isra.2+0x99/0xe0
drivers/tty/tty_ldisc.c:487
[<ffffffff83239aab>] tty_ldisc_kill+0x4b/0xc0 drivers/tty/tty_ldisc.c:619
[<ffffffff8323afb3>] tty_ldisc_release+0x1b3/0x260
drivers/tty/tty_ldisc.c:787
[<ffffffff83222e41>] tty_release+0xad1/0x1310 drivers/tty/tty_io.c:1904
[<ffffffff81868bbc>] __fput+0x28c/0x780 fs/file_table.c:208
[<ffffffff81869135>] ____fput+0x15/0x20 fs/file_table.c:244
[<ffffffff813ebf63>] task_work_run+0xf3/0x170
[< inline >] exit_task_work include/linux/task_work.h:21
[<ffffffff81394218>] do_exit+0x868/0x2e70 kernel/exit.c:828
[<ffffffff81396998>] do_group_exit+0x108/0x330 kernel/exit.c:958
[<ffffffff813ba4aa>] get_signal+0x62a/0x15d0 kernel/signal.c:2307
[<ffffffff81202333>] do_signal+0x83/0x1f60 arch/x86/kernel/signal.c:805
[<ffffffff81006345>] exit_to_usermode_loop+0x1a5/0x210
arch/x86/entry/common.c:163
[< inline >] prepare_exit_to_usermode arch/x86/entry/common.c:198
[<ffffffff8100869f>] syscall_return_slowpath+0x2bf/0x340
arch/x86/entry/common.c:267
[<ffffffff86e1079c>] entry_SYSCALL_64_fastpath+0xbf/0xc1
-> (&(&gsm->tx_lock)->rlock){......} ops: 1 {
INITIAL USE at:
[<ffffffff8149b98b>] __lock_acquire+0x7fb/0x3410
kernel/locking/lockdep.c:3296
[<ffffffff8149f1eb>] lock_acquire+0x1db/0x450
kernel/locking/lockdep.c:3746
[< inline >] __raw_spin_lock_irqsave
include/linux/spinlock_api_smp.h:112
[<ffffffff86e1030f>]
_raw_spin_lock_irqsave+0x9f/0xd0 kernel/locking/spinlock.c:159
[<ffffffff8324a87a>] gsm_data_queue+0x3a/0xb0
drivers/tty/n_gsm.c:786
[<ffffffff8324c223>]
gsm_control_transmit+0x193/0x220 drivers/tty/n_gsm.c:1315
[<ffffffff8324ca68>] gsm_control_send+0x388/0x460
drivers/tty/n_gsm.c:1385
[<ffffffff832502dd>] gsm_cleanup_mux+0x1cd/0x630
drivers/tty/n_gsm.c:2055
[< inline >] gsmld_detach_gsm
drivers/tty/n_gsm.c:2267
[<ffffffff83251c63>] gsmld_close+0xc3/0x190
drivers/tty/n_gsm.c:2335
[<ffffffff83239a19>]
tty_ldisc_close.isra.2+0x99/0xe0 drivers/tty/tty_ldisc.c:487
[<ffffffff83239aab>] tty_ldisc_kill+0x4b/0xc0
drivers/tty/tty_ldisc.c:619
[<ffffffff8323afb3>]
tty_ldisc_release+0x1b3/0x260 drivers/tty/tty_ldisc.c:787
[<ffffffff83222e41>] tty_release+0xad1/0x1310
drivers/tty/tty_io.c:1904
[<ffffffff81868bbc>] __fput+0x28c/0x780 fs/file_table.c:208
[<ffffffff81869135>] ____fput+0x15/0x20 fs/file_table.c:244
[<ffffffff813ebf63>] task_work_run+0xf3/0x170
[< inline >] exit_task_work
include/linux/task_work.h:21
[<ffffffff81394218>] do_exit+0x868/0x2e70 kernel/exit.c:828
[<ffffffff81396998>] do_group_exit+0x108/0x330
kernel/exit.c:958
[<ffffffff813ba4aa>] get_signal+0x62a/0x15d0
kernel/signal.c:2307
[<ffffffff81202333>] do_signal+0x83/0x1f60
arch/x86/kernel/signal.c:805
[<ffffffff81006345>]
exit_to_usermode_loop+0x1a5/0x210 arch/x86/entry/common.c:163
[< inline >] prepare_exit_to_usermode
arch/x86/entry/common.c:198
[<ffffffff8100869f>]
syscall_return_slowpath+0x2bf/0x340 arch/x86/entry/common.c:267
[<ffffffff86e1079c>] entry_SYSCALL_64_fastpath+0xbf/0xc1
}
... key at: [<ffffffff8aef5fa0>] __key.52019+0x0/0x40
... acquired at:
[<ffffffff8149f1eb>] lock_acquire+0x1db/0x450 kernel/locking/lockdep.c:3746
[< inline >] __raw_spin_lock_irqsave
include/linux/spinlock_api_smp.h:112
[<ffffffff86e1030f>] _raw_spin_lock_irqsave+0x9f/0xd0
kernel/locking/spinlock.c:159
[<ffffffff8324a87a>] gsm_data_queue+0x3a/0xb0 drivers/tty/n_gsm.c:786
[<ffffffff8324c223>] gsm_control_transmit+0x193/0x220
drivers/tty/n_gsm.c:1315
[<ffffffff8324ca68>] gsm_control_send+0x388/0x460 drivers/tty/n_gsm.c:1385
[<ffffffff832502dd>] gsm_cleanup_mux+0x1cd/0x630 drivers/tty/n_gsm.c:2055
[< inline >] gsmld_detach_gsm drivers/tty/n_gsm.c:2267
[<ffffffff83251c63>] gsmld_close+0xc3/0x190 drivers/tty/n_gsm.c:2335
[<ffffffff83239a19>] tty_ldisc_close.isra.2+0x99/0xe0
drivers/tty/tty_ldisc.c:487
[<ffffffff83239aab>] tty_ldisc_kill+0x4b/0xc0 drivers/tty/tty_ldisc.c:619
[<ffffffff8323afb3>] tty_ldisc_release+0x1b3/0x260
drivers/tty/tty_ldisc.c:787
[<ffffffff83222e41>] tty_release+0xad1/0x1310 drivers/tty/tty_io.c:1904
[<ffffffff81868bbc>] __fput+0x28c/0x780 fs/file_table.c:208
[<ffffffff81869135>] ____fput+0x15/0x20 fs/file_table.c:244
[<ffffffff813ebf63>] task_work_run+0xf3/0x170
[< inline >] exit_task_work include/linux/task_work.h:21
[<ffffffff81394218>] do_exit+0x868/0x2e70 kernel/exit.c:828
[<ffffffff81396998>] do_group_exit+0x108/0x330 kernel/exit.c:958
[<ffffffff813ba4aa>] get_signal+0x62a/0x15d0 kernel/signal.c:2307
[<ffffffff81202333>] do_signal+0x83/0x1f60 arch/x86/kernel/signal.c:805
[<ffffffff81006345>] exit_to_usermode_loop+0x1a5/0x210
arch/x86/entry/common.c:163
[< inline >] prepare_exit_to_usermode arch/x86/entry/common.c:198
[<ffffffff8100869f>] syscall_return_slowpath+0x2bf/0x340
arch/x86/entry/common.c:267
[<ffffffff86e1079c>] entry_SYSCALL_64_fastpath+0xbf/0xc1
-> (&(&gsm->control_lock)->rlock){..-...} ops: 2 {
IN-SOFTIRQ-W at:
[< inline >] mark_irqflags
kernel/locking/lockdep.c:2920
[<ffffffff8149bd74>] __lock_acquire+0xbe4/0x3410
kernel/locking/lockdep.c:3292
[<ffffffff8149f1eb>] lock_acquire+0x1db/0x450
kernel/locking/lockdep.c:3746
[< inline >] __raw_spin_lock_irqsave
include/linux/spinlock_api_smp.h:112
[<ffffffff86e1030f>]
_raw_spin_lock_irqsave+0x9f/0xd0 kernel/locking/spinlock.c:159
[<ffffffff8324c2d6>]
gsm_control_retransmit+0x26/0x220 drivers/tty/n_gsm.c:1334
[<ffffffff814fbe9e>] call_timer_fn+0x16e/0x6d0
kernel/time/timer.c:1298
[< inline >] expire_timers kernel/time/timer.c:1338
[< inline >] __run_timers kernel/time/timer.c:1627
[<ffffffff814fca46>]
run_timer_softirq+0x646/0x1590 kernel/time/timer.c:1640
[<ffffffff86e1380c>] __do_softirq+0x25c/0xa3e
kernel/softirq.c:273
[< inline >] invoke_softirq kernel/softirq.c:350
[<ffffffff8139b4cf>] irq_exit+0x18f/0x1d0
kernel/softirq.c:391
[< inline >] exiting_irq
arch/x86/include/asm/apic.h:659
[<ffffffff86e1305b>]
smp_apic_timer_interrupt+0x7b/0xa0 arch/x86/kernel/apic/apic.c:958
[<ffffffff86e1210c>]
apic_timer_interrupt+0x8c/0xa0 arch/x86/entry/entry_64.S:487
[< inline >] arch_safe_halt
arch/x86/include/asm/paravirt.h:107
[<ffffffff8121dcf2>] default_idle+0x52/0x370
arch/x86/kernel/process.c:308
[<ffffffff8121f36a>] arch_cpu_idle+0xa/0x10
arch/x86/kernel/process.c:299
[<ffffffff8147bfd8>] default_idle_call+0x48/0xa0
kernel/sched/idle.c:93
[< inline >] cpuidle_idle_call
kernel/sched/idle.c:151
[< inline >] cpu_idle_loop kernel/sched/idle.c:244
[<ffffffff8147c5c2>] cpu_startup_entry+0x592/0x7b0
kernel/sched/idle.c:293
[<ffffffff81269c2a>] start_secondary+0x2fa/0x410
arch/x86/kernel/smpboot.c:263
INITIAL USE at:
[<ffffffff8149b98b>] __lock_acquire+0x7fb/0x3410
kernel/locking/lockdep.c:3296
[<ffffffff8149f1eb>] lock_acquire+0x1db/0x450
kernel/locking/lockdep.c:3746
[< inline >] __raw_spin_lock_irqsave
include/linux/spinlock_api_smp.h:112
[<ffffffff86e1030f>]
_raw_spin_lock_irqsave+0x9f/0xd0 kernel/locking/spinlock.c:159
[<ffffffff8324c896>] gsm_control_send+0x1b6/0x460
drivers/tty/n_gsm.c:1374
[<ffffffff832502dd>] gsm_cleanup_mux+0x1cd/0x630
drivers/tty/n_gsm.c:2055
[< inline >] gsmld_detach_gsm
drivers/tty/n_gsm.c:2267
[<ffffffff83251c63>] gsmld_close+0xc3/0x190
drivers/tty/n_gsm.c:2335
[<ffffffff83239a19>]
tty_ldisc_close.isra.2+0x99/0xe0 drivers/tty/tty_ldisc.c:487
[<ffffffff83239aab>] tty_ldisc_kill+0x4b/0xc0
drivers/tty/tty_ldisc.c:619
[<ffffffff8323afb3>] tty_ldisc_release+0x1b3/0x260
drivers/tty/tty_ldisc.c:787
[<ffffffff83222e41>] tty_release+0xad1/0x1310
drivers/tty/tty_io.c:1904
[<ffffffff81868bbc>] __fput+0x28c/0x780 fs/file_table.c:208
[<ffffffff81869135>] ____fput+0x15/0x20 fs/file_table.c:244
[<ffffffff813ebf63>] task_work_run+0xf3/0x170
[< inline >] exit_task_work
include/linux/task_work.h:21
[<ffffffff81394218>] do_exit+0x868/0x2e70 kernel/exit.c:828
[<ffffffff81396998>] do_group_exit+0x108/0x330
kernel/exit.c:958
[<ffffffff813ba4aa>] get_signal+0x62a/0x15d0
kernel/signal.c:2307
[<ffffffff81202333>] do_signal+0x83/0x1f60
arch/x86/kernel/signal.c:805
[<ffffffff81006345>]
exit_to_usermode_loop+0x1a5/0x210 arch/x86/entry/common.c:163
[< inline >] prepare_exit_to_usermode
arch/x86/entry/common.c:198
[<ffffffff8100869f>]
syscall_return_slowpath+0x2bf/0x340 arch/x86/entry/common.c:267
[<ffffffff86e1079c>] entry_SYSCALL_64_fastpath+0xbf/0xc1
}
... key at: [<ffffffff8aef5fe0>] __key.52018+0x0/0x40
... acquired at:
[< inline >] print_irq_inversion_bug kernel/locking/lockdep.c:149
[<ffffffff81497e0b>] check_usage_forwards+0x2bb/0x2e0
kernel/locking/lockdep.c:2494
[< inline >] mark_lock_irq kernel/locking/lockdep.c:2607
[<ffffffff81499c82>] mark_lock+0x8e2/0xe80 kernel/locking/lockdep.c:3062
[< inline >] mark_irqflags kernel/locking/lockdep.c:2920
[<ffffffff8149bd74>] __lock_acquire+0xbe4/0x3410
kernel/locking/lockdep.c:3292
[<ffffffff8149f1eb>] lock_acquire+0x1db/0x450 kernel/locking/lockdep.c:3746
[< inline >] __raw_spin_lock_irqsave
include/linux/spinlock_api_smp.h:112
[<ffffffff86e1030f>] _raw_spin_lock_irqsave+0x9f/0xd0
kernel/locking/spinlock.c:159
[<ffffffff8324c2d6>] gsm_control_retransmit+0x26/0x220
drivers/tty/n_gsm.c:1334
[<ffffffff814fbe9e>] call_timer_fn+0x16e/0x6d0 kernel/time/timer.c:1298
[< inline >] expire_timers kernel/time/timer.c:1338
[< inline >] __run_timers kernel/time/timer.c:1627
[<ffffffff814fca46>] run_timer_softirq+0x646/0x1590 kernel/time/timer.c:1640
[<ffffffff86e1380c>] __do_softirq+0x25c/0xa3e kernel/softirq.c:273
[< inline >] invoke_softirq kernel/softirq.c:350
[<ffffffff8139b4cf>] irq_exit+0x18f/0x1d0 kernel/softirq.c:391
[< inline >] exiting_irq arch/x86/include/asm/apic.h:659
[<ffffffff86e1305b>] smp_apic_timer_interrupt+0x7b/0xa0
arch/x86/kernel/apic/apic.c:958
[<ffffffff86e1210c>] apic_timer_interrupt+0x8c/0xa0
arch/x86/entry/entry_64.S:487
[< inline >] arch_safe_halt arch/x86/include/asm/paravirt.h:107
[<ffffffff8121dcf2>] default_idle+0x52/0x370 arch/x86/kernel/process.c:308
[<ffffffff8121f36a>] arch_cpu_idle+0xa/0x10 arch/x86/kernel/process.c:299
[<ffffffff8147bfd8>] default_idle_call+0x48/0xa0 kernel/sched/idle.c:93
[< inline >] cpuidle_idle_call kernel/sched/idle.c:151
[< inline >] cpu_idle_loop kernel/sched/idle.c:244
[<ffffffff8147c5c2>] cpu_startup_entry+0x592/0x7b0 kernel/sched/idle.c:293
[<ffffffff81269c2a>] start_secondary+0x2fa/0x410
arch/x86/kernel/smpboot.c:263
stack backtrace:
CPU: 1 PID: 0 Comm: swapper/1 Tainted: G W
4.8.0-rc3-next-20160825+ #8
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
ffffffff886b6fe0 ffff88003ed078c8 ffffffff82db38d9 ffffffff00000000
fffffbfff10d6dfc ffffffff8a425720 ffff88003ed079a0 ffffffff8a0e0800
ffff88003ed079b0 ffffffff8a03b8c0 ffff88003ed07920 ffffffff816d0428
Call Trace:
<IRQ> [< inline >] __dump_stack lib/dump_stack.c:15
<IRQ> [<ffffffff82db38d9>] dump_stack+0x12e/0x185 lib/dump_stack.c:51
[<ffffffff816d0428>] print_irq_inversion_bug.part.41+0x348/0x357
kernel/locking/lockdep.c:2469
[< inline >] print_irq_inversion_bug kernel/locking/lockdep.c:149
[<ffffffff81497e0b>] check_usage_forwards+0x2bb/0x2e0
kernel/locking/lockdep.c:2494
[< inline >] mark_lock_irq kernel/locking/lockdep.c:2607
[<ffffffff81499c82>] mark_lock+0x8e2/0xe80 kernel/locking/lockdep.c:3062
[< inline >] mark_irqflags kernel/locking/lockdep.c:2920
[<ffffffff8149bd74>] __lock_acquire+0xbe4/0x3410 kernel/locking/lockdep.c:3292
[<ffffffff8149f1eb>] lock_acquire+0x1db/0x450 kernel/locking/lockdep.c:3746
[< inline >] __raw_spin_lock_irqsave
include/linux/spinlock_api_smp.h:112
[<ffffffff86e1030f>] _raw_spin_lock_irqsave+0x9f/0xd0
kernel/locking/spinlock.c:159
[<ffffffff8324c2d6>] gsm_control_retransmit+0x26/0x220 drivers/tty/n_gsm.c:1334
[<ffffffff814fbe9e>] call_timer_fn+0x16e/0x6d0 kernel/time/timer.c:1298
[< inline >] expire_timers kernel/time/timer.c:1338
[< inline >] __run_timers kernel/time/timer.c:1627
[<ffffffff814fca46>] run_timer_softirq+0x646/0x1590 kernel/time/timer.c:1640
[<ffffffff86e1380c>] __do_softirq+0x25c/0xa3e kernel/softirq.c:273
[< inline >] invoke_softirq kernel/softirq.c:350
[<ffffffff8139b4cf>] irq_exit+0x18f/0x1d0 kernel/softirq.c:391
[< inline >] exiting_irq arch/x86/include/asm/apic.h:659
[<ffffffff86e1305b>] smp_apic_timer_interrupt+0x7b/0xa0
arch/x86/kernel/apic/apic.c:958
[<ffffffff86e1210c>] apic_timer_interrupt+0x8c/0xa0
arch/x86/entry/entry_64.S:487
<EOI> [<ffffffff8128f716>] ? native_safe_halt+0x6/0x10
[< inline >] arch_safe_halt arch/x86/include/asm/paravirt.h:107
[<ffffffff8121dcf2>] default_idle+0x52/0x370 arch/x86/kernel/process.c:308
[<ffffffff8121f36a>] arch_cpu_idle+0xa/0x10 arch/x86/kernel/process.c:299
[<ffffffff8147bfd8>] default_idle_call+0x48/0xa0 kernel/sched/idle.c:93
[< inline >] cpuidle_idle_call kernel/sched/idle.c:151
[< inline >] cpu_idle_loop kernel/sched/idle.c:244
[<ffffffff8147c5c2>] cpu_startup_entry+0x592/0x7b0 kernel/sched/idle.c:293
[<ffffffff81269c2a>] start_secondary+0x2fa/0x410 arch/x86/kernel/smpboot.c:263
sr 1:0:0:0: [sr0] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
sr 1:0:0:0: [sr0] tag#0 Sense Key : Not Ready [current]
sr 1:0:0:0: [sr0] tag#0 Add. Sense: Medium not present
sr 1:0:0:0: [sr0] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
blk_update_request: I/O error, dev sr0, sector 0
sr 1:0:0:0: [sr0] tag#0 unaligned transfer