All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 0/9] Fixes and rework for paes_s390 and phmac_s390
@ 2026-08-21  8:46 Harald Freudenberger
  2026-08-21  8:46 ` [PATCH v6 1/9] s390/crypto: Fix return code handling at skcipher_walk_done in PAES algorithms Harald Freudenberger
                   ` (8 more replies)
  0 siblings, 9 replies; 21+ messages in thread
From: Harald Freudenberger @ 2026-08-21  8:46 UTC (permalink / raw)
  To: Heiko Carstens, Vasily Gorbik, Alexander Gordeev
  Cc: freude, linux-s390, dengler

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.
v5: - Sashiko found a potential for a deadlock with phmac where a
      persistent key conversion failure results in an -EBUSY which is
      as such written into the request. However, -EBUSY is swallowed
      by the engine layer and thus the calling process never gets it's
      callback invoked and may wait forever. So map -EBUSY to -EIO in
      the conversion function when there is a persistent inability to
      convert a key - in the end this is an IO failure. 
v6: - Added Fixes and Cc tags to patch #8.
    - And finally picked Heiko's update on arch/s390/Makefile to enable
      context analysis for the clang compiler.

Harald Freudenberger (8):
  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
  s390/crypto: Map EBUSY to EIO when key conversion fails repeatedly

Heiko Carstens (1):
  s390/crypto: Enable CONTEXT_ANALYSIS

 arch/s390/crypto/Makefile     |   2 +
 arch/s390/crypto/paes_s390.c  | 100 +++++++++++++++++++++++-----------
 arch/s390/crypto/phmac_s390.c |  36 ++++++++----
 3 files changed, 97 insertions(+), 41 deletions(-)


base-commit: f5098b6bae761e346ebcd9da7f95622c04733cff
--
2.43.0


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2026-08-21 10:08 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-21  8:46 [PATCH v6 0/9] Fixes and rework for paes_s390 and phmac_s390 Harald Freudenberger
2026-08-21  8:46 ` [PATCH v6 1/9] s390/crypto: Fix return code handling at skcipher_walk_done in PAES algorithms Harald Freudenberger
2026-08-21  8:57   ` sashiko-bot
2026-08-21  8:46 ` [PATCH v6 2/9] s390/crypto: Fix missing scrub of temp buffers with PAES algorithm Harald Freudenberger
2026-08-21  8:58   ` sashiko-bot
2026-08-21  9:04     ` Harald Freudenberger
2026-08-21  8:46 ` [PATCH v6 3/9] s390/crypto: Fix use of mutex in atomic context in PAES Harald Freudenberger
2026-08-21  8:56   ` sashiko-bot
2026-08-21  9:01     ` Harald Freudenberger
2026-08-21  8:46 ` [PATCH v6 4/9] s390/crypto: Fix missing cra_flags in paes_s390 Harald Freudenberger
2026-08-21  8:52   ` sashiko-bot
2026-08-21  8:46 ` [PATCH v6 5/9] s390/crypto: Fix handling of EBUSY in PAES when req is pushed to crypto engine Harald Freudenberger
2026-08-21 10:08   ` sashiko-bot
2026-08-21  8:46 ` [PATCH v6 6/9] s390/crypto: Fix handling of EBUSY in PHMAC " Harald Freudenberger
2026-08-21  9:00   ` sashiko-bot
2026-08-21  8:46 ` [PATCH v6 7/9] s390/crypto: Fix wrong return code to engine in asynch callbacks Harald Freudenberger
2026-08-21  8:54   ` sashiko-bot
2026-08-21  8:46 ` [PATCH v6 8/9] s390/crypto: Map EBUSY to EIO when key conversion fails repeatedly Harald Freudenberger
2026-08-21  8:59   ` sashiko-bot
2026-08-21  8:46 ` [PATCH v6 9/9] s390/crypto: Enable CONTEXT_ANALYSIS Harald Freudenberger
2026-08-21  8:55   ` sashiko-bot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.