diff --git a/drivers/i2c/i2c-dev.c b/drivers/i2c/i2c-dev.c index 567fb05aeccc..3f869033ed70 100644 --- a/drivers/i2c/i2c-dev.c +++ b/drivers/i2c/i2c-dev.c @@ -412,9 +412,6 @@ static int i2cdev_attach_adapter(struct i2c_adapter *adap) if (IS_ERR(i2c_dev)) return PTR_ERR(i2c_dev); - pr_debug("i2c-dev: adapter [%s] registered as minor %d\n", - adap->name, adap->nr); - /* register this i2c device with the driver core */ i2c_dev->class_dev = class_device_create(i2c_dev_class, NULL, MKDEV(I2C_MAJOR, adap->nr), @@ -427,6 +424,9 @@ static int i2cdev_attach_adapter(struct i2c_adapter *adap) res = class_device_create_file(i2c_dev->class_dev, &class_device_attr_name); if (res) goto error_destroy; + + pr_debug("i2c-dev: adapter [%s] registered as minor %d\n", + adap->name, adap->nr); return 0; error_destroy: class_device_destroy(i2c_dev_class, MKDEV(I2C_MAJOR, adap->nr)); @@ -441,8 +441,8 @@ static int i2cdev_detach_adapter(struct i2c_adapter *adap) struct i2c_dev *i2c_dev; i2c_dev = i2c_dev_get_by_minor(adap->nr); - if (!i2c_dev) - return -ENODEV; + if (!i2c_dev) /* attach_adapter must have failed */ + return 0; class_device_remove_file(i2c_dev->class_dev, &class_device_attr_name); return_i2c_dev(i2c_dev);