Thread (19 messages) 19 messages, 6 authors, 2007-01-01

Re: fuse, get_user_pages, flush_anon_page, aliasing caches and all that again

From: Russell King <hidden>
Date: 2007-01-01 16:21:52
Also in: lkml

Possibly related (same subject, not in this thread)

On Mon, Jan 01, 2007 at 09:35:17AM -0500, James Bottomley wrote:
On Sat, 2006-12-30 at 10:26 -0800, Linus Torvalds wrote:
quoted
On Sat, 30 Dec 2006, Russell King wrote:
quoted
And here's the flush_anon_page() part.
This looks fine to me (if you need my ack).
quoted
quoted
Add flush_anon_page() for ARM, to avoid data corruption issues when using
fuse or other subsystems using get_user_pages().
Btw, since this doesn't actually change any code for anybody but ARM, just 
adds a parameter that is obviously unused by everybody else, and if it 
actually fixes a real bug for ARM, I'll obviously happily take it even 
before 2.6.20. So go ahead put it in your ARM tree, and we'll get some 
testing through that. And just ask me to pull at some point.

I wonder why nobody else seems to have a "flush_anon_page()"? This would 
seem to be a potential issue for architectures like sparc too.. Although 
maybe sparc can do a flush by physical index with "flush_dcache_page()".
The sparc handling of anonymous pages is different ... they accitentally
sweep them up in flush_dcache_page().  When I audited the architectures
to try to make fuse work on parisc, parisc and arm were the only ones
that actually needed flush_anon_page().
However, as David has said, anonymous pages _are_ supposed to be handled
by flush_dcache_page(), so I now have an (untested) implementation for
ARM which does this.  Therefore, I'm revoking the previous two patches.

-- 
Russell King
 Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/
 maintainer of:
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help