[PATCH v4 0/7] Fixes and rework for paes_s390 and phmac_s390
Harald Freudenberger <[email protected]>
| Newsgroups | org.kernel.vger.linux-s390 |
|---|---|
| Message-ID | <[email protected]> |
Fix and rework some issues around arch/s390/paes_s390.c and
arch/s390/phmac_s390.c:
- Fix skcipher_walk return code handling in paes_s390
- Add scrub of some temp buffers
- Shift from using a mutex to using a semaphore in PAES CTR
Surprisingly clang code analysis is able to deal with semaphores and
thus the shift also fixes the issue with CONTEXT_ANALYSIS enabled.
- And some more fixes related to paes and phmac (see changelog).
For more details please see patch headers.
Changelog:
v1: initial version - however, all these patches are follow up patches
from a similar patch queue for aes_s390.c
v2: - On one error path in the CTR implementation the scrubbing of a
temp buffer could be bypassed. Also checked Sashikos claim about
possible double free but this is not the case.
- All paes algorithms did not set any base.cra_flags. So now set
the ASYNC and the NO_FALLBACK flag.
- If a request is pushed to the crypto engine there is another
return code EBUSY also indicating success but the code handled
this as a failure.
- The very same was with the phmac implementation. So corrected
the return code handling there as well.
v3: - Reworked the -EBUSY handling in paes and phmac again. The
synchronous path could have emitted -EBUSY also and would have
triggered the failure handling. So map -EBUSY to -EINPROGRESS.
v4: - Mapping EBUSY to EINPROGRESS is not the right approach. So
reworked again more thoroughly.
- There came another reply from Sashiko about a possible double
processing maybe even double free as a result of wrongly
returning a failure code in the callback functions back to the
engine when a request has been completed. The callback must
return 0 - so another patch for this.
Harald Freudenberger (7):
s390/crypto: Fix return code handling at skcipher_walk_done in PAES
algorithms
s390/crypto: Fix missing scrub of temp buffers with PAES algorithm
s390/crypto: Fix use of mutex in atomic context in PAES
s390/crypto: Fix missing cra_flags in paes_s390
s390/crypto: Fix handling of EBUSY in PAES when req is pushed to
crypto engine
s390/crypto: Fix handling of EBUSY in PHMAC when req is pushed to
crypto engine
s390/crypto: Fix wrong return code to engine in asynch callbacks
arch/s390/crypto/paes_s390.c | 96 ++++++++++++++++++++++++-----------
arch/s390/crypto/phmac_s390.c | 32 ++++++++----
2 files changed, 87 insertions(+), 41 deletions(-)
--
2.43.0