Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b0a478ed authored by Nathan Fontenot's avatar Nathan Fontenot Committed by Michael Ellerman
Browse files

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: 5f97b2a0 ("powerpc/pseries: Implement memory hotplug add in the kernel")
Signed-off-by: default avatarNathan Fontenot <nfont@linux.vnet.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 3a29dd6d
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -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;