crypto: caam - fix gfp allocation flags (part I)
authorHoria Geantă <horia.geanta@nxp.com>
Mon, 19 Jun 2017 08:44:45 +0000 (11:44 +0300)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 22 Jun 2017 08:47:22 +0000 (16:47 +0800)
commit42cfcafb91dabb0f9d9e08396c39824535948c67
treedd4b5c603f4893b7a7714f33149ee1703d318652
parentb61929c654f2e725644935737c4c1ea9c741e2f8
crypto: caam - fix gfp allocation flags (part I)

Changes in the SW cts (ciphertext stealing) code in
commit 0605c41cc53ca ("crypto: cts - Convert to skcipher")
revealed a problem in the CAAM driver:
when cts(cbc(aes)) is executed and cts runs in SW,
cbc(aes) is offloaded in CAAM; cts encrypts the last block
in atomic context and CAAM incorrectly decides to use GFP_KERNEL
for memory allocation.

Fix this by allowing GFP_KERNEL (sleeping) only when MAY_SLEEP flag is
set, i.e. remove MAY_BACKLOG flag.

We split the fix in two parts - first is sent to -stable, while the
second is not (since there is no known failure case).

Link: http://lkml.kernel.org/g/20170602122446.2427-1-david@sigma-star.at
Cc: <stable@vger.kernel.org> # 4.8+
Reported-by: David Gstir <david@sigma-star.at>
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/caam/caamalg.c