linux/drivers/i2c
Masahiro Yamada a17e3bbfb9 i2c: uniphier-f: fix race condition when IRQ is cleared
[ Upstream commit eaba68785c ]

The current IRQ handler clears all the IRQ status bits when it bails
out. This is dangerous because it might clear away the status bits
that have just been set while processing the current handler. If this
happens, the IRQ event for the latest transfer is lost forever.

The IRQ status bits must be cleared *before* the next transfer is
kicked.

Fixes: 6a62974b66 ("i2c: uniphier_f: add UniPhier FIFO-builtin I2C driver")
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-12-01 09:17:04 +01:00
..
algos i2c: algos: bit: make the error messages grepable 2018-08-30 23:11:42 +02:00
busses i2c: uniphier-f: fix race condition when IRQ is cleared 2019-12-01 09:17:04 +01:00
muxes Merge branch 'i2c-mux/for-next' of https://github.com/peda-r/i2c-mux into i2c/for-4.19 2018-08-04 23:05:11 +02:00
i2c-boardinfo.c i2c: i2c-boardinfo: fix memory leaks on devinfo 2017-11-27 19:14:29 +01:00
i2c-core-acpi.c i2c: acpi: Force bus speed to 400KHz if a Silead touchscreen is present 2019-11-20 18:45:17 +01:00
i2c-core-base.c gcc-9: don't warn about uninitialized variable 2019-08-09 17:52:27 +02:00
i2c-core-of.c i2c: of: Try to find an I2C adapter matching the parent 2019-04-05 22:33:11 +02:00
i2c-core-slave.c i2c: remove i2c_lock_adapter and use i2c_lock_bus directly 2018-07-13 00:09:37 +02:00
i2c-core-smbus.c i2c: smbus: add unlocked __i2c_smbus_xfer variant 2018-07-20 23:51:37 +02:00
i2c-core.h i2c: make i2c_check_addr_validity() static 2018-03-24 14:07:23 +01:00
i2c-dev.c i2c: dev: fix potential memory leak in i2cdev_ioctl_rdwr 2019-06-22 08:15:17 +02:00
i2c-mux.c Merge branch 'i2c/for-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-08-21 17:40:46 -07:00
i2c-slave-eeprom.c
i2c-smbus.c i2c: i2c-smbus: add of_i2c_setup_smbus_alert 2017-10-28 23:42:47 +02:00
i2c-stub.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
Kconfig
Makefile i2c: don't use any __deprecated handling anymore 2018-08-24 17:26:43 +02:00