diff options
| author | Jeff Garzik <jeff@garzik.org> | 2006-04-18 05:39:10 -0400 |
|---|---|---|
| committer | Jeff Garzik <jeff@garzik.org> | 2006-04-18 05:39:10 -0400 |
| commit | b2b4b9a7c09ad66e095b13c97946a96f2dc8284e (patch) | |
| tree | fb856b5998df266bd83e6e64b8884287e812845a /drivers/base/class.c | |
| parent | 875999c5539999f61a45620aae0c3e5fb1d2b035 (diff) | |
| parent | 4741c336d27dec3ea68a35659abb8dc82b142388 (diff) | |
Merge branch 'upstream'
Diffstat (limited to 'drivers/base/class.c')
| -rw-r--r-- | drivers/base/class.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/base/class.c b/drivers/base/class.c index df7fdabd0730..0e71dff327cd 100644 --- a/drivers/base/class.c +++ b/drivers/base/class.c | |||
| @@ -562,14 +562,13 @@ int class_device_add(struct class_device *class_dev) | |||
| 562 | kobject_uevent(&class_dev->kobj, KOBJ_ADD); | 562 | kobject_uevent(&class_dev->kobj, KOBJ_ADD); |
| 563 | 563 | ||
| 564 | /* notify any interfaces this device is now here */ | 564 | /* notify any interfaces this device is now here */ |
| 565 | if (parent_class) { | 565 | down(&parent_class->sem); |
| 566 | down(&parent_class->sem); | 566 | list_add_tail(&class_dev->node, &parent_class->children); |
| 567 | list_add_tail(&class_dev->node, &parent_class->children); | 567 | list_for_each_entry(class_intf, &parent_class->interfaces, node) { |
| 568 | list_for_each_entry(class_intf, &parent_class->interfaces, node) | 568 | if (class_intf->add) |
| 569 | if (class_intf->add) | 569 | class_intf->add(class_dev, class_intf); |
| 570 | class_intf->add(class_dev, class_intf); | ||
| 571 | up(&parent_class->sem); | ||
| 572 | } | 570 | } |
| 571 | up(&parent_class->sem); | ||
| 573 | 572 | ||
| 574 | register_done: | 573 | register_done: |
| 575 | if (error) { | 574 | if (error) { |
