summaryrefslogtreecommitdiffstats
path: root/crypto/scatterwalk.c
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2009-02-09 14:22:14 +1100
committerHerbert Xu <herbert@gondor.apana.org.au>2009-02-09 14:30:25 +1100
commit4f3e797ad07d52d34983354a77b365dfcd48c1b4 (patch)
tree0c45ac9add06b72dac5e1da1c0023aa019ff2ac2 /crypto/scatterwalk.c
parent412e87ae5d852bc3d836f475c19d954b3324363d (diff)
downloadlinux-4f3e797ad07d52d34983354a77b365dfcd48c1b4.tar.gz
linux-4f3e797ad07d52d34983354a77b365dfcd48c1b4.tar.bz2
linux-4f3e797ad07d52d34983354a77b365dfcd48c1b4.zip
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.c3
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,
struct page *page;
page = sg_page(walk->sg) + ((walk->offset - 1) >> PAGE_SHIFT);
- flush_dcache_page(page);
+ if (!PageSlab(page))
+ flush_dcache_page(page);
}
if (more) {