[linux-next] BUG: sleeping function called from invalid context at kernel/irq/manage.c:110
From: Sergey Senozhatsky
Date: Tue Feb 28 2017 - 07:04:16 EST
Hello Thomas,
next-20170228
at resume after suspend:
[ 45.383425] PM: noirq suspend of devices complete after 16.311 msecs
[ 45.383795] ACPI: Preparing to enter system sleep state S3
[ 45.384114] PM: Saving platform NVS memory
[ 45.384167] Disabling non-boot CPUs ...
[ 45.411548] Broke affinity for irq 25
[ 45.412608] smpboot: CPU 1 is now offline
[ 45.437328] Broke affinity for irq 26
[ 45.438364] smpboot: CPU 2 is now offline
[ 45.467319] Broke affinity for irq 27
[ 45.468355] smpboot: CPU 3 is now offline
[ 45.470112] ACPI: Low-level resume complete
[ 45.470497] PM: Restoring platform NVS memory
[ 45.470906] Suspended for 6.778 seconds
...
[ 45.470914] BUG: sleeping function called from invalid context at kernel/irq/manage.c:110
[ 45.470936] in_atomic(): 0, irqs_disabled(): 1, pid: 324, name: systemd-sleep
[ 45.470950] 5 locks held by systemd-sleep/324:
[ 45.470959] #0: (sb_writers#5){.+.+.+}, at: [<ffffffff81174220>] vfs_write+0xef/0x189
[ 45.470984] #1: (&of->mutex){+.+.+.}, at: [<ffffffff811d8c47>] kernfs_fop_write+0xd7/0x169
[ 45.471007] #2: (s_active#68){.+.+.+}, at: [<ffffffff811d8c4f>] kernfs_fop_write+0xdf/0x169
[ 45.471030] #3: (pm_mutex){+.+.+.}, at: [<ffffffff810937ec>] pm_suspend+0x10d/0x68a
[ 45.471052] #4: (acpi_scan_lock){+.+.+.}, at: [<ffffffff812c60c4>] acpi_scan_lock_acquire+0x17/0x19
[ 45.471077] irq event stamp: 20382
[ 45.471084] hardirqs last enabled at (20381): [<ffffffff81163355>] kfree+0x19e/0x26a
[ 45.471101] hardirqs last disabled at (20382): [<ffffffff81092bb8>] arch_suspend_disable_irqs+0xf/0x11
[ 45.471121] softirqs last enabled at (19414): [<ffffffff81586a93>] __do_softirq+0x34b/0x454
[ 45.471139] softirqs last disabled at (19389): [<ffffffff8104c00c>] irq_exit+0x49/0x99
[ 45.471156] CPU: 0 PID: 324 Comm: systemd-sleep Not tainted 4.10.0-next-20170228-dbg-00004-gcdefdec38154-dirty #1091
[ 45.471200] Call Trace:
[ 45.471207] dump_stack+0x68/0x92
[ 45.471215] ? __synchronize_hardirq+0x31/0x54
[ 45.471225] ___might_sleep+0x206/0x21d
[ 45.471233] __might_sleep+0x77/0x7e
[ 45.471241] synchronize_irq+0x38/0x8b
[ 45.471248] ? __irq_put_desc_unlock+0x1e/0x3e
[ 45.471258] ? __disable_irq_nosync+0x44/0x4a
[ 45.471267] disable_irq+0x1c/0x1f
[ 45.471275] hpet_msi_resume+0x4e/0xa9
[ 45.471283] clockevents_tick_resume+0x14/0x19
[ 45.471292] tick_resume_local+0x32/0x53
[ 45.471300] tick_resume+0x13/0x15
[ 45.471308] timekeeping_resume+0x19d/0x1b3
[ 45.471318] syscore_resume+0x134/0x2ee
[ 45.471326] ? syscore_resume+0x134/0x2ee
[ 45.471335] suspend_devices_and_enter+0x62f/0xb14
[ 45.471345] pm_suspend+0x5f2/0x68a
[ 45.471352] state_store+0xa7/0xce
[ 45.471360] kobj_attr_store+0x10/0x1a
[ 45.471367] sysfs_kf_write+0x47/0x52
[ 45.471375] kernfs_fop_write+0x11c/0x169
[ 45.471383] __vfs_write+0x26/0xf5
[ 45.471392] ? rcu_read_lock_sched_held+0x64/0x6c
[ 45.471401] ? rcu_sync_lockdep_assert+0x2c/0x52
[ 45.471411] ? __sb_start_write+0x19b/0x1c6
[ 45.471420] vfs_write+0x100/0x189
[ 45.471427] SyS_write+0x51/0x8e
[ 45.471434] entry_SYSCALL_64_fastpath+0x18/0xad
[ 45.471443] RIP: 0033:0x7f1ddb930530
[ 45.471450] RSP: 002b:00007ffd9a3521a8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
[ 45.471467] RAX: ffffffffffffffda RBX: 00007f1ddbbedb38 RCX: 00007f1ddb930530
[ 45.471480] RDX: 0000000000000004 RSI: 0000564c49e34390 RDI: 0000000000000004
[ 45.471494] RBP: 000000000000270f R08: 0000564c49e34240 R09: 00007f1ddc226180
[ 45.471508] R10: 0000000000001010 R11: 0000000000000246 R12: 00007f1ddbbedb38
[ 45.471522] R13: 0000000000001010 R14: 0000564c49e34380 R15: 00007f1ddbbedae0
kernel/irq/manage.c:110 is
wait_event(desc->wait_for_threads, !atomic_read(&desc->threads_active));
-ss