[PATCH] powerpc: ipic - fix status get and status clear

Subsystems: linux for powerpc (32-bit and 64-bit), the rest

STALE3226d

4 messages, 3 authors, 2017-11-07 · open the first message on its own page

[PATCH] powerpc: ipic - fix status get and status clear

From: Christophe Leroy <hidden>
Date: 2017-10-18 09:16:51

IPIC Status is provided by register IPIC_SERSR and not by IPIC_SERMR
which is the mask register.

Signed-off-by: Christophe Leroy <redacted>
---
 arch/powerpc/sysdev/ipic.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
index 16f1edd78c40..535cf1f6941c 100644
--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -846,12 +846,12 @@ void ipic_disable_mcp(enum ipic_mcp_irq mcp_irq)
 
 u32 ipic_get_mcp_status(void)
 {
-	return ipic_read(primary_ipic->regs, IPIC_SERMR);
+	return ipic_read(primary_ipic->regs, IPIC_SERSR);
 }
 
 void ipic_clear_mcp_status(u32 mask)
 {
-	ipic_write(primary_ipic->regs, IPIC_SERMR, mask);
+	ipic_write(primary_ipic->regs, IPIC_SERSR, mask);
 }
 
 /* Return an interrupt vector or 0 if no interrupt is pending. */
-- 
2.13.3

Re: [PATCH] powerpc: ipic - fix status get and status clear

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2017-10-19 05:06:03

Christophe Leroy [off-list ref] writes:
IPIC Status is provided by register IPIC_SERSR and not by IPIC_SERMR
which is the mask register.
This seems like it would be a bad bug. But I guess it hasn't mattered
for some reason?

cheers
quoted hunk
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
index 16f1edd78c40..535cf1f6941c 100644
--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -846,12 +846,12 @@ void ipic_disable_mcp(enum ipic_mcp_irq mcp_irq)
 
 u32 ipic_get_mcp_status(void)
 {
-	return ipic_read(primary_ipic->regs, IPIC_SERMR);
+	return ipic_read(primary_ipic->regs, IPIC_SERSR);
 }
 
 void ipic_clear_mcp_status(u32 mask)
 {
-	ipic_write(primary_ipic->regs, IPIC_SERMR, mask);
+	ipic_write(primary_ipic->regs, IPIC_SERSR, mask);
 }
 
 /* Return an interrupt vector or 0 if no interrupt is pending. */
-- 
2.13.3

Re: [PATCH] powerpc: ipic - fix status get and status clear

From: Christophe LEROY <hidden>
Date: 2017-10-19 05:51:37


Le 19/10/2017 à 07:06, Michael Ellerman a écrit :
Christophe Leroy [off-list ref] writes:
quoted
IPIC Status is provided by register IPIC_SERSR and not by IPIC_SERMR
which is the mask register.
This seems like it would be a bad bug. But I guess it hasn't mattered
for some reason?
As far as I can see, this function has been added in kernel 2.6.12 but 
has never been used in-tree.

I have discovered this error while implementing NMI watchdog on a 832x 
board, ie this function is needed to know when a machine check exception 
is generated by the watchdog timer.

Christophe
cheers
quoted
diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
index 16f1edd78c40..535cf1f6941c 100644
--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -846,12 +846,12 @@ void ipic_disable_mcp(enum ipic_mcp_irq mcp_irq)
  
  u32 ipic_get_mcp_status(void)
  {
-	return ipic_read(primary_ipic->regs, IPIC_SERMR);
+	return ipic_read(primary_ipic->regs, IPIC_SERSR);
  }
  
  void ipic_clear_mcp_status(u32 mask)
  {
-	ipic_write(primary_ipic->regs, IPIC_SERMR, mask);
+	ipic_write(primary_ipic->regs, IPIC_SERSR, mask);
  }
  
  /* Return an interrupt vector or 0 if no interrupt is pending. */
-- 
2.13.3

Re: powerpc: ipic - fix status get and status clear

From: Michael Ellerman <hidden>
Date: 2017-11-07 23:30:22

On Wed, 2017-10-18 at 09:16:47 UTC, Christophe Leroy wrote:
IPIC Status is provided by register IPIC_SERSR and not by IPIC_SERMR
which is the mask register.

Signed-off-by: Christophe Leroy <redacted>
Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/6b148a7ce72a7f87c81cbcde48af01

cheers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help