aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base
diff options
context:
space:
mode:
authorDmitry Torokhov <dtor_core@ameritech.net>2005-09-15 02:01:36 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2005-10-28 09:52:51 -0700
commitd8539d81aeee4dbdc0624a798321e822fb2df7ae (patch)
tree3fc46e80f2fdec0a7ca714dfa3fb8f08648d3bb8 /drivers/base
parent7bd7b091429705eb281d60c553cc643aada8045a (diff)
downloadkernel_goldelico_gta04-d8539d81aeee4dbdc0624a798321e822fb2df7ae.zip
kernel_goldelico_gta04-d8539d81aeee4dbdc0624a798321e822fb2df7ae.tar.gz
kernel_goldelico_gta04-d8539d81aeee4dbdc0624a798321e822fb2df7ae.tar.bz2
[PATCH] Driver core: pass interface to class interface methods
Driver core: pass interface to class intreface methods Pass interface as argument to add() and remove() class interface methods. This way a subsystem can implement generic add/remove handlers and then call interface-specific ones. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/class.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/base/class.c b/drivers/base/class.c
index 8df58c5..73d44cf 100644
--- a/drivers/base/class.c
+++ b/drivers/base/class.c
@@ -532,7 +532,7 @@ int class_device_add(struct class_device *class_dev)
list_add_tail(&class_dev->node, &parent->children);
list_for_each_entry(class_intf, &parent->interfaces, node)
if (class_intf->add)
- class_intf->add(class_dev);
+ class_intf->add(class_dev, class_intf);
up(&parent->sem);
}
@@ -612,7 +612,7 @@ void class_device_del(struct class_device *class_dev)
list_del_init(&class_dev->node);
list_for_each_entry(class_intf, &parent->interfaces, node)
if (class_intf->remove)
- class_intf->remove(class_dev);
+ class_intf->remove(class_dev, class_intf);
up(&parent->sem);
}
@@ -729,7 +729,7 @@ int class_interface_register(struct class_interface *class_intf)
list_add_tail(&class_intf->node, &parent->interfaces);
if (class_intf->add) {
list_for_each_entry(class_dev, &parent->children, node)
- class_intf->add(class_dev);
+ class_intf->add(class_dev, class_intf);
}
up(&parent->sem);
@@ -748,7 +748,7 @@ void class_interface_unregister(struct class_interface *class_intf)
list_del_init(&class_intf->node);
if (class_intf->remove) {
list_for_each_entry(class_dev, &parent->children, node)
- class_intf->remove(class_dev);
+ class_intf->remove(class_dev, class_intf);
}
up(&parent->sem);