[PATCH 3/3] powerpc/pseries: fail quicker in dlpar_memory_add_by_ic()

Laurent Dufour ldufour at linux.ibm.com
Thu Jun 24 18:48:53 AEST 2021


Le 22/06/2021 à 15:39, Daniel Henrique Barboza a écrit :
> The validation done at the start of dlpar_memory_add_by_ic() is an all
> of nothing scenario - if any LMBs in the range is marked as RESERVED we
> can fail right away.
> 
> We then can remove the 'lmbs_available' var and its check with
> 'lmbs_to_add' since the whole LMB range was already validated in the
> previous step.

Reviewed-by: Laurent Dufour <ldufour at linux.ibm.com>

> Signed-off-by: Daniel Henrique Barboza <danielhb413 at gmail.com>
> ---
>   arch/powerpc/platforms/pseries/hotplug-memory.c | 14 ++++++--------
>   1 file changed, 6 insertions(+), 8 deletions(-)
> 
> diff --git a/arch/powerpc/platforms/pseries/hotplug-memory.c b/arch/powerpc/platforms/pseries/hotplug-memory.c
> index c0a03e1537cb..377d852f5a9a 100644
> --- a/arch/powerpc/platforms/pseries/hotplug-memory.c
> +++ b/arch/powerpc/platforms/pseries/hotplug-memory.c
> @@ -796,7 +796,6 @@ static int dlpar_memory_add_by_index(u32 drc_index)
>   static int dlpar_memory_add_by_ic(u32 lmbs_to_add, u32 drc_index)
>   {
>   	struct drmem_lmb *lmb, *start_lmb, *end_lmb;
> -	int lmbs_available = 0;
>   	int rc;
>   
>   	pr_info("Attempting to hot-add %u LMB(s) at index %x\n",
> @@ -811,15 +810,14 @@ static int dlpar_memory_add_by_ic(u32 lmbs_to_add, u32 drc_index)
>   
>   	/* Validate that the LMBs in this range are not reserved */
>   	for_each_drmem_lmb_in_range(lmb, start_lmb, end_lmb) {
> -		if (lmb->flags & DRCONF_MEM_RESERVED)
> -			break;
> -
> -		lmbs_available++;
> +		/* Fail immediately if the whole range can't be hot-added */
> +		if (lmb->flags & DRCONF_MEM_RESERVED) {
> +			pr_err("Memory at %llx (drc index %x) is reserved\n",
> +					lmb->base_addr, lmb->drc_index);
> +			return -EINVAL;
> +		}
>   	}
>   
> -	if (lmbs_available < lmbs_to_add)
> -		return -EINVAL;
> -
>   	for_each_drmem_lmb_in_range(lmb, start_lmb, end_lmb) {
>   		if (lmb->flags & DRCONF_MEM_ASSIGNED)
>   			continue;
> 



More information about the Linuxppc-dev mailing list