diff options
Diffstat (limited to 'arch/sparc')
| -rw-r--r-- | arch/sparc/kernel/prom_common.c | 5 | 
1 files changed, 3 insertions, 2 deletions
| diff --git a/arch/sparc/kernel/prom_common.c b/arch/sparc/kernel/prom_common.c index 9f20566b0773..79cc0d1a477d 100644 --- a/arch/sparc/kernel/prom_common.c +++ b/arch/sparc/kernel/prom_common.c @@ -54,6 +54,7 @@ EXPORT_SYMBOL(of_set_property_mutex);  int of_set_property(struct device_node *dp, const char *name, void *val, int len)  {  	struct property **prevp; +	unsigned long flags;  	void *new_val;  	int err; @@ -64,7 +65,7 @@ int of_set_property(struct device_node *dp, const char *name, void *val, int len  	err = -ENODEV;  	mutex_lock(&of_set_property_mutex); -	raw_spin_lock(&devtree_lock); +	raw_spin_lock_irqsave(&devtree_lock, flags);  	prevp = &dp->properties;  	while (*prevp) {  		struct property *prop = *prevp; @@ -91,7 +92,7 @@ int of_set_property(struct device_node *dp, const char *name, void *val, int len  		}  		prevp = &(*prevp)->next;  	} -	raw_spin_unlock(&devtree_lock); +	raw_spin_unlock_irqrestore(&devtree_lock, flags);  	mutex_unlock(&of_set_property_mutex);  	/* XXX Upate procfs if necessary... */ |