Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 7753
b: refs/heads/master
c: caf39e8
h: refs/heads/master
i:
  7751: f942bd4
v: v3
  • Loading branch information
Linus Torvalds committed Sep 8, 2005
1 parent 317d242 commit 5fca37b
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 34bb61f9ddabd7a7f909cbfb05592eb775f6662a
refs/heads/master: caf39e87cc1182f7dae84eefc43ca14d54c78ef9
24 changes: 20 additions & 4 deletions trunk/drivers/base/attribute_container.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,21 @@ struct internal_container {
struct class_device classdev;
};

static void internal_container_klist_get(struct klist_node *n)
{
struct internal_container *ic =
container_of(n, struct internal_container, node);
class_device_get(&ic->classdev);
}

static void internal_container_klist_put(struct klist_node *n)
{
struct internal_container *ic =
container_of(n, struct internal_container, node);
class_device_put(&ic->classdev);
}


/**
* attribute_container_classdev_to_container - given a classdev, return the container
*
Expand Down Expand Up @@ -57,7 +72,8 @@ int
attribute_container_register(struct attribute_container *cont)
{
INIT_LIST_HEAD(&cont->node);
klist_init(&cont->containers);
klist_init(&cont->containers,internal_container_klist_get,
internal_container_klist_put);

down(&attribute_container_mutex);
list_add_tail(&cont->node, &attribute_container_list);
Expand Down Expand Up @@ -163,8 +179,8 @@ attribute_container_add_device(struct device *dev,
#define klist_for_each_entry(pos, head, member, iter) \
for (klist_iter_init(head, iter); (pos = ({ \
struct klist_node *n = klist_next(iter); \
n ? ({ klist_iter_exit(iter) ; NULL; }) : \
container_of(n, typeof(*pos), member);\
n ? container_of(n, typeof(*pos), member) : \
({ klist_iter_exit(iter) ; NULL; }); \
}) ) != NULL; )


Expand Down Expand Up @@ -206,7 +222,7 @@ attribute_container_remove_device(struct device *dev,
klist_for_each_entry(ic, &cont->containers, node, &iter) {
if (dev != ic->classdev.dev)
continue;
klist_remove(&ic->node);
klist_del(&ic->node);
if (fn)
fn(cont, dev, &ic->classdev);
else {
Expand Down

0 comments on commit 5fca37b

Please sign in to comment.