]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
crypto: inside-secure - do not rely on the hardware last bit for result descriptors
authorAntoine Tenart <antoine.tenart@bootlin.com>
Mon, 27 May 2019 14:51:06 +0000 (16:51 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 26 Jul 2019 07:12:31 +0000 (09:12 +0200)
commitc9fd5afc9c961d2a9153d2b94282d1f599e8d1ad
tree8372b40e9c09bff3df8f8baa46aea7e845b3db38
parentbfaada52b0ad20ab61094fb4c14eb98616ae0564
crypto: inside-secure - do not rely on the hardware last bit for result descriptors

[ Upstream commit 89332590427235680236b9470e851afc49b3caa1 ]

When performing a transformation the hardware is given result
descriptors to save the result data. Those result descriptors are
batched using a 'first' and a 'last' bit. There are cases were more
descriptors than needed are given to the engine, leading to the engine
only using some of them, and not setting the last bit on the last
descriptor we gave. This causes issues were the driver and the hardware
aren't in sync anymore about the number of result descriptors given (as
the driver do not give a pool of descriptor to use for any
transformation, but a pool of descriptors to use *per* transformation).

This patch fixes it by attaching the number of given result descriptors
to the requests, and by using this number instead of the 'last' bit
found on the descriptors to process them.

Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/crypto/inside-secure/safexcel_cipher.c