Lines Matching refs:node

28 	struct devres_node		node;
40 struct devres_node node[2];
50 static void set_node_dbginfo(struct devres_node *node, const char *name,
53 node->name = name;
54 node->size = size;
57 static void devres_log(struct device *dev, struct devres_node *node,
62 op, node, node->name, (unsigned long)node->size);
65 #define set_node_dbginfo(node, n, s) do {} while (0)
66 #define devres_log(dev, node, op) do {} while (0)
83 static struct devres_group * node_to_group(struct devres_node *node)
85 if (node->release == &group_open_release)
86 return container_of(node, struct devres_group, node[0]);
87 if (node->release == &group_close_release)
88 return container_of(node, struct devres_group, node[1]);
117 INIT_LIST_HEAD(&dr->node.entry);
118 dr->node.release = release;
122 static void add_dr(struct device *dev, struct devres_node *node)
124 devres_log(dev, node, "ADD");
125 BUG_ON(!list_empty(&node->entry));
126 list_add_tail(&node->entry, &dev->devres_head);
146 set_node_dbginfo(&dr->node, name, size);
156 * @nid: NUMA node
197 struct devres_node *node;
205 list_for_each_entry_safe_reverse(node, tmp,
207 struct devres *dr = container_of(node, struct devres, node);
209 if (node->release != release)
230 BUG_ON(!list_empty(&dr->node.entry));
251 add_dr(dev, &dr->node);
259 struct devres_node *node;
261 list_for_each_entry_reverse(node, &dev->devres_head, entry) {
262 struct devres *dr = container_of(node, struct devres, node);
264 if (node->release != release)
326 dr = find_dr(dev, new_dr->node.release, match, match_data);
328 add_dr(dev, &new_dr->node);
363 list_del_init(&dr->node.entry);
364 devres_log(dev, &dr->node, "REM");
449 struct devres_node *node;
452 node = list_entry(cur, struct devres_node, entry);
455 grp = node_to_group(node);
462 if (&node->entry == first)
464 list_move_tail(&node->entry, todo);
480 struct devres_node *node;
483 node = list_entry(cur, struct devres_node, entry);
486 grp = node_to_group(node);
487 BUG_ON(!grp || list_empty(&grp->node[0].entry));
490 if (list_empty(&grp->node[1].entry))
498 list_move_tail(&grp->node[0].entry, todo);
499 list_del_init(&grp->node[1].entry);
521 list_for_each_entry_safe_reverse(dr, tmp, &todo, node.entry) {
522 devres_log(dev, &dr->node, "REL");
523 dr->node.release(dev, dr->data);
571 grp->node[0].release = &group_open_release;
572 grp->node[1].release = &group_close_release;
573 INIT_LIST_HEAD(&grp->node[0].entry);
574 INIT_LIST_HEAD(&grp->node[1].entry);
575 set_node_dbginfo(&grp->node[0], "grp<", 0);
576 set_node_dbginfo(&grp->node[1], "grp>", 0);
582 add_dr(dev, &grp->node[0]);
591 struct devres_node *node;
593 list_for_each_entry_reverse(node, &dev->devres_head, entry) {
596 if (node->release != &group_open_release)
599 grp = container_of(node, struct devres_group, node[0]);
604 } else if (list_empty(&grp->node[1].entry))
628 add_dr(dev, &grp->node[1]);
654 list_del_init(&grp->node[0].entry);
655 list_del_init(&grp->node[1].entry);
656 devres_log(dev, &grp->node[0], "REM");
688 struct list_head *first = &grp->node[0].entry;
691 if (!list_empty(&grp->node[1].entry))
692 end = grp->node[1].entry.next;
842 set_node_dbginfo(&dr->node, "devm_kzalloc_release", size);
924 replace_dr(dev, &old_dr->node, &new_dr->node);