diff -ura xx-linux-2.6-6-rc3-mm2/drivers/i2c/busses/i2c-ibm_iic.c linux-2.6-6-rc3-mm2/drivers/i2c/busses/i2c-ibm_iic.c --- xx-linux-2.6-6-rc3-mm2/drivers/i2c/busses/i2c-ibm_iic.c 2004-05-09 11:03:03.000000000 +0200 +++ linux-2.6-6-rc3-mm2/drivers/i2c/busses/i2c-ibm_iic.c 2004-05-09 18:19:44.000000000 +0200 @@ -607,6 +607,7 @@ i2c_set_adapdata(adap, dev); adap->id = I2C_HW_OCP | iic_algo.id; adap->algo = &iic_algo; + adap->class = I2C_CLASS_ALL; adap->client_register = NULL; adap->client_unregister = NULL; adap->timeout = 1; diff -ura xx-linux-2.6-6-rc3-mm2/drivers/i2c/busses/i2c-iop3xx.c linux-2.6-6-rc3-mm2/drivers/i2c/busses/i2c-iop3xx.c --- xx-linux-2.6-6-rc3-mm2/drivers/i2c/busses/i2c-iop3xx.c 2004-05-09 11:03:02.000000000 +0200 +++ linux-2.6-6-rc3-mm2/drivers/i2c/busses/i2c-iop3xx.c 2004-05-09 18:17:57.000000000 +0200 @@ -507,18 +507,31 @@ .name = ADAPTER_NAME_ROOT "0", .id = I2C_HW_IOP321, .algo_data = &algo_iop3xx_data0, + .class = I2C_CLASS_ALL, }; static struct i2c_adapter iop3xx_ops1 = { .owner = THIS_MODULE, .name = ADAPTER_NAME_ROOT "1", .id = I2C_HW_IOP321, .algo_data = &algo_iop3xx_data1, + .class = I2C_CLASS_ALL, }; static int __init i2c_iop3xx_init (void) { - return i2c_iop3xx_add_bus(&iop3xx_ops0) || - i2c_iop3xx_add_bus(&iop3xx_ops1); + int ret; + + ret = i2c_iop3xx_add_bus(&iop3xx_ops0); + if (ret) + return ret; + + ret = i2c_iop3xx_add_bus(&iop3xx_ops1); + if (ret) { + i2c_iop3xx_del_bus(&iop3xx_ops0); + return ret; + } + + return 0; } static void __exit i2c_iop3xx_exit (void) diff -ura xx-linux-2.6-6-rc3-mm2/drivers/i2c/busses/i2c-ite.c linux-2.6-6-rc3-mm2/drivers/i2c/busses/i2c-ite.c --- xx-linux-2.6-6-rc3-mm2/drivers/i2c/busses/i2c-ite.c 2004-05-09 11:03:02.000000000 +0200 +++ linux-2.6-6-rc3-mm2/drivers/i2c/busses/i2c-ite.c 2004-05-09 18:13:22.000000000 +0200 @@ -192,6 +192,7 @@ .owner = THIS_MODULE, .id = I2C_HW_I_IIC, .algo_data = &iic_ite_data, + .class = I2C_CLASS_ALL, .dev = { .name = "ITE IIC adapter", }, diff -ura xx-linux-2.6-6-rc3-mm2/drivers/i2c/busses/scx200_i2c.c linux-2.6-6-rc3-mm2/drivers/i2c/busses/scx200_i2c.c --- xx-linux-2.6-6-rc3-mm2/drivers/i2c/busses/scx200_i2c.c 2004-05-09 11:03:02.000000000 +0200 +++ linux-2.6-6-rc3-mm2/drivers/i2c/busses/scx200_i2c.c 2004-05-09 18:13:55.000000000 +0200 @@ -84,6 +84,7 @@ static struct i2c_adapter scx200_i2c_ops = { .owner = THIS_MODULE, .algo_data = &scx200_i2c_data, + .class = I2C_CLASS_ALL, .name = "NatSemi SCx200 I2C", };