Patchwork [05/16] pseries: Use #define for XICS base irq number

login
register
mail settings
Submitter David Gibson
Date Oct. 30, 2012, 3:25 a.m.
Message ID <1351567512-17278-6-git-send-email-david@gibson.dropbear.id.au>
Download mbox | patch
Permalink /patch/195278/
State New
Headers show

Comments

David Gibson - Oct. 30, 2012, 3:25 a.m.
From: Ben Herrenschmidt <benh@kernel.crashing.org>

Currently the lowest "real" irq number for the XICS irq controller (as
opposed to numbers reserved for IPIs and other special purposes) is
hard coded as 16 in two places - in xics_system_init() and in spapr.c.

As well as being generally bad practice, we're going to need to change this
number soon to fit in with the in-kernel XICS implementation.  This patch
adds a #define for this number to avoid future breakage.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Ben Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/spapr.c |    2 +-
 hw/xics.c  |    2 +-
 hw/xics.h  |    1 +
 3 files changed, 3 insertions(+), 2 deletions(-)
Alexander Graf - Nov. 1, 2012, 10:15 a.m.
On 30.10.2012, at 04:25, David Gibson wrote:

> From: Ben Herrenschmidt <benh@kernel.crashing.org>
> 
> Currently the lowest "real" irq number for the XICS irq controller (as
> opposed to numbers reserved for IPIs and other special purposes) is
> hard coded as 16 in two places - in xics_system_init() and in spapr.c.
> 
> As well as being generally bad practice, we're going to need to change this
> number soon to fit in with the in-kernel XICS implementation.  This patch
> adds a #define for this number to avoid future breakage.
> 
> Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
> Signed-off-by: Ben Herrenschmidt <benh@kernel.crashing.org>

From: and Signed-off fields seem to not match.

Alex

> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
> ---
> hw/spapr.c |    2 +-
> hw/xics.c  |    2 +-
> hw/xics.h  |    1 +
> 3 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/spapr.c b/hw/spapr.c
> index 8d0ad3c..81c49dc 100644
> --- a/hw/spapr.c
> +++ b/hw/spapr.c
> @@ -799,7 +799,7 @@ static void ppc_spapr_init(QEMUMachineInitArgs *args)
> 
>     /* Set up Interrupt Controller */
>     spapr->icp = xics_system_init(XICS_IRQS);
> -    spapr->next_irq = 16;
> +    spapr->next_irq = XICS_IRQ_BASE;
> 
>     /* Set up EPOW events infrastructure */
>     spapr_events_init(spapr);
> diff --git a/hw/xics.c b/hw/xics.c
> index 7a899dd..db01fe3 100644
> --- a/hw/xics.c
> +++ b/hw/xics.c
> @@ -548,7 +548,7 @@ struct icp_state *xics_system_init(int nr_irqs)
> 
>     ics = g_malloc0(sizeof(*ics));
>     ics->nr_irqs = nr_irqs;
> -    ics->offset = 16;
> +    ics->offset = XICS_IRQ_BASE;
>     ics->irqs = g_malloc0(nr_irqs * sizeof(struct ics_irq_state));
> 
>     icp->ics = ics;
> diff --git a/hw/xics.h b/hw/xics.h
> index 6817268..c3bf008 100644
> --- a/hw/xics.h
> +++ b/hw/xics.h
> @@ -28,6 +28,7 @@
> #define __XICS_H__
> 
> #define XICS_IPI        0x2
> +#define XICS_IRQ_BASE   0x10
> 
> struct icp_state;
> 
> -- 
> 1.7.10.4
>
David Gibson - Nov. 2, 2012, 2:12 a.m.
On Thu, Nov 01, 2012 at 11:15:43AM +0100, Alexander Graf wrote:
> 
> On 30.10.2012, at 04:25, David Gibson wrote:
> 
> > From: Ben Herrenschmidt <benh@kernel.crashing.org>
> > 
> > Currently the lowest "real" irq number for the XICS irq controller (as
> > opposed to numbers reserved for IPIs and other special purposes) is
> > hard coded as 16 in two places - in xics_system_init() and in spapr.c.
> > 
> > As well as being generally bad practice, we're going to need to change this
> > number soon to fit in with the in-kernel XICS implementation.  This patch
> > adds a #define for this number to avoid future breakage.
> > 
> > Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
> > Signed-off-by: Ben Herrenschmidt <benh@kernel.crashing.org>
> 
> From: and Signed-off fields seem to not match.

Well.. it's a fuzzy case in signed-off practice.  Both Michael and Ben
have worked on the patch, Michael first.  I then split the patch up
for submission and had to make a judgement call as to who was the main
author of that section.  My best guess on the available information
was Ben.

Michael, Ben, have anything to add?

Patch

diff --git a/hw/spapr.c b/hw/spapr.c
index 8d0ad3c..81c49dc 100644
--- a/hw/spapr.c
+++ b/hw/spapr.c
@@ -799,7 +799,7 @@  static void ppc_spapr_init(QEMUMachineInitArgs *args)
 
     /* Set up Interrupt Controller */
     spapr->icp = xics_system_init(XICS_IRQS);
-    spapr->next_irq = 16;
+    spapr->next_irq = XICS_IRQ_BASE;
 
     /* Set up EPOW events infrastructure */
     spapr_events_init(spapr);
diff --git a/hw/xics.c b/hw/xics.c
index 7a899dd..db01fe3 100644
--- a/hw/xics.c
+++ b/hw/xics.c
@@ -548,7 +548,7 @@  struct icp_state *xics_system_init(int nr_irqs)
 
     ics = g_malloc0(sizeof(*ics));
     ics->nr_irqs = nr_irqs;
-    ics->offset = 16;
+    ics->offset = XICS_IRQ_BASE;
     ics->irqs = g_malloc0(nr_irqs * sizeof(struct ics_irq_state));
 
     icp->ics = ics;
diff --git a/hw/xics.h b/hw/xics.h
index 6817268..c3bf008 100644
--- a/hw/xics.h
+++ b/hw/xics.h
@@ -28,6 +28,7 @@ 
 #define __XICS_H__
 
 #define XICS_IPI        0x2
+#define XICS_IRQ_BASE   0x10
 
 struct icp_state;