diff options
author | David S. Miller <davem@davemloft.net> | 2010-05-19 00:06:29 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2010-05-19 00:06:29 -0400 |
commit | 85c6201a80ce4464a52c58a5f5ea8de15a557a6f (patch) | |
tree | 16a0ef528745a1d8404faadac2d7a5eeaf4b95a1 | |
parent | 3385329a0a0f1d31ca1d011c7887006a7e5a9902 (diff) |
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 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, | |||
68 | 68 | ||
69 | void scatterwalk_done(struct scatter_walk *walk, int out, int more) | 69 | void scatterwalk_done(struct scatter_walk *walk, int out, int more) |
70 | { | 70 | { |
71 | if (!offset_in_page(walk->offset) || !more) | 71 | if (!(scatterwalk_pagelen(walk) & (PAGE_SIZE - 1)) || !more) |
72 | scatterwalk_pagedone(walk, out, more); | 72 | scatterwalk_pagedone(walk, out, more); |
73 | } | 73 | } |
74 | EXPORT_SYMBOL_GPL(scatterwalk_done); | 74 | EXPORT_SYMBOL_GPL(scatterwalk_done); |