2018-08-27 08:30:34

by Christophe Leroy

[permalink] [raw]
Subject: [PATCH] powerpc/sysdev/ipic: check primary_ipic NULL pointer before using it

ipic_get_mcp_status() is used by targets implementing NMI
watchdog in target specific machine check handler in order
to known whether a machine check results from a watchdog
NMI reset.

In case of very early machine check, primary_ipic pointer
might not have been set yet, so ipic_get_mcp_status() needs
to check it for nullity before using it.

Signed-off-by: Christophe Leroy <[email protected]>
---
arch/powerpc/sysdev/ipic.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/sysdev/ipic.c b/arch/powerpc/sysdev/ipic.c
index 535cf1f6941c..6300123ce965 100644
--- a/arch/powerpc/sysdev/ipic.c
+++ b/arch/powerpc/sysdev/ipic.c
@@ -846,7 +846,7 @@ void ipic_disable_mcp(enum ipic_mcp_irq mcp_irq)

u32 ipic_get_mcp_status(void)
{
- return ipic_read(primary_ipic->regs, IPIC_SERSR);
+ return primary_ipic ? ipic_read(primary_ipic->regs, IPIC_SERSR) : 0;
}

void ipic_clear_mcp_status(u32 mask)
--
2.13.3



2018-10-22 09:38:43

by Michael Ellerman

[permalink] [raw]
Subject: Re: powerpc/sysdev/ipic: check primary_ipic NULL pointer before using it

On Mon, 2018-08-27 at 08:27:27 UTC, Christophe Leroy wrote:
> ipic_get_mcp_status() is used by targets implementing NMI
> watchdog in target specific machine check handler in order
> to known whether a machine check results from a watchdog
> NMI reset.
>
> In case of very early machine check, primary_ipic pointer
> might not have been set yet, so ipic_get_mcp_status() needs
> to check it for nullity before using it.
>
> Signed-off-by: Christophe Leroy <[email protected]>

Applied to powerpc next, thanks.

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

cheers