diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index 8dca4848ad9275db06b5659d9d3ca58f059cd3ed..7bfd67f4143d21ae4c9802270df75fd1691342e0 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -304,8 +304,6 @@ int i2c_del_adapter(struct i2c_adapter *adap)
 
 int i2c_register_driver(struct module *owner, struct i2c_driver *driver)
 {
-	struct list_head   *item;
-	struct i2c_adapter *adapter;
 	int res;
 
 	/* add the driver to the list of i2c drivers in the driver core */
@@ -323,8 +321,9 @@ int i2c_register_driver(struct module *owner, struct i2c_driver *driver)
 
 	/* now look for instances of driver on our adapters */
 	if (driver->attach_adapter) {
-		list_for_each(item,&adapters) {
-			adapter = list_entry(item, struct i2c_adapter, list);
+		struct i2c_adapter *adapter;
+
+		list_for_each_entry(adapter, &adapters, list) {
 			driver->attach_adapter(adapter);
 		}
 	}