Lines Matching defs:node
27 struct devres_node node;
39 struct devres_node node[2];
45 static void set_node_dbginfo(struct devres_node *node, const char *name,
48 node->name = name;
49 node->size = size;
56 static void devres_dbg(struct device *dev, struct devres_node *node,
61 op, node, node->name, node->size);
64 #define devres_dbg(dev, node, op) do {} while (0)
67 static void devres_log(struct device *dev, struct devres_node *node,
70 trace_devres_log(dev, op, node, node->name, node->size);
71 devres_dbg(dev, node, op);
88 static struct devres_group * node_to_group(struct devres_node *node)
90 if (node->release == &group_open_release)
91 return container_of(node, struct devres_group, node[0]);
92 if (node->release == &group_close_release)
93 return container_of(node, struct devres_group, node[1]);
127 INIT_LIST_HEAD(&dr->node.entry);
128 dr->node.release = release;
132 static void add_dr(struct device *dev, struct devres_node *node)
134 devres_log(dev, node, "ADD");
135 BUG_ON(!list_empty(&node->entry));
136 list_add_tail(&node->entry, &dev->devres_head);
152 * @nid: NUMA node
170 set_node_dbginfo(&dr->node, name, size);
195 struct devres_node *node;
203 list_for_each_entry_safe_reverse(node, tmp,
205 struct devres *dr = container_of(node, struct devres, node);
207 if (node->release != release)
228 BUG_ON(!list_empty(&dr->node.entry));
249 add_dr(dev, &dr->node);
257 struct devres_node *node;
259 list_for_each_entry_reverse(node, &dev->devres_head, entry) {
260 struct devres *dr = container_of(node, struct devres, node);
262 if (node->release != release)
324 dr = find_dr(dev, new_dr->node.release, match, match_data);
326 add_dr(dev, &new_dr->node);
361 list_del_init(&dr->node.entry);
362 devres_log(dev, &dr->node, "REM");
439 struct devres_node *node, *n;
445 node = list_entry(first, struct devres_node, entry);
446 list_for_each_entry_safe_from(node, n, end, entry) {
449 grp = node_to_group(node);
456 if (&node->entry == first)
458 list_move_tail(&node->entry, todo);
468 * [current node, end). That is, for a closed group, both opening
472 node = list_entry(first, struct devres_node, entry);
473 list_for_each_entry_safe_from(node, n, end, entry) {
476 grp = node_to_group(node);
477 BUG_ON(!grp || list_empty(&grp->node[0].entry));
480 if (list_empty(&grp->node[1].entry))
485 /* No need to update current node or end. The removed
488 list_move_tail(&grp->node[0].entry, todo);
489 list_del_init(&grp->node[1].entry);
503 list_for_each_entry_safe_reverse(dr, tmp, todo, node.entry) {
504 devres_log(dev, &dr->node, "REL");
505 dr->node.release(dev, dr->data);
561 grp->node[0].release = &group_open_release;
562 grp->node[1].release = &group_close_release;
563 INIT_LIST_HEAD(&grp->node[0].entry);
564 INIT_LIST_HEAD(&grp->node[1].entry);
565 set_node_dbginfo(&grp->node[0], "grp<", 0);
566 set_node_dbginfo(&grp->node[1], "grp>", 0);
572 add_dr(dev, &grp->node[0]);
581 struct devres_node *node;
583 list_for_each_entry_reverse(node, &dev->devres_head, entry) {
586 if (node->release != &group_open_release)
589 grp = container_of(node, struct devres_group, node[0]);
594 } else if (list_empty(&grp->node[1].entry))
618 add_dr(dev, &grp->node[1]);
644 list_del_init(&grp->node[0].entry);
645 list_del_init(&grp->node[1].entry);
646 devres_log(dev, &grp->node[0], "REM");
679 struct list_head *first = &grp->node[0].entry;
682 if (!list_empty(&grp->node[1].entry))
683 end = grp->node[1].entry.next;
837 set_node_dbginfo(&dr->node, "devm_kzalloc_release", size);
919 replace_dr(dev, &old_dr->node, &new_dr->node);