Commit 5735f515 authored by Gavin Shan's avatar Gavin Shan Committed by Will Deacon
Browse files

firmware: arm_sdei: Remove sdei_is_err()



sdei_is_err() is only called by sdei_to_linux_errno(). 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(). Also, the assignment of @err to zero is also
dropped in invoke_sdei_fn() because it's always overridden afterwards.
This shouldn't cause functional changes.

Signed-off-by: default avatarGavin Shan <gshan@redhat.com>
Reviewed-by: default avatarJames Morse <james.morse@arm.com>
Reviewed-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
Link: https://lore.kernel.org/r/20200922130423.10173-2-gshan@redhat.com


Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent f75aef39
Loading
Loading
Loading
Loading
+3 −23
Original line number Diff line number Diff line
@@ -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,
@@ -141,13 +122,12 @@ static int invoke_sdei_fn(unsigned long function_id, unsigned long arg0,
			  unsigned long arg3, unsigned long arg4,
			  u64 *result)
{
	int err = 0;
	int err;
	struct arm_smccc_res res;

	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);
	} else {
		/*