diff options
author | David S. Miller <davem@davemloft.net> | 2010-05-19 14:06:29 +1000 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2010-05-19 14:06:29 +1000 |
commit | c783f7482f404d34498be354f4c0c859e14ce68c (patch) | |
tree | aa12d1ee59c0c6ab9e34fe4e69b0e14268de2ea6 | |
parent | bc0c4af91c778afb314a90bdc057dab5157dcd84 (diff) | |
download | linux-crypto-c783f7482f404d34498be354f4c0c859e14ce68c.tar.gz linux-crypto-c783f7482f404d34498be354f4c0c859e14ce68c.zip |
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 <davem@davemloft.net>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r-- | crypto/scatterwalk.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/crypto/scatterwalk.c b/crypto/scatterwalk.c index 3de89a42..41e529af 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); |