All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lingzhu Xiang <lxiang-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Matthew Garrett <mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>
Cc: Tony Luck <tony.luck-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>,
	Kees Cook <keescook-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>,
	Anton Vorontsov
	<cbouatmailru-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	Matt Fleming
	<matt.fleming-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Subject: EFI pstore: BUG: scheduling while atomic, and possible circular locking dependency
Date: Thu, 22 Nov 2012 10:57:40 +0800	[thread overview]
Message-ID: <50AD94A4.4030100@redhat.com> (raw)

Debug kernels generate such messages when doing EFI pstore read and write.

Kernel version ranges from 3.2 to 3.7-rc.

Always reproducible on QEMU/OVMF instances and a Thinkpad T520 laptop.

I hope this report helps.


mount pstore and crash
======================

[   83.504275] SysRq : Trigger a crash
[   83.505022] BUG: unable to handle kernel NULL pointer dereference at           (null)
[   83.505022] IP: [<ffffffff81415d86>] sysrq_handle_crash+0x16/0x20
[   83.505022] PGD 9ea4067 PUD 9e1a067 PMD 0 
[   83.505022] Oops: 0002 [#1] SMP 
[   83.505022] Modules linked in: ipt_MASQUERADE nf_conntrack_netbios_ns nf_conntrack_broadcast ip6table_mangle ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables iptable_nat nf_nat_ipv4 nf_nat iptable_mangle nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack vfat fat microcode virtio_net i2c_piix4 i2c_core
[   83.505022] CPU 2 
[   83.505022] Pid: 797, comm: bash Tainted: G        W    3.7.0-0.rc5.git2.1.fc19.x86_64 #1  
[   83.505022] RIP: 0010:[<ffffffff81415d86>]  [<ffffffff81415d86>] sysrq_handle_crash+0x16/0x20
[   83.505022] RSP: 0018:ffff88001a7abe28  EFLAGS: 00010096
[   83.505022] RAX: 000000000000000f RBX: ffffffff81cc28a0 RCX: 0000000000000000
[   83.505022] RDX: ffff880005182690 RSI: 0000000000000000 RDI: 0000000000000063
[   83.505022] RBP: ffff88001a7abe28 R08: 0000000000000001 R09: 0000000000000001
[   83.505022] R10: 0000000000000002 R11: 000000000000029c R12: 0000000000000063
[   83.505022] R13: 0000000000000282 R14: 0000000000000000 R15: 000000000000000a
[   83.505022] FS:  00007fa8d353a740(0000) GS:ffff88001b000000(0000) knlGS:0000000000000000
[   83.505022] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   83.505022] CR2: 0000000000000000 CR3: 0000000007fd3000 CR4: 00000000000406e0
[   83.505022] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   83.505022] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[   83.505022] Process bash (pid: 797, threadinfo ffff88001a7aa000, task ffff880005182690)
[   83.505022] Stack:
[   83.505022]  ffff88001a7abe68 ffffffff81416547 ffff88001a7abe68 0000000000000002
[   83.505022]  ffff8800188aa940 ffffffff814165b0 ffff880016cde2b8 ffff88001a7abf50
[   83.505022]  ffff88001a7abe98 ffffffff814165fa ffff88001a7abe98 00007fa8d3541000
[   83.505022] Call Trace:
[   83.505022]  [<ffffffff81416547>] __handle_sysrq+0x127/0x190
[   83.505022]  [<ffffffff814165b0>] ? __handle_sysrq+0x190/0x190
[   83.505022]  [<ffffffff814165fa>] write_sysrq_trigger+0x4a/0x50
[   83.505022]  [<ffffffff81242770>] proc_reg_write+0x80/0xc0
[   83.505022]  [<ffffffff811d2eff>] vfs_write+0xaf/0x190
[   83.505022]  [<ffffffff811d3255>] sys_write+0x55/0xa0
[   83.505022]  [<ffffffff816fb8d9>] system_call_fastpath+0x16/0x1b
[   83.505022] Code: c1 f7 ff ff eb d8 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 66 66 66 66 90 55 c7 05 cc f4 cb 00 01 00 00 00 48 89 e5 0f ae f8 <c6> 04 25 00 00 00 00 01 5d c3 66 66 66 66 90 55 31 c0 48 89 e5 
[   83.505022] RIP  [<ffffffff81415d86>] sysrq_handle_crash+0x16/0x20
[   83.505022]  RSP <ffff88001a7abe28>
[   83.505022] CR2: 0000000000000000
[   83.505022] ---[ end trace b0c0c16a378b5fe5 ]---
[   83.505022] BUG: sleeping function called from invalid context at mm/slub.c:928
[   83.505022] in_atomic(): 1, irqs_disabled(): 1, pid: 797, name: bash
[   83.505022] INFO: lockdep is turned off.
[   83.505022] irq event stamp: 54760
[   83.505022] hardirqs last  enabled at (54759): [<ffffffff816f2858>] retint_swapgs+0x13/0x1b
[   83.505022] hardirqs last disabled at (54760): [<ffffffff816f2392>] _raw_spin_lock_irqsave+0x32/0xb0
[   83.505022] softirqs last  enabled at (54672): [<ffffffff81072977>] __do_softirq+0x167/0x3d0
[   83.505022] softirqs last disabled at (54655): [<ffffffff816fcb7c>] call_softirq+0x1c/0x30
[   83.505022] Pid: 797, comm: bash Tainted: G      D W    3.7.0-0.rc5.git2.1.fc19.x86_64 #1
[   83.505022] Call Trace:
[   83.505022]  [<ffffffff810d59a0>] ? print_irqtrace_events+0xd0/0xe0
[   83.505022]  [<ffffffff810a401d>] __might_sleep+0x18d/0x250
[   83.505022]  [<ffffffff811b9dc7>] __kmalloc+0x67/0x2d0
[   83.505022]  [<ffffffff8156375b>] ? efivar_create_sysfs_entry+0x3b/0x1b0
[   83.505022]  [<ffffffff8156375b>] efivar_create_sysfs_entry+0x3b/0x1b0
[   83.505022]  [<ffffffff81563c03>] efi_pstore_write+0x333/0x3a0
[   83.505022]  [<ffffffff8106a3fe>] ? kmsg_dump_get_buffer+0x24e/0x2b0
[   83.505022]  [<ffffffff812ca4c5>] ? pstore_dump+0x195/0x210
[   83.505022]  [<ffffffff812ca45f>] pstore_dump+0x12f/0x210
[   83.505022]  [<ffffffff8106c459>] kmsg_dump+0xf9/0x240
[   83.505022]  [<ffffffff8106c385>] ? kmsg_dump+0x25/0x240
[   83.505022]  [<ffffffff81068a49>] oops_exit+0x29/0x30
[   83.505022]  [<ffffffff816f37c3>] oops_end+0x73/0xe0
[   83.505022]  [<ffffffff816e48bf>] no_context+0x258/0x283
[   83.505022]  [<ffffffff816e4ab4>] __bad_area_nosemaphore+0x1ca/0x1e9
[   83.505022]  [<ffffffff816e4ae6>] bad_area_nosemaphore+0x13/0x15
[   83.505022]  [<ffffffff816f67ce>] __do_page_fault+0x2ae/0x580
[   83.505022]  [<ffffffff810d258d>] ? trace_hardirqs_off+0xd/0x10
[   83.505022]  [<ffffffff816f2257>] ? _raw_spin_unlock_irqrestore+0x77/0x80
[   83.505022]  [<ffffffff8106a97d>] ? console_unlock+0x1ed/0x4a0
[   83.505022]  [<ffffffff816f6aae>] do_page_fault+0xe/0x10
[   83.505022]  [<ffffffff816f6195>] do_async_page_fault+0x35/0xa0
[   83.505022]  [<ffffffff816f2b78>] async_page_fault+0x28/0x30
[   83.505022]  [<ffffffff81415d86>] ? sysrq_handle_crash+0x16/0x20
[   83.505022]  [<ffffffff81416547>] __handle_sysrq+0x127/0x190
[   83.505022]  [<ffffffff814165b0>] ? __handle_sysrq+0x190/0x190
[   83.505022]  [<ffffffff814165fa>] write_sysrq_trigger+0x4a/0x50
[   83.505022]  [<ffffffff81242770>] proc_reg_write+0x80/0xc0
[   83.505022]  [<ffffffff811d2eff>] vfs_write+0xaf/0x190
[   83.505022]  [<ffffffff811d3255>] sys_write+0x55/0xa0
[   83.505022]  [<ffffffff816fb8d9>] system_call_fastpath+0x16/0x1b
[   83.596022] BUG: scheduling while atomic: bash/797/0x10000004
[   83.596744] INFO: lockdep is turned off.
[   83.603006] Modules linked in: ipt_MASQUERADE nf_conntrack_netbios_ns nf_conntrack_broadcast ip6table_mangle ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables iptable_nat nf_nat_ipv4 nf_nat iptable_mangle nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack vfat fat microcode virtio_net i2c_piix4 i2c_core
[   83.609408] Pid: 797, comm: bash Tainted: G      D W    3.7.0-0.rc5.git2.1.fc19.x86_64 #1
[   83.620001] Call Trace:
[   83.620461]  [<ffffffff816e570c>] __schedule_bug+0x68/0x76
[   83.621888]  [<ffffffff816f030e>] __schedule+0x99e/0xa00
[   83.623166]  [<ffffffff810a68ca>] __cond_resched+0x2a/0x40
[   83.624160]  [<ffffffff816f03ef>] _cond_resched+0x2f/0x40
[   83.625516]  [<ffffffff8116b510>] __alloc_pages_nodemask+0x2d0/0xb40
[   83.626721]  [<ffffffff816f228b>] ? _raw_spin_unlock+0x2b/0x50
[   83.627783]  [<ffffffff811b7fb7>] ? deactivate_slab+0x567/0x7d0
[   83.629012]  [<ffffffff8111efb7>] ? rcu_irq_exit+0x87/0xd0
[   83.629958]  [<ffffffff811ad3a0>] alloc_pages_current+0xb0/0x120
[   83.631013]  [<ffffffff811b7925>] ? new_slab+0x275/0x3a0
[   83.631878]  [<ffffffff811b7970>] new_slab+0x2c0/0x3a0
[   83.632752]  [<ffffffff816e8848>] __slab_alloc+0x3a2/0x58f
[   83.633697]  [<ffffffff8125492e>] ? sysfs_new_dirent+0x2e/0x130
[   83.634710]  [<ffffffff81254959>] ? sysfs_new_dirent+0x59/0x130
[   83.635719]  [<ffffffff810d1d64>] ? mutex_remove_waiter+0x44/0x120
[   83.636767]  [<ffffffff81254959>] ? sysfs_new_dirent+0x59/0x130
[   83.637767]  [<ffffffff811b9087>] kmem_cache_alloc+0x237/0x290
[   83.643006]  [<ffffffff81254959>] sysfs_new_dirent+0x59/0x130
[   83.644065]  [<ffffffff81254d0b>] ? sysfs_addrm_finish+0x1b/0x70
[   83.645256]  [<ffffffff81253b3b>] sysfs_add_file_mode+0x6b/0x110
[   83.646410]  [<ffffffff81253bf2>] sysfs_add_file+0x12/0x20
[   83.647485]  [<ffffffff81253cc6>] sysfs_create_file+0x26/0x30
[   83.653019]  [<ffffffff8134f13c>] kobject_add_internal+0x15c/0x270
[   83.654105]  [<ffffffff8134f643>] kobject_init_and_add+0x63/0x90
[   83.655228]  [<ffffffff81563844>] efivar_create_sysfs_entry+0x124/0x1b0
[   83.656753]  [<ffffffff81563c03>] efi_pstore_write+0x333/0x3a0
[   83.657932]  [<ffffffff8106a3fe>] ? kmsg_dump_get_buffer+0x24e/0x2b0
[   83.663008]  [<ffffffff812ca4c5>] ? pstore_dump+0x195/0x210
[   83.664032]  [<ffffffff812ca45f>] pstore_dump+0x12f/0x210
[   83.664993]  [<ffffffff8106c459>] kmsg_dump+0xf9/0x240
[   83.666077]  [<ffffffff8106c385>] ? kmsg_dump+0x25/0x240
[   83.667124]  [<ffffffff81068a49>] oops_exit+0x29/0x30
[   83.668147]  [<ffffffff816f37c3>] oops_end+0x73/0xe0
[   83.673005]  [<ffffffff816e48bf>] no_context+0x258/0x283
[   83.674916]  [<ffffffff816e4ab4>] __bad_area_nosemaphore+0x1ca/0x1e9
[   83.677798]  [<ffffffff816e4ae6>] bad_area_nosemaphore+0x13/0x15
[   83.680031]  [<ffffffff816f67ce>] __do_page_fault+0x2ae/0x580
[   83.681694]  [<ffffffff810d258d>] ? trace_hardirqs_off+0xd/0x10
[   83.691002]  [<ffffffff816f2257>] ? _raw_spin_unlock_irqrestore+0x77/0x80
[   83.692209]  [<ffffffff8106a97d>] ? console_unlock+0x1ed/0x4a0
[   83.693481]  [<ffffffff816f6aae>] do_page_fault+0xe/0x10
[   83.694577]  [<ffffffff816f6195>] do_async_page_fault+0x35/0xa0
[   83.695696]  [<ffffffff816f2b78>] async_page_fault+0x28/0x30
[   83.696676]  [<ffffffff81415d86>] ? sysrq_handle_crash+0x16/0x20
[   83.697674]  [<ffffffff81416547>] __handle_sysrq+0x127/0x190
[   83.699098]  [<ffffffff814165b0>] ? __handle_sysrq+0x190/0x190
[   83.700142]  [<ffffffff814165fa>] write_sysrq_trigger+0x4a/0x50
[   83.701284]  [<ffffffff81242770>] proc_reg_write+0x80/0xc0
[   83.710005]  [<ffffffff811d2eff>] vfs_write+0xaf/0x190
[   83.710998]  [<ffffffff811d3255>] sys_write+0x55/0xa0
[   83.711900]  [<ffffffff816fb8d9>] system_call_fastpath+0x16/0x1b

After reboot, mount pstore
==========================

[root@localhost ~]# mount -t pstore -o kmsg_bytes=8000 - /dev/pstore
[   36.502832] BUG: sleeping function called from invalid context at mm/slub.c:928
[   36.504379] in_atomic(): 1, irqs_disabled(): 0, pid: 851, name: mount
[   36.505652] 3 locks held by mount/851:
[   36.506355]  #0:  (&type->s_umount_key#38/1){+.+.+.}, at: [<ffffffff811d5aed>] sget+0x37d/0x640
[   36.508899]  #1:  (&psinfo->read_mutex){+.+.+.}, at: [<ffffffff812ca59b>] pstore_get_records+0x3b/0x130
[   36.510688]  #2:  (&(&efivars->lock)->rlock){+.+.+.}, at: [<ffffffff8156273d>] efi_pstore_open+0x1d/0x40
[   36.512468] Pid: 851, comm: mount Tainted: G        W    3.7.0-0.rc5.git2.1.fc19.x86_64 #1
[   36.514001] Call Trace:
[   36.514440]  [<ffffffff810a401d>] __might_sleep+0x18d/0x250
[   36.515634]  [<ffffffff811b9dc7>] __kmalloc+0x67/0x2d0
[   36.516509]  [<ffffffff81562103>] ? efi_pstore_read+0x1c3/0x220
[   36.517525]  [<ffffffff81562103>] efi_pstore_read+0x1c3/0x220
[   36.518507]  [<ffffffff812ca5f1>] pstore_get_records+0x91/0x130
[   36.519524]  [<ffffffff812eddfc>] ? selinux_d_instantiate+0x1c/0x20
[   36.520586]  [<ffffffff812c9c10>] ? pstore_get_inode+0x50/0x50
[   36.521566]  [<ffffffff812c9cb2>] pstore_fill_super+0xa2/0xc0
[   36.522542]  [<ffffffff811d6b42>] mount_single+0xb2/0xe0
[   36.523449]  [<ffffffff812c9a98>] pstore_mount+0x18/0x20
[   36.524322]  [<ffffffff811d6d63>] mount_fs+0x43/0x1b0
[   36.525360]  [<ffffffff811f4ee3>] vfs_kern_mount+0x73/0x110
[   36.526408]  [<ffffffff811f5984>] do_kern_mount+0x54/0x110
[   36.530014]  [<ffffffff811f7535>] do_mount+0x315/0x8e0
[   36.531181]  [<ffffffff811f708a>] ? copy_mount_options+0x3a/0x180
[   36.532390]  [<ffffffff811f7b8e>] sys_mount+0x8e/0xe0
[   36.533438]  [<ffffffff816fb8d9>] system_call_fastpath+0x16/0x1b
[   36.540017] BUG: scheduling while atomic: mount/851/0x10000002
[   36.541315] 3 locks held by mount/851:
[   36.541952]  #0:  (&type->s_umount_key#38/1){+.+.+.}, at: [<ffffffff811d5aed>] sget+0x37d/0x640
[   36.544260]  #1:  (&psinfo->read_mutex){+.+.+.}, at: [<ffffffff812ca59b>] pstore_get_records+0x3b/0x130
[   36.546146]  #2:  (&(&efivars->lock)->rlock){+.+.+.}, at: [<ffffffff8156273d>] efi_pstore_open+0x1d/0x40
[   36.547964] Modules linked in: ipt_MASQUERADE nf_conntrack_netbios_ns nf_conntrack_broadcast ip6table_mangle ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables iptable_nat nf_nat_ipv4 nf_nat iptable_mangle nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack vfat fat microcode i2c_piix4 i2c_core virtio_net
[   36.560478] Pid: 851, comm: mount Tainted: G        W    3.7.0-0.rc5.git2.1.fc19.x86_64 #1
[   36.562019] Call Trace:
[   36.562655]  [<ffffffff816e570c>] __schedule_bug+0x68/0x76
[   36.570017]  [<ffffffff816f030e>] __schedule+0x99e/0xa00
[   36.570915]  [<ffffffff810a68ca>] __cond_resched+0x2a/0x40
[   36.571974]  [<ffffffff816f03ef>] _cond_resched+0x2f/0x40
[   36.573279]  [<ffffffff811b9dcc>] __kmalloc+0x6c/0x2d0
[   36.574642]  [<ffffffff81562103>] ? efi_pstore_read+0x1c3/0x220
[   36.576426]  [<ffffffff81562103>] efi_pstore_read+0x1c3/0x220
[   36.577679]  [<ffffffff812ca5f1>] pstore_get_records+0x91/0x130
[   36.578981]  [<ffffffff812eddfc>] ? selinux_d_instantiate+0x1c/0x20
[   36.585520]  [<ffffffff812c9c10>] ? pstore_get_inode+0x50/0x50
[   36.586595]  [<ffffffff812c9cb2>] pstore_fill_super+0xa2/0xc0
[   36.587648]  [<ffffffff811d6b42>] mount_single+0xb2/0xe0
[   36.588625]  [<ffffffff812c9a98>] pstore_mount+0x18/0x20
[   36.590078]  [<ffffffff811d6d63>] mount_fs+0x43/0x1b0
[   36.591511]  [<ffffffff811f4ee3>] vfs_kern_mount+0x73/0x110
[   36.592847]  [<ffffffff811f5984>] do_kern_mount+0x54/0x110
[   36.600017]  [<ffffffff811f7535>] do_mount+0x315/0x8e0
[   36.601128]  [<ffffffff811f708a>] ? copy_mount_options+0x3a/0x180
[   36.602257]  [<ffffffff811f7b8e>] sys_mount+0x8e/0xe0
[   36.603221]  [<ffffffff816fb8d9>] system_call_fastpath+0x16/0x1b

After reboot, rm a pstore entry
===============================

[root@localhost ~]# rm -f /dev/pstore/dmesg-efi-9
[   55.572466] 
[   55.572767] ======================================================
[   55.573015] [ INFO: possible circular locking dependency detected ]
[   55.573015] 3.7.0-0.rc5.git2.1.fc19.x86_64 #1 Tainted: G        W   
[   55.573015] -------------------------------------------------------
[   55.573015] rm/855 is trying to acquire lock:
[   55.573015]  (&(&efivars->lock)->rlock){+.+.+.}, at: [<ffffffff815639c5>] efi_pstore_write+0xf5/0x3a0
[   55.573015] 
[   55.573015] but task is already holding lock:
[   55.573015]  (&sb->s_type->i_mutex_key#15){+.+.+.}, at: [<ffffffff811e0a53>] vfs_unlink+0x53/0x110
[   55.573015] 
[   55.573015] which lock already depends on the new lock.
[   55.573015] 
[   55.573015] 
[   55.573015] the existing dependency chain (in reverse order) is:
[   55.573015] 
-> #1 (&sb->s_type->i_mutex_key#15){+.+.+.}:
[   55.573015]        [<ffffffff810d7ee1>] lock_acquire+0xa1/0x1f0
[   55.573015]        [<ffffffff816ee226>] mutex_lock_nested+0x76/0x390
[   55.573015]        [<ffffffff812ca0dc>] pstore_mkfile+0x1bc/0x390
[   55.573015]        [<ffffffff812ca621>] pstore_get_records+0xc1/0x130
[   55.573015]        [<ffffffff812c9cb2>] pstore_fill_super+0xa2/0xc0
[   55.573015]        [<ffffffff811d6b42>] mount_single+0xb2/0xe0
[   55.573015]        [<ffffffff812c9a98>] pstore_mount+0x18/0x20
[   55.573015]        [<ffffffff811d6d63>] mount_fs+0x43/0x1b0
[   55.573015]        [<ffffffff811f4ee3>] vfs_kern_mount+0x73/0x110
[   55.573015]        [<ffffffff811f5984>] do_kern_mount+0x54/0x110
[   55.573015]        [<ffffffff811f7535>] do_mount+0x315/0x8e0
[   55.573015]        [<ffffffff811f7b8e>] sys_mount+0x8e/0xe0
[   55.573015]        [<ffffffff816fb8d9>] system_call_fastpath+0x16/0x1b
[   55.573015] 
-> #0 (&(&efivars->lock)->rlock){+.+.+.}:
[   55.573015]        [<ffffffff810d775f>] __lock_acquire+0x1aff/0x1bb0
[   55.573015]        [<ffffffff810d7ee1>] lock_acquire+0xa1/0x1f0
[   55.573015]        [<ffffffff816f17a6>] _raw_spin_lock+0x46/0x80
[   55.573015]        [<ffffffff815639c5>] efi_pstore_write+0xf5/0x3a0
[   55.573015]        [<ffffffff81563c95>] efi_pstore_erase+0x25/0x30
[   55.573015]        [<ffffffff812c9adf>] pstore_unlink+0x3f/0x60
[   55.573015]        [<ffffffff811e0a9e>] vfs_unlink+0x9e/0x110
[   55.573015]        [<ffffffff811e0c11>] do_unlinkat+0x101/0x1b0
[   55.573015]        [<ffffffff811e368b>] sys_unlinkat+0x1b/0x40
[   55.573015]        [<ffffffff816fb8d9>] system_call_fastpath+0x16/0x1b
[   55.573015] 
[   55.573015] other info that might help us debug this:
[   55.573015] 
[   55.573015]  Possible unsafe locking scenario:
[   55.573015] 
[   55.573015]        CPU0                    CPU1
[   55.573015]        ----                    ----
[   55.573015]   lock(&sb->s_type->i_mutex_key#15);
[   55.573015]                                lock(&(&efivars->lock)->rlock);
[   55.573015]                                lock(&sb->s_type->i_mutex_key#15);
[   55.573015]   lock(&(&efivars->lock)->rlock);
[   55.573015] 
[   55.573015]  *** DEADLOCK ***
[   55.573015] 
[   55.573015] 3 locks held by rm/855:
[   55.573015]  #0:  (sb_writers#12){.+.+..}, at: [<ffffffff811f5c24>] mnt_want_write+0x24/0x50
[   55.573015]  #1:  (&sb->s_type->i_mutex_key#15/1){+.+...}, at: [<ffffffff811e0bbb>] do_unlinkat+0xab/0x1b0
[   55.573015]  #2:  (&sb->s_type->i_mutex_key#15){+.+.+.}, at: [<ffffffff811e0a53>] vfs_unlink+0x53/0x110
[   55.573015] 
[   55.573015] stack backtrace:
[   55.573015] Pid: 855, comm: rm Tainted: G        W    3.7.0-0.rc5.git2.1.fc19.x86_64 #1
[   55.573015] Call Trace:
[   55.573015]  [<ffffffff816e608f>] print_circular_bug+0x1fb/0x20c
[   55.573015]  [<ffffffff810d775f>] __lock_acquire+0x1aff/0x1bb0
[   55.573015]  [<ffffffff81356bdb>] ? number.isra.2+0x35b/0x390
[   55.573015]  [<ffffffff810d7ee1>] lock_acquire+0xa1/0x1f0
[   55.573015]  [<ffffffff815639c5>] ? efi_pstore_write+0xf5/0x3a0
[   55.573015]  [<ffffffff816f17a6>] _raw_spin_lock+0x46/0x80
[   55.573015]  [<ffffffff815639c5>] ? efi_pstore_write+0xf5/0x3a0
[   55.573015]  [<ffffffff815639c5>] efi_pstore_write+0xf5/0x3a0
[   55.573015]  [<ffffffff810d258d>] ? trace_hardirqs_off+0xd/0x10
[   55.573015]  [<ffffffff810ace0f>] ? local_clock+0x6f/0x80
[   55.573015]  [<ffffffff810d2f0f>] ? lock_release_holdtime.part.26+0xf/0x180
[   55.573015]  [<ffffffff812e5ccb>] ? avc_has_perm_flags+0x17b/0x2c0
[   55.573015]  [<ffffffff812e5b79>] ? avc_has_perm_flags+0x29/0x2c0
[   55.573015]  [<ffffffff81563c95>] efi_pstore_erase+0x25/0x30
[   55.573015]  [<ffffffff812c9adf>] pstore_unlink+0x3f/0x60
[   55.573015]  [<ffffffff811e0a9e>] vfs_unlink+0x9e/0x110
[   55.573015]  [<ffffffff811e0c11>] do_unlinkat+0x101/0x1b0
[   55.573015]  [<ffffffff810d8a6d>] ? trace_hardirqs_on_caller+0x10d/0x1a0
[   55.573015]  [<ffffffff8110495c>] ? __audit_syscall_entry+0xcc/0x300
[   55.573015]  [<ffffffff8135a76e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
[   55.573015]  [<ffffffff811e368b>] sys_unlinkat+0x1b/0x40
[   55.573015]  [<ffffffff816fb8d9>] system_call_fastpath+0x16/0x1b


---
Lingzhu Xiang

             reply	other threads:[~2012-11-22  2:57 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-22  2:57 Lingzhu Xiang [this message]
     [not found] ` <50AD94A4.4030100-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-11-22  4:12   ` EFI pstore: BUG: scheduling while atomic, and possible circular locking dependency Anton Vorontsov
     [not found]     ` <20121122041239.GA24623-SAfYLu58TvsVgZ49a2IoEzcLetGT9WKNKwcig+XE9tjR7s880joybQ@public.gmane.org>
2012-11-22  7:32       ` Lingzhu Xiang
     [not found]         ` <50ADD509.2060800-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2012-11-22 10:07           ` Anton Vorontsov
2012-11-26 17:06       ` Seiji Aguchi
     [not found]         ` <A5ED84D3BB3A384992CBB9C77DEDA4D4149FA32A-ohthHghroY0jroPwUH3sq+6wyyQG6/Uh@public.gmane.org>
2012-11-26 17:50           ` Matt Fleming
2013-04-12 11:54   ` Lingzhu Xiang
     [not found]     ` <5167F5DE.8070804-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-04-13 14:40       ` Seiji Aguchi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50AD94A4.4030100@redhat.com \
    --to=lxiang-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=cbouatmailru-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=keescook-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
    --cc=linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=matt.fleming-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    --cc=mjg59-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org \
    --cc=tony.luck-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.