On Fri, Apr 30, 2021 at 09:09:15AM -0300, Daniel Henrique Barboza wrote: > 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 <danielhb...@gmail.com>
Reviewed-by: David Gibson <da...@gibson.dropbear.id.au> > --- > arch/powerpc/platforms/pseries/hotplug-memory.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/arch/powerpc/platforms/pseries/hotplug-memory.c > b/arch/powerpc/platforms/pseries/hotplug-memory.c > index 8377f1f7c78e..bb98574a84a2 100644 > --- a/arch/powerpc/platforms/pseries/hotplug-memory.c > +++ b/arch/powerpc/platforms/pseries/hotplug-memory.c > @@ -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", -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature