diff options
author | Anton Blanchard <anton@samba.org> | 2014-11-10 17:12:28 -0500 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2014-11-11 21:47:20 -0500 |
commit | cd32e2dcc9de6c27ecbbfc0e2079fb64b42bad5f (patch) | |
tree | f53c940f8194f1705a60d4508194ce1160f6a76c /arch/powerpc/kernel | |
parent | 6609ed14de75bde7a99b33e9be9f1873da91f07d (diff) |
powerpc: Fix bad NULL pointer check in udbg_uart_getc_poll()
We have some code in udbg_uart_getc_poll() that tries to protect
against a NULL udbg_uart_in, but gets it all wrong.
Found with the LLVM static analyzer (scan-build).
Fixes: 309257484cc1 ("powerpc: Cleanup udbg_16550 and add support for LPC PIO-only UARTs")
Signed-off-by: Anton Blanchard <anton@samba.org>
[mpe: Add some newlines for readability while we're here]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/kernel')
-rw-r--r-- | arch/powerpc/kernel/udbg_16550.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/udbg_16550.c b/arch/powerpc/kernel/udbg_16550.c index 6e7c4923b5ea..411116c38da4 100644 --- a/arch/powerpc/kernel/udbg_16550.c +++ b/arch/powerpc/kernel/udbg_16550.c | |||
@@ -69,8 +69,12 @@ static void udbg_uart_putc(char c) | |||
69 | 69 | ||
70 | static int udbg_uart_getc_poll(void) | 70 | static int udbg_uart_getc_poll(void) |
71 | { | 71 | { |
72 | if (!udbg_uart_in || !(udbg_uart_in(UART_LSR) & LSR_DR)) | 72 | if (!udbg_uart_in) |
73 | return -1; | ||
74 | |||
75 | if (!(udbg_uart_in(UART_LSR) & LSR_DR)) | ||
73 | return udbg_uart_in(UART_RBR); | 76 | return udbg_uart_in(UART_RBR); |
77 | |||
74 | return -1; | 78 | return -1; |
75 | } | 79 | } |
76 | 80 | ||