]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
s390/ap: Rework ap_dqap to deal with messages greater than recv buffer
authorHarald Freudenberger <freude@linux.ibm.com>
Wed, 30 Jun 2021 14:10:56 +0000 (16:10 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Thu, 8 Jul 2021 13:37:27 +0000 (15:37 +0200)
commit1f0d22defd59f603d63ba51483eeb8d72726ce8b
tree2d5596036c3cdb260d56cc3b7902490f72ba25a2
parentbd39654a2282c1a51c044575a6bc00d641d5dfd1
s390/ap: Rework ap_dqap to deal with messages greater than recv buffer

Rework of the ap_dqap() inline function with the dqap inline assembler
invocation and the caller code in ap_queue.c to be able to handle
replies which exceed the receive buffer size.

ap_dqap() now provides two additional parameters to handle together
with the caller the case where a reply in the firmware queue entry
exceeds the given message buffer size. It depends on the caller how to
exactly handle this. The behavior implemented now by ap_sm_recv() in
ap_queue.c is to simple purge this entry from the firmware queue and
let the caller 'receive' a -EMSGSIZE for the request without
delivering any reply data - not even a truncated reply message.

However, the reworked ap_dqap() could now get invoked in a way that
the message is received in multiple parts and the caller assembles the
parts into one reply message.

Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
Suggested-by: Juergen Christ <jchrist@linux.ibm.com>
Reviewed-by: Juergen Christ <jchrist@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/include/asm/ap.h
drivers/s390/crypto/ap_queue.c