diff options
author | Mike Frysinger <vapier@gentoo.org> | 2011-05-24 20:12:53 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-25 11:39:37 -0400 |
commit | f68aa5b445fd00b67588ade611a4efb1a34dadb4 (patch) | |
tree | fcc4c8f74e96922d439d37ba045867f8e4952d8a /include/asm-generic/cacheflush.h | |
parent | cfa54a0fcfc1017c6f122b6f21aaba36daa07f71 (diff) |
asm-generic/cacheflush.h: flush icache when copying to user pages
The copy_to_user_page() function is supposed to flush the icache on the
memory that was written, but the current asm-generic version lacks that
logic. While normally it isn't a big deal as the asm-generic version of
icache flushing is a stub, it is a deal for ports that want to use the
asm-generic version as a baseline and then overlay its own specific parts
(like icache flushing).
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/asm-generic/cacheflush.h')
-rw-r--r-- | include/asm-generic/cacheflush.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/asm-generic/cacheflush.h b/include/asm-generic/cacheflush.h index 57b5c3c82e86..87bc536ccde3 100644 --- a/include/asm-generic/cacheflush.h +++ b/include/asm-generic/cacheflush.h | |||
@@ -24,7 +24,10 @@ | |||
24 | #define flush_cache_vunmap(start, end) do { } while (0) | 24 | #define flush_cache_vunmap(start, end) do { } while (0) |
25 | 25 | ||
26 | #define copy_to_user_page(vma, page, vaddr, dst, src, len) \ | 26 | #define copy_to_user_page(vma, page, vaddr, dst, src, len) \ |
27 | memcpy(dst, src, len) | 27 | do { \ |
28 | memcpy(dst, src, len); \ | ||
29 | flush_icache_user_range(vma, page, vaddr, len); \ | ||
30 | } while (0) | ||
28 | #define copy_from_user_page(vma, page, vaddr, dst, src, len) \ | 31 | #define copy_from_user_page(vma, page, vaddr, dst, src, len) \ |
29 | memcpy(dst, src, len) | 32 | memcpy(dst, src, len) |
30 | 33 | ||