i2c: bcm2835: Avoid possible NULL ptr dereference
authorStefan Wahren <stefan.wahren@i2se.com>
Thu, 16 Feb 2017 21:20:45 +0000 (21:20 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 10 Nov 2018 15:42:45 +0000 (07:42 -0800)
commit08ae439c95d164e9c0022e0511f4fbb4deffd220
treea06917c351c660b227058216ab3e49be73ee0c7e
parent9e431e0ca94716a5470f81da2e9cc9aeed3a2d09
i2c: bcm2835: Avoid possible NULL ptr dereference

[ Upstream commit ababb08938df7ac245d30a58b95b94ecf8dc04fc ]

Since commit e2474541032d ("bcm2835: Fix hang for writing messages
larger than 16 bytes") the interrupt handler is prone to a possible
NULL pointer dereference. This could happen if an interrupt fires
before curr_msg is set by bcm2835_i2c_xfer_msg() and randomly occurs
on the RPi 3. Even this is an unexpected behavior the driver must
handle that with an error instead of a crash.

Reported-by: Peter Robinson <pbrobinson@gmail.com>
Fixes: e2474541032d ("bcm2835: Fix hang for writing messages larger than 16 bytes")
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Acked-by: Noralf Trønnes <noralf@tronnes.org>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/i2c/busses/i2c-bcm2835.c