mirror of
https://github.com/torvalds/linux.git
synced 2024-11-30 08:01:59 +00:00
powerpc/pseries: Correct memory hotplug locking
Memory dlpar handling can return from dlpar_memory() without releasing the
device_hotplug lock. Correct this routine to ensure the lock is released.
Fixes: 5f97b2a0d1
("powerpc/pseries: Implement memory hotplug add in the kernel")
Signed-off-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
3a29dd6d6f
commit
b0a478ede6
@ -562,13 +562,15 @@ int dlpar_memory(struct pseries_hp_errorlog *hp_elog)
|
||||
lock_device_hotplug();
|
||||
|
||||
dn = of_find_node_by_path("/ibm,dynamic-reconfiguration-memory");
|
||||
if (!dn)
|
||||
return -EINVAL;
|
||||
if (!dn) {
|
||||
rc = -EINVAL;
|
||||
goto dlpar_memory_out;
|
||||
}
|
||||
|
||||
prop = dlpar_clone_drconf_property(dn);
|
||||
if (!prop) {
|
||||
of_node_put(dn);
|
||||
return -EINVAL;
|
||||
rc = -EINVAL;
|
||||
goto dlpar_memory_out;
|
||||
}
|
||||
|
||||
switch (hp_elog->action) {
|
||||
@ -599,6 +601,7 @@ int dlpar_memory(struct pseries_hp_errorlog *hp_elog)
|
||||
else
|
||||
dlpar_update_drconf_property(dn, prop);
|
||||
|
||||
dlpar_memory_out:
|
||||
of_node_put(dn);
|
||||
unlock_device_hotplug();
|
||||
return rc;
|
||||
|
Loading…
Reference in New Issue
Block a user