diff options
author | Vincent Donnefort <vdonnefort@google.com> | 2024-06-11 18:53:17 +0100 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2024-06-11 19:39:22 +0100 |
commit | d66e50beb91114f387bd798a371384b2a245e8cc (patch) | |
tree | b868faa2ab5e31c7281b5aa649725d139b0d6092 /scripts/mod/modpost.c | |
parent | 0d92e4a7ffd5c42b9fa864692f82476c0bf8bcc8 (diff) |
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>
Diffstat (limited to 'scripts/mod/modpost.c')
0 files changed, 0 insertions, 0 deletions