[PATCH 2/2] i2c: tiny-usb: check adapter registration failure
From: Jiawen Liu
Date: Thu Jun 18 2026 - 12:45:40 EST
i2c_tiny_usb_probe() ignored the return value from i2c_add_adapter()
and returned success even if adapter registration failed. The
disconnect path later assumes the adapter was registered and calls
i2c_del_adapter().
Return the registration error and clear the USB interface data on
probe failure.
Signed-off-by: Jiawen Liu <1298662399@xxxxxx>
---
drivers/i2c/busses/i2c-tiny-usb.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/i2c/busses/i2c-tiny-usb.c b/drivers/i2c/busses/i2c-tiny-usb.c
index 73355a56aabf..df1694f721ce 100644
--- a/drivers/i2c/busses/i2c-tiny-usb.c
+++ b/drivers/i2c/busses/i2c-tiny-usb.c
@@ -262,7 +262,9 @@ static int i2c_tiny_usb_probe(struct usb_interface *interface,
dev->adapter.dev.parent = &dev->interface->dev;
/* and finally attach to i2c layer */
- i2c_add_adapter(&dev->adapter);
+ retval = i2c_add_adapter(&dev->adapter);
+ if (retval)
+ goto error;
/* inform user about successful attachment to i2c layer */
dev_info(&dev->adapter.dev, "connected i2c-tiny-usb device\n");
@@ -270,6 +272,7 @@ static int i2c_tiny_usb_probe(struct usb_interface *interface,
return 0;
error:
+ usb_set_intfdata(interface, NULL);
kfree(dev);
return retval;
--
2.34.1