aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2007-06-19 02:07:58 -0400
committerPaul Mackerras <paulus@samba.org>2007-07-10 07:53:46 -0400
commitd3b814bb1e8b0c63449a3430196c20cbe24a3e67 (patch)
treeefc3e7df26def2a93768d78e55b0cc8bc4d96b80
parent972d17c9dbad378da61baa17f4c3ea6e154b186a (diff)
[POWERPC] Generalise device_node flag interface
The struct device_node currently has a _flags variable, although it's only used for one flag - OF_DYNAMIC. Generalise the flag accessors so we can use them with other flags in future. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r--arch/powerpc/kernel/prom.c2
-rw-r--r--arch/powerpc/platforms/pseries/reconfig.c2
-rw-r--r--include/asm-powerpc/prom.h14
3 files changed, 13 insertions, 5 deletions
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index cc9632c7149e..bcd1c5ed44a3 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -1375,7 +1375,7 @@ static void of_node_release(struct kref *kref)
1375 struct device_node *node = kref_to_device_node(kref); 1375 struct device_node *node = kref_to_device_node(kref);
1376 struct property *prop = node->properties; 1376 struct property *prop = node->properties;
1377 1377
1378 if (!OF_IS_DYNAMIC(node)) 1378 if (!of_node_check_flag(node, OF_DYNAMIC))
1379 return; 1379 return;
1380 while (prop) { 1380 while (prop) {
1381 struct property *next = prop->next; 1381 struct property *next = prop->next;
diff --git a/arch/powerpc/platforms/pseries/reconfig.c b/arch/powerpc/platforms/pseries/reconfig.c
index 5aa97aff3391..c02f8742c54d 100644
--- a/arch/powerpc/platforms/pseries/reconfig.c
+++ b/arch/powerpc/platforms/pseries/reconfig.c
@@ -123,7 +123,7 @@ static int pSeries_reconfig_add_node(const char *path, struct property *proplist
123 strcpy(np->full_name, path); 123 strcpy(np->full_name, path);
124 124
125 np->properties = proplist; 125 np->properties = proplist;
126 OF_MARK_DYNAMIC(np); 126 of_node_set_flag(np, OF_DYNAMIC);
127 kref_init(&np->kref); 127 kref_init(&np->kref);
128 128
129 np->parent = derive_parent(path); 129 np->parent = derive_parent(path);
diff --git a/include/asm-powerpc/prom.h b/include/asm-powerpc/prom.h
index 1122a9278afd..f1006b91bd1a 100644
--- a/include/asm-powerpc/prom.h
+++ b/include/asm-powerpc/prom.h
@@ -98,10 +98,18 @@ struct device_node {
98extern struct device_node *of_chosen; 98extern struct device_node *of_chosen;
99 99
100/* flag descriptions */ 100/* flag descriptions */
101#define OF_DYNAMIC 1 /* node and properties were allocated via kmalloc */ 101#define OF_DYNAMIC 1 /* node and properties were allocated via kmalloc */
102
103static inline int of_node_check_flag(struct device_node *n, unsigned long flag)
104{
105 return test_bit(flag, &n->_flags);
106}
107
108static inline void of_node_set_flag(struct device_node *n, unsigned long flag)
109{
110 set_bit(flag, &n->_flags);
111}
102 112
103#define OF_IS_DYNAMIC(x) test_bit(OF_DYNAMIC, &x->_flags)
104#define OF_MARK_DYNAMIC(x) set_bit(OF_DYNAMIC, &x->_flags)
105 113
106#define HAVE_ARCH_DEVTREE_FIXUPS 114#define HAVE_ARCH_DEVTREE_FIXUPS
107 115