diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2007-04-24 03:16:16 -0400 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2007-07-19 23:32:58 -0400 |
commit | e679c5f445fe142940e0962de9c5c82f10d9357c (patch) | |
tree | 997daf76cc643fdc495ce0a667cfdc5b1c9515ab /drivers/of | |
parent | 581b605a83ec241a2aff8ef780e08b9414c8dfd8 (diff) |
Consolidate of_get_parent
This requires creating dummy of_node_{get,put} routines for sparc and
sparc64. It also adds a read_lock around the parent accesses.
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 'drivers/of')
-rw-r--r-- | drivers/of/base.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/of/base.c b/drivers/of/base.c index 70b60845140e..82bb78680ff6 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c | |||
@@ -113,3 +113,24 @@ int of_device_is_compatible(const struct device_node *device, | |||
113 | return 0; | 113 | return 0; |
114 | } | 114 | } |
115 | EXPORT_SYMBOL(of_device_is_compatible); | 115 | EXPORT_SYMBOL(of_device_is_compatible); |
116 | |||
117 | /** | ||
118 | * of_get_parent - Get a node's parent if any | ||
119 | * @node: Node to get parent | ||
120 | * | ||
121 | * Returns a node pointer with refcount incremented, use | ||
122 | * of_node_put() on it when done. | ||
123 | */ | ||
124 | struct device_node *of_get_parent(const struct device_node *node) | ||
125 | { | ||
126 | struct device_node *np; | ||
127 | |||
128 | if (!node) | ||
129 | return NULL; | ||
130 | |||
131 | read_lock(&devtree_lock); | ||
132 | np = of_node_get(node->parent); | ||
133 | read_unlock(&devtree_lock); | ||
134 | return np; | ||
135 | } | ||
136 | EXPORT_SYMBOL(of_get_parent); | ||