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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html