crypto: stm32 - fix loop iterating through scatterlist for DMA
commitd9c83f71ee
upstream. We were reading the length of the scatterlist sg after copying value of tsg inside. So we are using the size of the previous scatterlist and for the first one we are using an unitialised value. Fix this by copying tsg in sg[0] before reading the size. Fixes :8a1012d3f2
("crypto: stm32 - Support for STM32 HASH module") Cc: stable@vger.kernel.org Signed-off-by: Thomas Bourgoin <thomas.bourgoin@foss.st.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
177212bf6d
commit
bcac425fa6
@ -578,9 +578,9 @@ static int stm32_hash_dma_send(struct stm32_hash_dev *hdev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for_each_sg(rctx->sg, tsg, rctx->nents, i) {
|
for_each_sg(rctx->sg, tsg, rctx->nents, i) {
|
||||||
|
sg[0] = *tsg;
|
||||||
len = sg->length;
|
len = sg->length;
|
||||||
|
|
||||||
sg[0] = *tsg;
|
|
||||||
if (sg_is_last(sg)) {
|
if (sg_is_last(sg)) {
|
||||||
if (hdev->dma_mode == 1) {
|
if (hdev->dma_mode == 1) {
|
||||||
len = (ALIGN(sg->length, 16) - 16);
|
len = (ALIGN(sg->length, 16) - 16);
|
||||||
|
Reference in New Issue
Block a user