projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
[firefly-linux-kernel-4.4.55.git]
/
drivers
/
of
/
base.c
diff --git
a/drivers/of/base.c
b/drivers/of/base.c
index f53b992f060a1eaa50fb9de6afda8edb6bf49e69..a6f584a7f4a13f2842663c98d807e9b38b2cf89f 100644
(file)
--- a/
drivers/of/base.c
+++ b/
drivers/of/base.c
@@
-192,14
+192,15
@@
EXPORT_SYMBOL(of_find_property);
struct device_node *of_find_all_nodes(struct device_node *prev)
{
struct device_node *np;
struct device_node *of_find_all_nodes(struct device_node *prev)
{
struct device_node *np;
+ unsigned long flags;
- raw_spin_lock
(&devtree_lock
);
+ raw_spin_lock
_irqsave(&devtree_lock, flags
);
np = prev ? prev->allnext : of_allnodes;
for (; np != NULL; np = np->allnext)
if (of_node_get(np))
break;
of_node_put(prev);
np = prev ? prev->allnext : of_allnodes;
for (; np != NULL; np = np->allnext)
if (of_node_get(np))
break;
of_node_put(prev);
- raw_spin_unlock
(&devtree_lock
);
+ raw_spin_unlock
_irqrestore(&devtree_lock, flags
);
return np;
}
EXPORT_SYMBOL(of_find_all_nodes);
return np;
}
EXPORT_SYMBOL(of_find_all_nodes);
@@
-421,8
+422,9
@@
struct device_node *of_get_next_available_child(const struct device_node *node,
struct device_node *prev)
{
struct device_node *next;
struct device_node *prev)
{
struct device_node *next;
+ unsigned long flags;
- raw_spin_lock
(&devtree_lock
);
+ raw_spin_lock
_irqsave(&devtree_lock, flags
);
next = prev ? prev->sibling : node->child;
for (; next; next = next->sibling) {
if (!__of_device_is_available(next))
next = prev ? prev->sibling : node->child;
for (; next; next = next->sibling) {
if (!__of_device_is_available(next))
@@
-431,7
+433,7
@@
struct device_node *of_get_next_available_child(const struct device_node *node,
break;
}
of_node_put(prev);
break;
}
of_node_put(prev);
- raw_spin_unlock
(&devtree_lock
);
+ raw_spin_unlock
_irqrestore(&devtree_lock, flags
);
return next;
}
EXPORT_SYMBOL(of_get_next_available_child);
return next;
}
EXPORT_SYMBOL(of_get_next_available_child);
@@
-735,13
+737,14
@@
EXPORT_SYMBOL_GPL(of_modalias_node);
struct device_node *of_find_node_by_phandle(phandle handle)
{
struct device_node *np;
struct device_node *of_find_node_by_phandle(phandle handle)
{
struct device_node *np;
+ unsigned long flags;
- raw_spin_lock
(&devtree_lock
);
+ raw_spin_lock
_irqsave(&devtree_lock, flags
);
for (np = of_allnodes; np; np = np->allnext)
if (np->phandle == handle)
break;
of_node_get(np);
for (np = of_allnodes; np; np = np->allnext)
if (np->phandle == handle)
break;
of_node_get(np);
- raw_spin_unlock
(&devtree_lock
);
+ raw_spin_unlock
_irqrestore(&devtree_lock, flags
);
return np;
}
EXPORT_SYMBOL(of_find_node_by_phandle);
return np;
}
EXPORT_SYMBOL(of_find_node_by_phandle);