aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2007-04-24 02:46:53 -0400
committerStephen Rothwell <sfr@canb.auug.org.au>2007-07-19 23:32:24 -0400
commit581b605a83ec241a2aff8ef780e08b9414c8dfd8 (patch)
tree809640a0dc3a1bd0b5afba795cf9f6357f6e3a81 /arch/sparc64/kernel
parent0081cbc3731de8ad4744ba433af51f17bf27eb9c (diff)
Consolidate of_find_property
The only change here is that a readlock is taken while the property list is being traversed on Sparc where it was not taken previously. Also, Sparc uses strcasecmp to compare property names while PowerPC uses strcmp. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Acked-by: Paul Mackerras <paulus@samba.org> Acked-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel')
-rw-r--r--arch/sparc64/kernel/prom.c22
1 files changed, 1 insertions, 21 deletions
diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c
index 4d6fb07f047f..a1ccc00c7958 100644
--- a/arch/sparc64/kernel/prom.c
+++ b/arch/sparc64/kernel/prom.c
@@ -32,10 +32,7 @@
32 32
33static struct device_node *allnodes; 33static struct device_node *allnodes;
34 34
35/* use when traversing tree through the allnext, child, sibling, 35extern rwlock_t devtree_lock; /* temporary while merging */
36 * or parent members of struct device_node.
37 */
38static DEFINE_RWLOCK(devtree_lock);
39 36
40struct device_node *of_get_parent(const struct device_node *node) 37struct device_node *of_get_parent(const struct device_node *node)
41{ 38{
@@ -135,23 +132,6 @@ struct device_node *of_find_compatible_node(struct device_node *from,
135} 132}
136EXPORT_SYMBOL(of_find_compatible_node); 133EXPORT_SYMBOL(of_find_compatible_node);
137 134
138struct property *of_find_property(const struct device_node *np,
139 const char *name,
140 int *lenp)
141{
142 struct property *pp;
143
144 for (pp = np->properties; pp != 0; pp = pp->next) {
145 if (strcasecmp(pp->name, name) == 0) {
146 if (lenp != 0)
147 *lenp = pp->length;
148 break;
149 }
150 }
151 return pp;
152}
153EXPORT_SYMBOL(of_find_property);
154
155int of_getintprop_default(struct device_node *np, const char *name, int def) 135int of_getintprop_default(struct device_node *np, const char *name, int def)
156{ 136{
157 struct property *prop; 137 struct property *prop;