From: David S. Miller Date: Wed, 19 May 2010 04:06:29 +0000 (+1000) Subject: crypto: scatterwalk - Fix scatterwalk_done() test X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=85c6201a80ce4464a52c58a5f5ea8de15a557a6f;p=linux-beck.git crypto: scatterwalk - Fix scatterwalk_done() test We are done with the scattergather entry when the walk offset goes past sg->offset + sg->length, not when it crosses a page boundary. There is a similarly queer test in the second half of scatterwalk_pagedone() that probably needs some scrutiny. Signed-off-by: David S. Miller Signed-off-by: Herbert Xu --- diff --git a/crypto/scatterwalk.c b/crypto/scatterwalk.c index 3de89a424401..41e529af0773 100644 --- a/crypto/scatterwalk.c +++ b/crypto/scatterwalk.c @@ -68,7 +68,7 @@ static void scatterwalk_pagedone(struct scatter_walk *walk, int out, void scatterwalk_done(struct scatter_walk *walk, int out, int more) { - if (!offset_in_page(walk->offset) || !more) + if (!(scatterwalk_pagelen(walk) & (PAGE_SIZE - 1)) || !more) scatterwalk_pagedone(walk, out, more); } EXPORT_SYMBOL_GPL(scatterwalk_done);