linux/drivers/i2c
Tomi Valkeinen 5cfe4b1d0c i2c: atr: Fix client detach
commit cefc479cbb upstream.

i2c-atr catches the BUS_NOTIFY_DEL_DEVICE event on the bus and removes
the translation by calling i2c_atr_detach_client().

However, BUS_NOTIFY_DEL_DEVICE happens when the device is about to be
removed from this bus, i.e. before removal, and thus before calling
.remove() on the driver. If the driver happens to do any i2c
transactions in its remove(), they will fail.

Fix this by catching BUS_NOTIFY_REMOVED_DEVICE instead, thus removing
the translation only after the device is actually removed.

Fixes: a076a860ac ("media: i2c: add I2C Address Translator (ATR) support")
Cc: stable@vger.kernel.org
Signed-off-by: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Reviewed-by: Romain Gantois <romain.gantois@bootlin.com>
Tested-by: Romain Gantois <romain.gantois@bootlin.com>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-01-23 17:21:15 +01:00
..
algos i2c: algo: bit: allow getsda to be NULL 2023-01-23 23:15:49 +01:00
busses i2c: rcar: fix NACK handling when being a target 2025-01-23 17:21:12 +01:00
muxes i2c: mux: demux-pinctrl: check initial mux selection, too 2025-01-23 17:21:12 +01:00
i2c-atr.c i2c: atr: Fix client detach 2025-01-23 17:21:15 +01:00
i2c-boardinfo.c i2c: Remove support for dangling device properties 2021-04-10 21:43:02 +02:00
i2c-core-acpi.c i2c: acpi: Unbind mux adapters before delete 2024-06-16 13:47:40 +02:00
i2c-core-base.c i2c: core: Lock address during client device instantiation 2024-10-10 11:58:01 +02:00
i2c-core-of.c Char/Misc drivers for 6.4-rc1 2023-04-27 12:07:50 -07:00
i2c-core-slave.c i2c: add tracepoints for I2C slave events 2022-03-20 00:11:05 +01:00
i2c-core-smbus.c i2c: smbus: Check for parent device before dereference 2022-02-19 12:37:20 +01:00
i2c-core.h i2c: core: Fix atomic xfer check for non-preempt config 2024-01-10 17:17:00 +01:00
i2c-dev.c i2c: dev: copy userspace array safely 2023-11-28 17:19:47 +00:00
i2c-mux.c i2c: mux: Avoid potential false error message in i2c_mux_add_adapter 2023-09-25 08:22:02 +02:00
i2c-slave-eeprom.c i2c: Convert drivers to new .probe() callback 2023-03-09 21:59:30 +01:00
i2c-slave-testunit.c i2c: testunit: avoid re-issued work after read message 2024-07-18 13:21:26 +02:00
i2c-smbus.c i2c: smbus: Send alert notifications to all devices if source not found 2024-08-14 13:58:51 +02:00
i2c-stub.c i2c: stub: remove definition of DEBUG 2021-01-17 13:00:10 +01:00
Kconfig i2c: Make I2C_ATR invisible 2023-09-13 10:56:00 +02:00
Makefile media: i2c: add I2C Address Translator (ATR) support 2023-07-14 13:11:44 +02:00