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-ppc-devel

[XenPPC] [PATCH] Skip reset of IPI vectors

To: xen-ppc-devel@xxxxxxxxxxxxxxxxxxx
Subject: [XenPPC] [PATCH] Skip reset of IPI vectors
From: Amos Waterland <apw@xxxxxxxxxx>
Date: Sat, 14 Oct 2006 03:12:58 -0400
Cc: Jimi Xenidis <jimix@xxxxxxxxxxxxxx>
Delivery-date: Sat, 14 Oct 2006 00:13:09 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ppc-devel-request@lists.xensource.com?subject=help>
List-id: Xen PPC development <xen-ppc-devel.lists.xensource.com>
List-post: <mailto:xen-ppc-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ppc-devel>, <mailto:xen-ppc-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ppc-devel>, <mailto:xen-ppc-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-ppc-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.12-2006-07-14
Rather than try to make a xen_mpic_init and duplicate all the associated
machinery it pulls in, this patch introduces a feature flag.  I tried
the first approach, and it results in a lot of code duplication, which
is a worse maintenence burden than this, I believe.

Signed-off-by: Amos Waterland <apw@xxxxxxxxxx>

 arch/powerpc/platforms/xen/evtchn.c |    1 +
 arch/powerpc/sysdev/mpic.c          |    2 +-
 include/asm-powerpc/mpic.h          |    2 ++
 3 files changed, 4 insertions(+), 1 deletion(-)

diff -r f0be2cc05103 arch/powerpc/platforms/xen/evtchn.c
--- a/arch/powerpc/platforms/xen/evtchn.c       Fri Oct 13 12:36:39 2006 -0400
+++ b/arch/powerpc/platforms/xen/evtchn.c       Fri Oct 13 18:39:46 2006 -0400
@@ -106,6 +106,7 @@ static __init void xen_share_maple_init_
 
        mpic = mpic_alloc(opic_addr,
                          MPIC_PRIMARY | MPIC_BIG_ENDIAN |
+                         MPIC_SKIP_IPI_INIT |
                          MPIC_BROKEN_U3 /* | MPIC_WANTS_RESET */,
                          0, 0, 128, 128, senses, 128, "Xen-U3-MPIC");
        BUG_ON(mpic == NULL);
diff -r f0be2cc05103 arch/powerpc/sysdev/mpic.c
--- a/arch/powerpc/sysdev/mpic.c        Fri Oct 13 12:36:39 2006 -0400
+++ b/arch/powerpc/sysdev/mpic.c        Fri Oct 13 18:38:07 2006 -0400
@@ -743,7 +743,7 @@ void __init mpic_init(struct mpic *mpic)
 
        /* Initialize IPIs to our reserved vectors and mark them disabled for 
now */
        mpic_test_broken_ipi(mpic);
-       for (i = 0; i < 4; i++) {
+       for (i = 0; i < 4 && !(mpic->flags & MPIC_SKIP_IPI_INIT); i++) {
                mpic_ipi_write(i,
                               MPIC_VECPRI_MASK |
                               (10 << MPIC_VECPRI_PRIORITY_SHIFT) |
diff -r f0be2cc05103 include/asm-powerpc/mpic.h
--- a/include/asm-powerpc/mpic.h        Fri Oct 13 12:36:39 2006 -0400
+++ b/include/asm-powerpc/mpic.h        Fri Oct 13 18:38:13 2006 -0400
@@ -190,6 +190,8 @@ struct mpic
 #define MPIC_BROKEN_IPI                        0x00000008
 /* MPIC wants a reset */
 #define MPIC_WANTS_RESET               0x00000010
+/* Skip reset of IPI vectors during init */
+#define MPIC_SKIP_IPI_INIT             0x00000020
 
 /* Allocate the controller structure and setup the linux irq descs
  * for the range if interrupts passed in. No HW initialization is

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

<Prev in Thread] Current Thread [Next in Thread>
  • [XenPPC] [PATCH] Skip reset of IPI vectors, Amos Waterland <=