summaryrefslogtreecommitdiffstats
path: root/drivers/irqchip
diff options
context:
space:
mode:
authorGeorge Cherian <george.cherian@cavium.com>2018-08-08 23:36:48 -0700
committerWolfram Sang <wsa@the-dreams.de>2018-08-09 17:41:13 +0200
commit5eb173f5c8f3a3cdc47b3952c368f10a28c81ab8 (patch)
treeb3e6375b12318923fe015c25f655bee29aefb462 /drivers/irqchip
parent1ffaddd029c867d134a1dde39f540dcc8c52e274 (diff)
downloadlinux-5eb173f5c8f3a3cdc47b3952c368f10a28c81ab8.tar.bz2
i2c: xlp9xx: Fix case where SSIF read transaction completes early
During ipmi stress tests we see occasional failure of transactions at the boot time. This happens in the case of a I2C_M_RECV_LEN transactions, when the read transfer completes (with the initial read length of 34) before the driver gets a chance to handle interrupts. The current driver code expects at least 2 interrupts for I2C_M_RECV_LEN transactions. The length is updated during the first interrupt, and the buffer contents are only copied during subsequent interrupts. In case of just one interrupt, we will complete the transaction without copying out the bytes from RX fifo. Update the code to drain the RX fifo after the length update, so that the transaction completes correctly in all cases. Signed-off-by: George Cherian <george.cherian@cavium.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Cc: stable@kernel.org
Diffstat (limited to 'drivers/irqchip')
0 files changed, 0 insertions, 0 deletions