linux/arch/arm64/kvm
Vincent Donnefort d66e50beb9 KVM: arm64: FFA: Release hyp rx buffer
According to the FF-A spec (Buffer states and ownership), after a
producer has written into a buffer, it is "full" and now owned by the
consumer. The producer won't be able to use that buffer, until the
consumer hands it over with an invocation such as RX_RELEASE.

It is clear in the following paragraph (Transfer of buffer ownership),
that MEM_RETRIEVE_RESP is transferring the ownership from producer (in
our case SPM) to consumer (hypervisor). RX_RELEASE is therefore
mandatory here.

It is less clear though what is happening with MEM_FRAG_TX. But this
invocation, as a response to MEM_FRAG_RX writes into the same hypervisor
RX buffer (see paragraph "Transmission of transaction descriptor in
fragments"). Also this is matching the TF-A implementation where the RX
buffer is marked "full" during a MEM_FRAG_RX.

Release the RX hypervisor buffer in those two cases. This will unblock
later invocations using this buffer which would otherwise fail.
(RETRIEVE_REQ, MEM_FRAG_RX and PARTITION_INFO_GET).

Signed-off-by: Vincent Donnefort <vdonnefort@google.com>
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Link: https://lore.kernel.org/r/20240611175317.1220842-1-vdonnefort@google.com
Signed-off-by: Marc Zyngier <maz@kernel.org>
2024-06-11 19:39:22 +01:00
..
hyp KVM: arm64: FFA: Release hyp rx buffer 2024-06-11 19:39:22 +01:00
vgic KVM: arm64: Disassociate vcpus from redistributor region on teardown 2024-06-06 08:54:15 +01:00
.gitignore KVM: arm64: Generate hyp_constants.h for the host 2021-12-06 08:37:03 +00:00
arch_timer.c KVM: arm64: Fix typos 2024-02-24 09:13:33 +00:00
arm.c KVM: arm64: Consolidate initializing the host data's fpsimd_state/sve in pKVM 2024-06-04 15:06:33 +01:00
debug.c KVM: arm64: debug: fix kernel-doc warnings 2024-02-01 20:25:41 +00:00
emulate-nested.c KVM: arm64: nv: Fix relative priorities of exceptions generated by ERETAx 2024-05-30 17:36:22 +01:00
fpsimd.c KVM: arm64: Ensure that SME controls are disabled in protected mode 2024-06-04 15:06:33 +01:00
guest.c KVM: arm64: Allow AArch32 PSTATE.M to be restored as System mode 2024-05-27 17:45:35 +01:00
handle_exit.c KVM: arm64: Drop trapping of PAuth instructions/keys 2024-04-20 12:42:51 +01:00
hypercalls.c Merge branch kvm-arm64/smccc-filter-cleanups into kvmarm/next 2023-10-30 20:18:37 +00:00
inject_fault.c KVM: arm64: Fix typos 2024-02-24 09:13:33 +00:00
Kconfig Revert "KVM: arm64: Snapshot all non-zero RES0/RES1 sysreg fields for later checking" 2024-03-15 17:50:22 -07:00
Makefile Kbuild updates for v6.10 2024-05-18 12:39:20 -07:00
mmio.c KVM: arm64: Force injection of a data abort on NISV MMIO exit 2024-05-01 16:48:15 +01:00
mmu.c KVM/arm64 updates for Linux 6.10 2024-05-12 03:15:53 -04:00
nested.c KVM: arm64: nv: Expose BTI and CSV_frac to a guest hypervisor 2024-05-30 17:36:22 +01:00
pauth.c KVM: arm64: nv: Work around lack of pauth support in old toolchains 2024-04-23 19:27:11 +01:00
pkvm.c KVM: arm64: Prevent kmemleak from accessing .hyp.data 2024-05-01 16:48:14 +01:00
pmu-emul.c Merge branch kvm-arm64/kerneldoc into kvmarm/next 2024-03-07 00:56:16 +00:00
pmu.c KVM: arm64: Add accessor for per-CPU state 2024-04-12 13:57:30 +01:00
psci.c Merge branch kvm-arm64/smccc-filtering into kvmarm-master/next 2023-04-21 09:44:32 +01:00
pvtime.c KVM: MMU: Make the definition of 'INVALID_GPA' common 2023-01-19 21:48:38 +00:00
reset.c KVM: arm64: Allocate memory mapped at hyp for host sve state in pKVM 2024-06-04 15:06:33 +01:00
stacktrace.c arm64: stacktrace: track hyp stacks in unwinder's address space 2022-09-09 12:30:08 +01:00
sys_regs.c Merge branch kvm-arm64/mpidr-reset into kvmarm-master/next 2024-05-09 18:44:15 +01:00
sys_regs.h KVM: arm64: Rename __check_nv_sr_forward() to triage_sysreg_trap() 2024-02-19 17:13:01 +00:00
trace_arm.h KVM: arm64: Add tracepoint for MMIO accesses where ISV==0 2023-10-30 20:17:22 +00:00
trace_handle_exit.h KVM: arm64: Upgrade trace_kvm_arm_set_dreg32() to 64bit 2021-08-20 11:12:18 +01:00
trace.h
trng.c
va_layout.c arm64: alternatives: kvm: prepare for cap changes 2022-09-16 17:15:02 +01:00
vgic-sys-reg-v3.c KVM: arm64: vgic-v3: Convert userspace accessors over to FIELD_GET/FIELD_PREP 2022-07-17 11:55:33 +01:00
vmid.c KVM: arm64: Reload stage-2 for VMID change on VHE 2023-10-20 17:52:01 +00:00