[PATCH 01/14] drivers/firmware/sdei: Remove sdei_is_err()

James Morse james.morse at arm.com
Tue Jul 21 16:39:21 EDT 2020


Hi Gavin,

On 06/07/2020 06:47, Gavin Shan wrote:
> sdei_is_err() is only called by sdei_to_linux_errno().

... so it is! There were a lot more of these out of tree when it was being used to test
the firmware.


> The logic of
> checking on the error number is common to them. They can be combined
> finely.

> This removes sdei_is_err() and its logic is combined to the function
> sdei_to_linux_errno(). 

> diff --git a/drivers/firmware/arm_sdei.c b/drivers/firmware/arm_sdei.c
> index e7e36aab2386..415c243a8e65 100644
> --- a/drivers/firmware/arm_sdei.c
> +++ b/drivers/firmware/arm_sdei.c
> @@ -114,26 +114,7 @@ static int sdei_to_linux_errno(unsigned long sdei_err)
>  		return -ENOMEM;
>  	}
>  
> -	/* Not an error value ... */
> -	return sdei_err;
> -}
> -
> -/*
> - * If x0 is any of these values, then the call failed, use sdei_to_linux_errno()
> - * to translate.
> - */
> -static int sdei_is_err(struct arm_smccc_res *res)
> -{
> -	switch (res->a0) {
> -	case SDEI_NOT_SUPPORTED:
> -	case SDEI_INVALID_PARAMETERS:
> -	case SDEI_DENIED:
> -	case SDEI_PENDING:
> -	case SDEI_OUT_OF_RESOURCE:
> -		return true;
> -	}
> -
> -	return false;
> +	return 0;
>  }
>  
>  static int invoke_sdei_fn(unsigned long function_id, unsigned long arg0,
> @@ -147,8 +128,7 @@ static int invoke_sdei_fn(unsigned long function_id, unsigned long arg0,

Please also remove the now-pointless initialiser at the top of the function.


>  	if (sdei_firmware_call) {
>  		sdei_firmware_call(function_id, arg0, arg1, arg2, arg3, arg4,
>  				   &res);
> -		if (sdei_is_err(&res))
> -			err = sdei_to_linux_errno(res.a0);
> +		err = sdei_to_linux_errno(res.a0);>  	} else {
>  		/*
>  		 * !sdei_firmware_call means we failed to probe or called
> 

With that:
Reviewed-by: James Morse <james.morse at arm.com>


Thanks,

James



More information about the linux-arm-kernel mailing list