]> www.infradead.org Git - users/dwmw2/linux.git/commit
i2c: atr: Fix client detach
authorTomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>
Fri, 22 Nov 2024 12:26:18 +0000 (14:26 +0200)
committerWolfram Sang <wsa+renesas@sang-engineering.com>
Thu, 9 Jan 2025 10:08:01 +0000 (11:08 +0100)
commitcefc479cbb50399dec0c8e996f3539c48a1ee9dd
treea204f0931e9d7c512aa98b65e06a604de862e7b5
parent3f8c4f5e9a57868fa107016c81165686d23325f2
i2c: atr: Fix client detach

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: a076a860acae ("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>
drivers/i2c/i2c-atr.c