Please apply upstream 1401c00e59ea021c575f74612fe2dbba36d6a4ee to
linux-3.14.y stable.
Since upstream commit 30b03d05e07467b8c6ec683ea96b5bffcbcd3931
("xen/gntdevt: Fix race condition in gntdev_release()") was applied to
the linux-3.14.y stable tree, a lockdep oops occurs whenever a PV DomU
shuts down:
# xl destroy myvm
(XEN) irq.c:2136: dom1: forcing unbind of pirq 17
[ 67.525247] device vif1.0 left promiscuous mode
[ 67.548408] INFO: trying to register non-static key.
[ 67.551747] lock:ffff88000377cb88 key:ffff88000377cb88.
[ 67.555684] the code is fine but needs lockdep annotation.
[ 67.559092] turning off the locking correctness validator.
[ 67.562817] CPU: 0 PID: 1463 Comm: qemu-system-i38 Tainted: GF
3.14.51-grsec-xxx #1
[ 67.568435] Hardware name: VMware, Inc. VMware Virtual
Platform/440BX Desktop Reference Platform, BIOS 6.00 05/20/2014
[ 67.575870] 0000000000000000 ffff880064597a68 ffffffff8166f0c2
ffff88000377cb88
[ 67.580577] ffff880064597a80 ffffffff8166c417 ffff8800673baea0
ffff880064597b60
[ 67.585132] ffffffff810cba03 ffff880064597aa0 ffff8800673baea0
ffff8800673baea0
[ 67.589828] Call Trace:
[ 67.591556] [<ffffffff8166f0c2>] dump_stack+0x45/0x56
[ 67.595172] [<ffffffff8166c417>] register_lock_class.part.41+0x50/0x55
[ 67.599770] [<ffffffff810cba03>] __lock_acquire+0x2103/0x2190
[ 67.603342] [<ffffffff810c9ddd>] ? __lock_acquire+0x4dd/0x2190
[ 67.607555] [<ffffffff810ccbcb>] lock_acquire+0xcb/0x190
[ 67.611225] [<ffffffff81428851>] ? gntdev_release+0x31/0xd0
[ 67.615569] [<ffffffff81428851>] ? gntdev_release+0x31/0xd0
[ 67.619024] [<ffffffff81672d6c>] mutex_lock_nested+0x4c/0x560
[ 67.622250] [<ffffffff81428851>] ? gntdev_release+0x31/0xd0
[ 67.625653] [<ffffffff8121229e>] ? mntput_no_expire+0x4e/0x240
[ 67.628919] [<ffffffff810cce99>] ? lock_release+0x129/0x330
[ 67.631940] [<ffffffff81428851>] gntdev_release+0x31/0xd0
[ 67.635500] [<ffffffff811ed361>] __fput+0xd1/0x240
[ 67.638554] [<ffffffff811ed51e>] ____fput+0xe/0x10
[ 67.641586] [<ffffffff81092b14>] task_work_run+0xd4/0xf0
[ 67.645361] [<ffffffff8106dc32>] do_exit+0x2f2/0xac0
[ 67.649019] [<ffffffff8101ed13>] ? sched_clock+0x13/0x30
[ 67.652862] [<ffffffff8167736c>] ? _raw_spin_unlock_irq+0x2c/0x50
[ 67.657167] [<ffffffff8106e48e>] do_group_exit+0x4e/0xc0
[ 67.661725] [<ffffffff81081d33>] get_signal_to_deliver+0x253/0x680
[ 67.665797] [<ffffffff81015197>] do_signal+0x57/0xbf0
[ 67.669100] [<ffffffff8119afc0>] ? might_fault+0x40/0xa0
[ 67.672846] [<ffffffff81015d91>] do_notify_resume+0x61/0xa0
[ 67.676762] [<ffffffff81681c01>] int_signal+0x12/0x17
[ 67.680546] BUG: unable to handle kernel NULL pointer dereference
at (nil)
[ 67.686141] IP: [<ffffffff81396a20>] __list_add_debug+0x10/0x80
[ 67.690156] PGD 0
[ 67.691664] Oops: 0000 [#1] SMP
[ 67.693686] Modules linked in: xt_physdev(F) xen_netback(F)
xen_pciback(F) dm_crypt(F) algif_skcipher(F) af_alg(F) openvswitch(F)
vxlan(F) gre(F) libcrc32c(F) nfsd(F) auth_rpcgss(F) nfs_acl(F) nfs(F)
lockd(F) fscache(F) sunrpc(F) coretemp(F) crc32_pclmul(F)
ghash_clmulni_intel(F) aesni_intel(F) aes_x86_64(F) lrw(F) gf128mul(F)
glue_helper(F) ablk_helper(F) cryptd(F) xt_LOG(F) xt_limit(F)
xt_tcpudp(F) nf_conntrack_ipv4(F) nf_defrag_ipv4(F) xt_conntrack(F)
nf_conntrack(F) iptable_filter(F) ip_tables(F) x_tables(F) squashfs(F)
ahci(F) libahci(F)
[ 67.729262] CPU: 0 PID: 1463 Comm: qemu-system-i38 Tainted: GF
3.14.51-grsec-xxx #1
[ 67.735098] Hardware name: VMware, Inc. VMware Virtual
Platform/440BX Desktop Reference Platform, BIOS 6.00 05/20/2014
[ 67.742497] task: ffff8800673baea0 ti: ffff8800673bb5a8 task.ti:
ffff8800673bb5a8
[ 67.748262] RIP: e030:[<ffffffff81396a20>] [<ffffffff81396a20>]
__list_add_debug+0x10/0x80
[ 67.754546] RSP: e02b:ffff880064597ba0 EFLAGS: 00010046
[ 67.758338] RAX: ffff88000377cb60 RBX: ffff880064597bf0 RCX: 0000000000000000
[ 67.764073] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff880064597bf0
[ 67.768405] RBP: ffff880064597ba0 R08: 0000000000000000 R09: 0000000000000000
[ 67.772565] R10: ffff880064597bf0 R11: 00000000000002b5 R12: 0000000000000000
[ 67.777059] R13: ffff88000377cb60 R14: 0000000000000200 R15: ffffffff81428851
[ 67.781471] FS: 00006bbfdbfff700(0000) GS:ffff88007ca00000(0000)
knlGS:0000000000000000
[ 67.786635] CS: e033 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 67.790102] CR2: 0000000000000000 CR3: 0000000001697000 CR4: 0000000000042620
[ 67.794229] Stack:
[ 67.795473] ffff880064597bc8 ffffffff81396aa7 ffff88000377cb10
ffff88000377cb18
[ 67.799782] ffff8800673baea0 ffff880064597c38 ffffffff81672e33
ffffffff81428851
[ 67.805223] ffff88000377cb60 ffff88000377cb88 ffff880064597bf0
ffff880064597bf0
[ 67.811023] Call Trace:
[ 67.812823] [<ffffffff81396aa7>] __list_add+0x17/0x40
[ 67.816665] [<ffffffff81672e33>] mutex_lock_nested+0x113/0x560
[ 67.820162] [<ffffffff81428851>] ? gntdev_release+0x31/0xd0
[ 67.823506] [<ffffffff81428851>] gntdev_release+0x31/0xd0
[ 67.827264] [<ffffffff811ed361>] __fput+0xd1/0x240
[ 67.830993] [<ffffffff811ed51e>] ____fput+0xe/0x10
[ 67.834210] [<ffffffff81092b14>] task_work_run+0xd4/0xf0
[ 67.838243] [<ffffffff8106dc32>] do_exit+0x2f2/0xac0
[ 67.841233] [<ffffffff8101ed13>] ? sched_clock+0x13/0x30
[ 67.845049] [<ffffffff8167736c>] ? _raw_spin_unlock_irq+0x2c/0x50
[ 67.849413] [<ffffffff8106e48e>] do_group_exit+0x4e/0xc0
[ 67.853271] [<ffffffff81081d33>] get_signal_to_deliver+0x253/0x680
[ 67.856624] [<ffffffff81015197>] do_signal+0x57/0xbf0
[ 67.859608] [<ffffffff8119afc0>] ? might_fault+0x40/0xa0
[ 67.863242] [<ffffffff81015d91>] do_notify_resume+0x61/0xa0
[ 67.866266] [<ffffffff81681c01>] int_signal+0x12/0x17
[ 67.869163] Code: 47 08 55 48 89 42 08 48 89 e5 48 89 10 48 89 3f
48 89 7f 08 5d c3 0f 1f 44 00 00 55 48 89 d0 48 8b 52 08 48 89 e5 48
39 f2 75 20 <48> 8b 32 48 39 f0 75 30 48 39 c7 74 4b 48 39 fa 74 46 b8
01 00
[ 67.887882] RIP [<ffffffff81396a20>] __list_add_debug+0x10/0x80
[ 67.891678] RSP <ffff880064597ba0>
[ 67.893746] CR2: 0000000000000000
[ 67.896286] ---[ end trace 6f0e0f0d650d3e2d ]---
Per http://lkml.iu.edu/hypermail/linux/kernel/1508.3/01274.html,
upstream commit 1401c00e59ea021c575f74612fe2dbba36d6a4ee is a
prerequisite for the gntdev_release() change. I applied the commit to
my own tree and verified that the oops goes away.
--Ed
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html