On Wed, 14 Jan 2015 15:54:52 +0200, Pantelis Antoniou wrote: > On Jan 14, 2015, at 15:49 , Jean Delvare <jdelvare@xxxxxxx> wrote: > > That being said, nobody complained about this in 11 years, so I would > > be surprised if it was plain wrong. I'd rather question the test code. > > Where is it? > > No-one has apparently tested removing an i2c mux device on a running system > before. I did that. On my system the i2c-i801 driver instantiates an i2c-mux-gpio device. Unloading the i2c-i801 driver removes that device and it works fine. Note however that I am not able to unload module i2c-i801 immediately, I have to unload module i2c-mux-gpio first, as the latter holds a reference to the former. This is because i2c-mux-gpio calls i2c_get_adapter() on the parent I2C bus segment at probing time. I see that i2c-mux-pinctrl does the same, but i2c-mux-pca954x and i2c-mux-pca9541 do not. This might be an issue. I doubt this is related to your problem though, as these are module references and not device references. Were you able to figure out who is holding a reference to your i2c_adapter? This would help us understand who is doing something wrong here, i2c-core or your test code. -- Jean Delvare SUSE L3 Support -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html