aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorJames Bottomley <James.Bottomley@SteelEye.com>2006-03-26 04:36:57 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-26 11:56:53 -0500
commit03beb07664d768db97bf454ae5c9581cd4737bb4 (patch)
treeb906c4db3a70627a58363193f3f843e7e2132ca1 /Documentation
parent64a07bd82ed526d813b64b0957543eef55bdf9c0 (diff)
[PATCH] Add API for flushing Anon pages
Currently, get_user_pages() returns fully coherent pages to the kernel for anything other than anonymous pages. This is a problem for things like fuse and the SCSI generic ioctl SG_IO which can potentially wish to do DMA to anonymous pages passed in by users. The fix is to add a new memory management API: flush_anon_page() which is used in get_user_pages() to make anonymous pages coherent. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com> Cc: Russell King <rmk@arm.linux.org.uk> Cc: "David S. Miller" <davem@davemloft.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/cachetlb.txt9
1 files changed, 9 insertions, 0 deletions
diff --git a/Documentation/cachetlb.txt b/Documentation/cachetlb.txt
index 4ae418889b88..1f312a9893d9 100644
--- a/Documentation/cachetlb.txt
+++ b/Documentation/cachetlb.txt
@@ -362,6 +362,15 @@ maps this page at its virtual address.
362 likely that you will need to flush the instruction cache 362 likely that you will need to flush the instruction cache
363 for copy_to_user_page(). 363 for copy_to_user_page().
364 364
365 void flush_anon_page(struct page *page, unsigned long vmaddr)
366 When the kernel needs to access the contents of an anonymous
367 page, it calls this function (currently only
368 get_user_pages()). Note: flush_dcache_page() deliberately
369 doesn't work for an anonymous page. The default
370 implementation is a nop (and should remain so for all coherent
371 architectures). For incoherent architectures, it should flush
372 the cache of the page at vmaddr in the current user process.
373
365 void flush_icache_range(unsigned long start, unsigned long end) 374 void flush_icache_range(unsigned long start, unsigned long end)
366 When the kernel stores into addresses that it will execute 375 When the kernel stores into addresses that it will execute
367 out of (eg when loading modules), this function is called. 376 out of (eg when loading modules), this function is called.