Re: [syzbot] [usb?] INFO: task hung in i2c_tiny_usb_disconnect

From: weipeng

Date: Wed Jan 14 2026 - 03:51:32 EST


Hi,

i2c_del_adapter in i2c-core-base.c:

> void i2c_del_adapter(struct i2c_adapter *adap)
> {
> ...
> /* wait until all references to the device are gone
> *
> * FIXME: This is old code and should ideally be replaced by an
> * alternative which results in decoupling the lifetime of the struct
> * device from the i2c_adapter, like spi or netdev do. Any solution
> * should be thoroughly tested with DEBUG_KOBJECT_RELEASE enabled!
> */
> init_completion(&adap->dev_released);
> device_unregister(&adap->dev);
> wait_for_completion(&adap->dev_released);
> ...
> }

This issue looks like caused by i2c_del_adapter(). It waits for too long so
it may cause the hung.

Thanks,
weipeng