i2c: at91: fix crash when using 'i2c probe'
authorEugen Hristev <eugen.hristev@microchip.com>
Fri, 4 Dec 2020 16:06:55 +0000 (18:06 +0200)
committerHeiko Schocher <hs@denx.de>
Sun, 21 Feb 2021 05:05:08 +0000 (06:05 +0100)
commit73c16692bcf7505d01596f48d2006dadfa3d14ab
treea83532fccdae9b6f9b7d7da1a32afb6f5f78a832
parent6befb51f349459c96ed64412070feda7472cf152
i2c: at91: fix crash when using 'i2c probe'

When issuing 'i2c probe', the driver was crashing, because at probe
there is a request with zero length buffer to write to i2c bus.
The xfer_msg function assumes the buffer is always there, and never
checks for the buffer length.

=> i2c dev 0
Setting bus to 0
=> i2c probe
Valid chip addresses:
data abort
pc : [<7ffa97dc>]          lr : [<7ffa96f8>]
reloc pc : [<66f277dc>]    lr : [<66f276f8>]
sp : 7fb7c110  ip : 7ff87a28     fp : 7ff99938
r10: 00000002  r9 : 7fb7dec0     r8 : 00000000
r7 : e181c600  r6 : 7fb88c20     r5 : 00000000  r4 : 7fb7c128
r3 : 00000000  r2 : 00000001     r1 : 00000000  r0 : 00000009
Flags: nZCv  IRQs off  FIQs off  Mode SVC_32
Code: eb0092f4 e1a00005 e8bd81f0 e594300c (e5d33000)
Resetting CPU ...

Fixes: 8800e0fa20 ("i2c: atmel: add i2c driver")
Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
drivers/i2c/at91_i2c.c