Patch "crypto: scatterwalk - Fix test in scatterwalk_done" has been added to the 3.14-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
crypto: scatterwalk - Fix test in scatterwalk_done
to the 3.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
crypto-scatterwalk-fix-test-in-scatterwalk_done.patch
and it can be found in the queue-3.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
5f070e81bee35f1b7bd1477bb223a873ff657803Mon Sep 17 00:00:00 2001
From: Herbert Xu <[email protected]>
Date: Tue, 12 Jul 2016 13:17:57 +0800
Subject: crypto: scatterwalk - Fix test in scatterwalk_done
From: Herbert Xu <[email protected]>
commit 5f070e81bee35f1b7bd1477bb223a873ff657803 upstream.
When there is more data to be processed, the current test in scatterwalk_done may prevent us from calling pagedone even when we should.
In particular, if we're on an SG entry spanning multiple pages where the last page is not a full page, we will incorrectly skip calling pagedone on the second last page.
This patch fixes this by adding a separate test for whether we've reached the end of a page.
--- crypto/scatterwalk.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
crypto/scatterwalk.c +2 -1
@@ -68,7 +68,8 @@ static void scatterwalk_pagedone(structvoid scatterwalk_done (struct scatter_walk *walk,int out,int more) { -if (!(scatterwalk_pagelen (walk) & (PAGE_SIZE -1 )) || !more) +if (!more || walk->offset >= walk->sg->offset + walk->sg->length || + !(walk->offset & (PAGE_SIZE -1 )))scatterwalk_pagedone (walk, out, more); }EXPORT_SYMBOL_GPL (scatterwalk_done);
Patches currently in stable-queue which might be from [email protected] are
queue-3.14/crypto-gcm-filter-out-async-ghash-if-necessary.patch queue-3.14/crypto-scatterwalk-fix-test-in-scatterwalk_done.patch