diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2009-02-08 22:22:14 -0500 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2009-02-08 22:30:25 -0500 |
commit | 4f3e797ad07d52d34983354a77b365dfcd48c1b4 (patch) | |
tree | 0c45ac9add06b72dac5e1da1c0023aa019ff2ac2 /crypto/scatterwalk.c | |
parent | 412e87ae5d852bc3d836f475c19d954b3324363d (diff) |
crypto: scatterwalk - Avoid flush_dcache_page on slab pages
It's illegal to call flush_dcache_page on slab pages on a number
of architectures. So this patch avoids doing so if PageSlab is
true.
In future we can move the flush_dcache_page call to those page
cache users that actually need it.
Reported-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/scatterwalk.c')
-rw-r--r-- | crypto/scatterwalk.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/crypto/scatterwalk.c b/crypto/scatterwalk.c index 9aeeb52004a5..3de89a424401 100644 --- a/crypto/scatterwalk.c +++ b/crypto/scatterwalk.c | |||
@@ -54,7 +54,8 @@ static void scatterwalk_pagedone(struct scatter_walk *walk, int out, | |||
54 | struct page *page; | 54 | struct page *page; |
55 | 55 | ||
56 | page = sg_page(walk->sg) + ((walk->offset - 1) >> PAGE_SHIFT); | 56 | page = sg_page(walk->sg) + ((walk->offset - 1) >> PAGE_SHIFT); |
57 | flush_dcache_page(page); | 57 | if (!PageSlab(page)) |
58 | flush_dcache_page(page); | ||
58 | } | 59 | } |
59 | 60 | ||
60 | if (more) { | 61 | if (more) { |