Refactor kfree(i2c_dev) into return_i2c_dev(). This saves some code and makes more sense, as the memory is allocated in get_free_i2c_dev(). Signed-off-by: Jean Delvare Cc: Greg Kroah-Hartman --- drivers/i2c/i2c-dev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) --- linux-2.6.19-rc5.orig/drivers/i2c/i2c-dev.c 2006-11-13 10:52:38.000000000 +0100 +++ linux-2.6.19-rc5/drivers/i2c/i2c-dev.c 2006-11-13 10:52:40.000000000 +0100 @@ -90,6 +90,7 @@ spin_lock(&i2c_dev_list_lock); list_del(&i2c_dev->list); spin_unlock(&i2c_dev_list_lock); + kfree(i2c_dev); } static ssize_t show_adapter_name(struct device *dev, @@ -431,7 +432,6 @@ device_destroy(i2c_dev_class, MKDEV(I2C_MAJOR, adap->nr)); error: return_i2c_dev(i2c_dev); - kfree(i2c_dev); return res; } @@ -446,7 +446,6 @@ device_remove_file(i2c_dev->dev, &dev_attr_name); return_i2c_dev(i2c_dev); device_destroy(i2c_dev_class, MKDEV(I2C_MAJOR, adap->nr)); - kfree(i2c_dev); pr_debug("i2c-dev: adapter [%s] unregistered\n", adap->name); return 0;