powerpc/pseries: Set UNISOLATE on dlpar_memory_remove_by_ic() error
As previously done in dlpar_cpu_remove() for CPUs, this patch changes dlpar_memory_remove_by_ic() to unisolate the LMB DRC when the LMB is failed to be removed. The hypervisor, seeing a LMB DRC that was supposed to be removed being unisolated instead, can do error recovery on its side. This change is done in dlpar_memory_remove_by_ic() only because, as of today, only QEMU is using this code path for error recovery (via the PSERIES_HP_ELOG_ID_DRC_IC event). phyp treats it as a no-op. Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20210512202809.95363-2-danielhb413@gmail.com
This commit is contained in:
parent
ad06bcfd5b
commit
feb0e079f4
|
@ -551,6 +551,13 @@ static int dlpar_memory_remove_by_ic(u32 lmbs_to_remove, u32 drc_index)
|
|||
if (!drmem_lmb_reserved(lmb))
|
||||
continue;
|
||||
|
||||
/*
|
||||
* Setting the isolation state of an UNISOLATED/CONFIGURED
|
||||
* device to UNISOLATE is a no-op, but the hypervisor can
|
||||
* use it as a hint that the LMB removal failed.
|
||||
*/
|
||||
dlpar_unisolate_drc(lmb->drc_index);
|
||||
|
||||
rc = dlpar_add_lmb(lmb);
|
||||
if (rc)
|
||||
pr_err("Failed to add LMB, drc index %x\n",
|
||||
|
|
Loading…
Reference in New Issue