aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/irq.c
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2012-05-14 12:06:09 +0200
committerJan Beulich <jbeulich@suse.com>2012-05-14 12:06:09 +0200
commit98e10364bde098e12104caa4f566b17d05f8b791 (patch)
tree6832ceadb99101200ca89704bd5c7717781f4a25 /xen/arch/x86/irq.c
parent5982b476f89d08fefac1dda363afda0b09a2bafc (diff)
downloadxen-98e10364bde098e12104caa4f566b17d05f8b791.tar.gz
xen-98e10364bde098e12104caa4f566b17d05f8b791.tar.bz2
xen-98e10364bde098e12104caa4f566b17d05f8b791.zip
x86/irq: fix locking for c/s 24707:96987c324a4f debugging code
Without this, dump_irqs() may try to acquire the lock the caller is currently holding. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
Diffstat (limited to 'xen/arch/x86/irq.c')
-rw-r--r--xen/arch/x86/irq.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 425af20387..2fc676b716 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -668,6 +668,7 @@ void irq_move_cleanup_interrupt(struct cpu_user_regs *regs)
{
if ( unlikely(!test_bit(vector, desc->arch.used_vectors)) )
{
+ spin_unlock(&desc->lock);
bitmap_scnlistprintf(keyhandler_scratch,
sizeof(keyhandler_scratch),
desc->arch.used_vectors->_bits,