WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] Make c/s 21089 work again with c/s 21092

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Make c/s 21089 work again with c/s 21092
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 13 Apr 2010 20:25:10 -0700
Delivery-date: Tue, 13 Apr 2010 20:25:18 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1271169507 -3600
# Node ID 0bebb5fa4f051df9b4fed4d11a723fae91bc7523
# Parent  859a372efa66e6bcba8e1fd968e521cb16da12ea
Make c/s 21089 work again with c/s 21092

Unfortunately the latter c/s' change to mpparse.c yielded the former
patch non-functional - Xen's serial port IRQ is not in IQR_DISABLED
state, yet must be allowed to get its trigger mode and polarity set
up in order for it to be usable.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
---
 xen/arch/x86/mpparse.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletion(-)

diff -r 859a372efa66 -r 0bebb5fa4f05 xen/arch/x86/mpparse.c
--- a/xen/arch/x86/mpparse.c    Tue Apr 13 13:40:58 2010 +0100
+++ b/xen/arch/x86/mpparse.c    Tue Apr 13 15:38:27 2010 +0100
@@ -1103,6 +1103,8 @@ int mp_register_gsi (u32 gsi, int trigge
        int                     ioapic = -1;
        int                     ioapic_pin = 0;
        int                     idx, bit = 0;
+       struct irq_desc *       desc;
+       unsigned long           flags;
 
        /*
         * Mapping between Global System Interrups, which
@@ -1127,8 +1129,13 @@ int mp_register_gsi (u32 gsi, int trigge
        if (ioapic_renumber_irq)
                gsi = ioapic_renumber_irq(ioapic, gsi);
 
-       if (!(irq_to_desc(gsi)->status & IRQ_DISABLED))
+       desc = irq_to_desc(gsi);
+       spin_lock_irqsave(&desc->lock, flags);
+       if (!(desc->status & IRQ_DISABLED) && desc->handler != &no_irq_type) {
+               spin_unlock_irqrestore(&desc->lock, flags);
                return -EEXIST;
+       }
+       spin_unlock_irqrestore(&desc->lock, flags);
 
        /* 
         * Avoid pin reprogramming.  PRTs typically include entries  

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Make c/s 21089 work again with c/s 21092, Xen patchbot-unstable <=