Skip to contentSkip to conversation

fix compile warning in pseries xics

PATCH In review Michael Neuling 3 participants 5 messages May 29, 2007 – May 30, 2007 PowerPC

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fix compile warning in pseries xics

In 616883df78bd4b3fcdb6ddc39bd3d4cb902bfa32 request_irq was marked as __must_check so we must... er... check it.

---
This is the only request_irq which is not checked in arch/powerpc

 arch/powerpc/platforms/pseries/xics.c |   13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)
arch/powerpc/platforms/pseries/xics.c +9 -4
Index: linux-2.6-ozlabs/arch/powerpc/platforms/pseries/xics.c
===================================================================
@@ -752,6 +752,7 @@ skip_gserver_check:
 void xics_request_IPIs(void)
 {
 	unsigned int ipi;
+	int t;
 
 	ipi = irq_create_mapping(xics_host, XICS_IPI);
 	BUG_ON(ipi == NO_IRQ);
@@ -762,11 +763,15 @@ void xics_request_IPIs(void)
 	 */
 	set_irq_handler(ipi, handle_percpu_irq);
 	if (firmware_has_feature(FW_FEATURE_LPAR))
-		request_irq(ipi, xics_ipi_action_lpar, IRQF_DISABLED,
-			    "IPI", NULL);
+		t = request_irq(ipi, xics_ipi_action_lpar, IRQF_DISABLED,
+				"IPI", NULL);
 	else
-		request_irq(ipi, xics_ipi_action_direct, IRQF_DISABLED,
-			    "IPI", NULL);
+		t = request_irq(ipi, xics_ipi_action_direct, IRQF_DISABLED,
+				"IPI", NULL);
+	if (t)
+		printk(KERN_ERR "Unable to request interrupt %d for IPI\n",
+		       ipi);
+
 }
 #endif /* CONFIG_SMP */
 
#1 lore raw
Quoted 28 lines · Michael Neuling

In 616883df78bd4b3fcdb6ddc39bd3d4cb902bfa32 request_irq was marked as __must_check so we must... er... check it.

---
This is the only request_irq which is not checked in arch/powerpc

 arch/powerpc/platforms/pseries/xics.c |   13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

Index: linux-2.6-ozlabs/arch/powerpc/platforms/pseries/xics.c
===================================================================

arch/powerpc/platforms/pseries/xics.c +1 -2
@@ -752,6 +752,7 @@ skip_gserver_check:
 void xics_request_IPIs(void)
 {
 	unsigned int ipi;
+	int t;
 
 	ipi = irq_create_mapping(xics_host, XICS_IPI);
 	BUG_ON(ipi == NO_IRQ);
@@ -762,11 +763,15 @@ void xics_request_IPIs(void)
 	 */
 	set_irq_handler(ipi, handle_percpu_irq);
 	if (firmware_has_feature(FW_FEATURE_LPAR))
-		request_irq(ipi, xics_ipi_action_lpar, IRQF_DISABLED,
-			    "IPI", NULL);

arch/powerpc/platforms/pseries/xics.c void xics_request_IPIs(void) · line 773

Quoted 10 lines
arch/powerpc/platforms/pseries/xics.c +7 -2
+		t = request_irq(ipi, xics_ipi_action_lpar, IRQF_DISABLED,
+				"IPI", NULL);
 	else
-		request_irq(ipi, xics_ipi_action_direct, IRQF_DISABLED,
-			    "IPI", NULL);
+		t = request_irq(ipi, xics_ipi_action_direct, IRQF_DISABLED,
+				"IPI", NULL);
+	if (t)
+		printk(KERN_ERR "Unable to request interrupt %d for IPI\n",
+		       ipi);

or BUG() ?

cheers

Signature · 8 lines
Michael Ellerman
OzLabs, IBM Australia Development Lab

wwweb: http://michael.ellerman.id.au
phone: +61 2 6212 1183 (tie line 70 21183)

We do not inherit the earth from our ancestors,
we borrow it from our children. - S.M.A.R.T Person
#2 lore raw

PATCH 1/1 fix compile warning in pseries xics

In 616883df78bd4b3fcdb6ddc39bd3d4cb902bfa32 request_irq was marked as __must_check so we must... er... check it.

---
Updated based on comments from mpe and benh.

 arch/powerpc/platforms/pseries/xics.c |   10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
arch/powerpc/platforms/pseries/xics.c +6 -4
Index: linux-2.6-ozlabs/arch/powerpc/platforms/pseries/xics.c
===================================================================
@@ -752,6 +752,7 @@ skip_gserver_check:
 void xics_request_IPIs(void)
 {
 	unsigned int ipi;
+	int rc;
 
 	ipi = irq_create_mapping(xics_host, XICS_IPI);
 	BUG_ON(ipi == NO_IRQ);
@@ -762,11 +763,12 @@ void xics_request_IPIs(void)
 	 */
 	set_irq_handler(ipi, handle_percpu_irq);
 	if (firmware_has_feature(FW_FEATURE_LPAR))
-		request_irq(ipi, xics_ipi_action_lpar, IRQF_DISABLED,
-			    "IPI", NULL);
+		rc = request_irq(ipi, xics_ipi_action_lpar, IRQF_DISABLED,
+				"IPI", NULL);
 	else
-		request_irq(ipi, xics_ipi_action_direct, IRQF_DISABLED,
-			    "IPI", NULL);
+		rc = request_irq(ipi, xics_ipi_action_direct, IRQF_DISABLED,
+				"IPI", NULL);
+	BUG_ON(rc);
 }
 #endif /* CONFIG_SMP */
 
#3 lore raw
Quoted 4 lines · Michael Neuling
arch/powerpc/platforms/pseries/xics.c +0 -0
@@ -762,11 +763,12 @@ void xics_request_IPIs(void)
 	 */
 	set_irq_handler(ipi, handle_percpu_irq);
 	if (firmware_has_feature(FW_FEATURE_LPAR))

arch/powerpc/platforms/pseries/xics.c void xics_request_IPIs(void) · line 771

Quoted 10 lines
arch/powerpc/platforms/pseries/xics.c +5 -4
-		request_irq(ipi, xics_ipi_action_lpar, IRQF_DISABLED,
-			    "IPI", NULL);
+		rc = request_irq(ipi, xics_ipi_action_lpar, IRQF_DISABLED,
+				"IPI", NULL);
 	else
-		request_irq(ipi, xics_ipi_action_direct, IRQF_DISABLED,
-			    "IPI", NULL);
+		rc = request_irq(ipi, xics_ipi_action_direct, IRQF_DISABLED,
+				"IPI", NULL);
+	BUG_ON(rc);

Is this late enough during boot that you actually get useful information out of a BUG()? It might be better to spit out an error and keep on going if that's the case (I'm afraid I don't have hardware at hand to test with right now).

-Olof

#4 lore raw
Quoted 12 lines · Olof Johansson
Quoted 11 lines · Michael Neuling
arch/powerpc/platforms/pseries/xics.c +2 -4
@@ -762,11 +763,12 @@ void xics_request_IPIs(void)
 	 */
 	set_irq_handler(ipi, handle_percpu_irq);
 	if (firmware_has_feature(FW_FEATURE_LPAR))
-		request_irq(ipi, xics_ipi_action_lpar, IRQF_DISABLED,
-			    "IPI", NULL);
+		rc = request_irq(ipi, xics_ipi_action_lpar, IRQF_DISABLED,
+				"IPI", NULL);
 	else
-		request_irq(ipi, xics_ipi_action_direct, IRQF_DISABLED,
-			    "IPI", NULL);
Quoted 8 lines

arch/powerpc/platforms/pseries/xics.c void xics_request_IPIs(void) · line 771

Quoted 3 lines
arch/powerpc/platforms/pseries/xics.c +3 -0
+		rc = request_irq(ipi, xics_ipi_action_direct, IRQF_DISABLED,
+				"IPI", NULL);
+	BUG_ON(rc);

Is this late enough during boot that you actually get useful information out of a BUG()? It might be better to spit out an error and keep on going if that's the case (I'm afraid I don't have hardware at hand to test with right now).

It's way late:

start_kernel()
rest_init()

    kernel_init()
      smp_prepare_cpus()
        smp_ops->probe()
          smp_xics_probe()
            xics_request_IPIs()

cheers

Signature · 8 lines
Michael Ellerman
OzLabs, IBM Australia Development Lab

wwweb: http://michael.ellerman.id.au
phone: +61 2 6212 1183 (tie line 70 21183)

We do not inherit the earth from our ancestors,
we borrow it from our children. - S.M.A.R.T Person