*
* 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
*
{
struct class * parent;
struct class_interface * class_intf;
- struct list_head * entry;
int error;
class_dev = class_device_get(class_dev);
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);
}
{
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);
}
{
struct class * parent;
struct class_device * class_dev;
- struct list_head * entry;
if (!class_intf || !class_intf->class)
return -ENODEV;
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);
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;
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);