ChangeSet 1.1607, 2004/02/09 14:01:07-08:00, greg@kroah.com

Driver Core: fix up list_for_each() calls to list_for_each_entry()

Now this should get that Rusty^Wmonkey off my back...


 drivers/base/class.c        |   25 +++++++------------------
 drivers/base/class_simple.c |    4 +---
 2 files changed, 8 insertions(+), 21 deletions(-)


diff -Nru a/drivers/base/class.c b/drivers/base/class.c
--- a/drivers/base/class.c	Mon Feb  9 15:08:55 2004
+++ b/drivers/base/class.c	Mon Feb  9 15:08:55 2004
@@ -3,8 +3,8 @@
  *
  * Copyright (c) 2002-3 Patrick Mochel
  * Copyright (c) 2002-3 Open Source Development Labs
- * Copyright (c) 2003 Greg Kroah-Hartman
- * Copyright (c) 2003 IBM Corp.
+ * Copyright (c) 2003-2004 Greg Kroah-Hartman
+ * Copyright (c) 2003-2004 IBM Corp.
  * 
  * This file is released under the GPLv2
  *
@@ -278,7 +278,6 @@
 {
 	struct class * parent;
 	struct class_interface * class_intf;
-	struct list_head * entry;
 	int error;
 
 	class_dev = class_device_get(class_dev);
@@ -302,11 +301,9 @@
 	if (parent) {
 		down_write(&parent->subsys.rwsem);
 		list_add_tail(&class_dev->node, &parent->children);
-		list_for_each(entry, &parent->interfaces) {
-			class_intf = container_of(entry, struct class_interface, node);
+		list_for_each_entry(class_intf, &parent->interfaces, node)
 			if (class_intf->add)
 				class_intf->add(class_dev);
-		}
 		up_write(&parent->subsys.rwsem);
 	}
 
@@ -330,16 +327,13 @@
 {
 	struct class * parent = class_dev->class;
 	struct class_interface * class_intf;
-	struct list_head * entry;
 
 	if (parent) {
 		down_write(&parent->subsys.rwsem);
 		list_del_init(&class_dev->node);
-		list_for_each(entry, &parent->interfaces) {
-			class_intf = container_of(entry, struct class_interface, node);
+		list_for_each_entry(class_intf, &parent->interfaces, node)
 			if (class_intf->remove)
 				class_intf->remove(class_dev);
-		}
 		up_write(&parent->subsys.rwsem);
 	}
 
@@ -395,7 +389,6 @@
 {
 	struct class * parent;
 	struct class_device * class_dev;
-	struct list_head * entry;
 
 	if (!class_intf || !class_intf->class)
 		return -ENODEV;
@@ -408,10 +401,8 @@
 	list_add_tail(&class_intf->node, &parent->interfaces);
 
 	if (class_intf->add) {
-		list_for_each(entry, &parent->children) {
-			class_dev = container_of(entry, struct class_device, node);
+		list_for_each_entry(class_dev, &parent->children, node)
 			class_intf->add(class_dev);
-		}
 	}
 	up_write(&parent->subsys.rwsem);
 
@@ -421,7 +412,7 @@
 void class_interface_unregister(struct class_interface *class_intf)
 {
 	struct class * parent = class_intf->class;
-	struct list_head * entry;
+	struct class_device *class_dev;
 
 	if (!parent)
 		return;
@@ -430,10 +421,8 @@
 	list_del_init(&class_intf->node);
 
 	if (class_intf->remove) {
-		list_for_each(entry, &parent->children) {
-			struct class_device *class_dev = container_of(entry, struct class_device, node);
+		list_for_each_entry(class_dev, &parent->children, node)
 			class_intf->remove(class_dev);
-		}
 	}
 	up_write(&parent->subsys.rwsem);
 
diff -Nru a/drivers/base/class_simple.c b/drivers/base/class_simple.c
--- a/drivers/base/class_simple.c	Mon Feb  9 15:08:55 2004
+++ b/drivers/base/class_simple.c	Mon Feb  9 15:08:55 2004
@@ -197,12 +197,10 @@
 void class_simple_device_remove(dev_t dev)
 {
 	struct simple_dev *s_dev = NULL;
-	struct list_head *tmp;
 	int found = 0;
 
 	spin_lock(&simple_dev_list_lock);
-	list_for_each(tmp, &simple_dev_list) {
-		s_dev = list_entry(tmp, struct simple_dev, node);
+	list_for_each_entry(s_dev, &simple_dev_list, node) {
 		if (s_dev->dev == dev) {
 			found = 1;
 			break;
