[PATCH 2/2] sh: kfr2r09: fix i2c adapter leak on serial console setup

From: Johan Hovold

Date: Fri May 08 2026 - 08:13:00 EST


Make sure to drop the reference taken to the I2C adapter (and its
module) when setting up the serial console which prevents the adapter
from ever being deregistered.

Fixes: e6d8460aca63 ("sh: Improve kfr2r09 serial port setup code")
Cc: stable@xxxxxxxxxxxxxxx # 2.6.33
Cc: Magnus Damm <damm@xxxxxxxxxxxxx>
Signed-off-by: Johan Hovold <johan@xxxxxxxxxx>
---
arch/sh/boards/mach-kfr2r09/setup.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/arch/sh/boards/mach-kfr2r09/setup.c b/arch/sh/boards/mach-kfr2r09/setup.c
index 62af9a9db039..8f436bcc1ae1 100644
--- a/arch/sh/boards/mach-kfr2r09/setup.c
+++ b/arch/sh/boards/mach-kfr2r09/setup.c
@@ -418,7 +418,7 @@ static int kfr2r09_serial_i2c_setup(void)
msg.flags = 0;
ret = i2c_transfer(a, &msg, 1);
if (ret != 1)
- return -ENODEV;
+ goto err_put_adapter;

buf[0] = 0;
msg.addr = 0x09;
@@ -427,7 +427,7 @@ static int kfr2r09_serial_i2c_setup(void)
msg.flags = I2C_M_RD;
ret = i2c_transfer(a, &msg, 1);
if (ret != 1)
- return -ENODEV;
+ goto err_put_adapter;

buf[1] = buf[0] | (1 << 6);
buf[0] = 0x13;
@@ -437,9 +437,16 @@ static int kfr2r09_serial_i2c_setup(void)
msg.flags = 0;
ret = i2c_transfer(a, &msg, 1);
if (ret != 1)
- return -ENODEV;
+ goto err_put_adapter;
+
+ i2c_put_adapter(a);

return 0;
+
+err_put_adapter:
+ i2c_put_adapter(a);
+
+ return -ENODEV;
}
#else
static int kfr2r09_usb0_gadget_i2c_setup(void)
--
2.53.0