lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 12 Jun 2024 15:41:32 +0100
From: Sudeep Holla <sudeep.holla@....com>
To: Sebastian Ene <sebastianene@...gle.com>
Cc: catalin.marinas@....com, james.morse@....com, jean-philippe@...aro.org,
	Sudeep Holla <sudeep.holla@....com>, maz@...nel.org,
	oliver.upton@...ux.dev, qperret@...gle.com, qwandor@...gle.com,
	suzuki.poulose@....com, tabba@...gle.com, will@...nel.org,
	yuzenghui@...wei.com, lpieralisi@...nel.org, kvmarm@...ts.linux.dev,
	linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
	kernel-team@...roid.com
Subject: Re: [PATCH v2 4/4] KVM: arm64: Use FF-A 1.1 with pKVM

On Wed, May 15, 2024 at 05:22:58PM +0000, Sebastian Ene wrote:
> Now that the layout of the structures is compatible with 1.1 it is time
> to probe the 1.1 version of the FF-A protocol inside the hypervisor. If
> the TEE doesn't support it, it should return the minimum supported
> version.
>

LGTM,

Reviewed-by: Sudeep Holla <sudeep.holla@....com>

> Signed-off-by: Sebastian Ene <sebastianene@...gle.com>
> ---
>  arch/arm64/kvm/hyp/nvhe/ffa.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm64/kvm/hyp/nvhe/ffa.c b/arch/arm64/kvm/hyp/nvhe/ffa.c
> index f9664c4a348e..bdd70eb4114e 100644
> --- a/arch/arm64/kvm/hyp/nvhe/ffa.c
> +++ b/arch/arm64/kvm/hyp/nvhe/ffa.c
> @@ -458,7 +458,7 @@ static __always_inline void do_ffa_mem_xfer(const u64 func_id,
>  	memcpy(buf, host_buffers.tx, fraglen);
>
>  	ep_mem_access = (void *)buf +
> -			ffa_mem_desc_offset(buf, 0, FFA_VERSION_1_0);
> +			ffa_mem_desc_offset(buf, 0, hyp_ffa_version);
>  	offset = ep_mem_access->composite_off;
>  	if (!offset || buf->ep_count != 1 || buf->sender_id != HOST_FFA_ID) {
>  		ret = FFA_RET_INVALID_PARAMETERS;
> @@ -537,7 +537,7 @@ static void do_ffa_mem_reclaim(struct arm_smccc_res *res,
>  	fraglen = res->a2;
>
>  	ep_mem_access = (void *)buf +
> -			ffa_mem_desc_offset(buf, 0, FFA_VERSION_1_0);
> +			ffa_mem_desc_offset(buf, 0, hyp_ffa_version);
>  	offset = ep_mem_access->composite_off;
>  	/*
>  	 * We can trust the SPMD to get this right, but let's at least
> @@ -846,7 +846,7 @@ int hyp_ffa_init(void *pages)
>  	if (kvm_host_psci_config.smccc_version < ARM_SMCCC_VERSION_1_2)
>  		return 0;
>
> -	arm_smccc_1_1_smc(FFA_VERSION, FFA_VERSION_1_0, 0, 0, 0, 0, 0, 0, &res);
> +	arm_smccc_1_1_smc(FFA_VERSION, FFA_VERSION_1_1, 0, 0, 0, 0, 0, 0, &res);
>  	if (res.a0 == FFA_RET_NOT_SUPPORTED)
>  		return 0;
>
> @@ -866,7 +866,11 @@ int hyp_ffa_init(void *pages)
>  	if (FFA_MAJOR_VERSION(res.a0) != 1)
>  		return -EOPNOTSUPP;
>
> -	hyp_ffa_version = FFA_VERSION_1_0;
> +	if (FFA_MINOR_VERSION(res.a0) < FFA_MINOR_VERSION(FFA_VERSION_1_1))

It can be even <= instead of <, in that way else part is just handling
downgrading part and will be explicit. But that's just my taste and not
a must change as nothing changes with or without it.

--
Regards,
Sudeep

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ