14 Dec, 2006
1 commit
-
Remove useless includes of linux/io.h, don't even try to build iomap_copy
on uml (it doesn't have readb() et.al., so...)Signed-off-by: Al Viro
Acked-by: Jeff Dike
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
01 Oct, 2006
2 commits
-
The existing implementation of ioremap_page_range(), which was taken
from i386, does this:flush_cache_all();
/* modify page tables */
flush_tlb_all();I think this is a bit defensive, so this patch changes the generic
implementation to do:/* modify page tables */
flush_cache_vmap(start, end);instead, which is similar to what vmalloc() does. This should still
be correct because we never modify existing PTEs. According to
James Bottomley:The problem the flush_tlb_all() is trying to solve is to avoid stale tlb
entries in the ioremap area. We're just being conservative by flushing
on both map and unmap. Technically what vmalloc/vfree does (only flush
the tlb on unmap) is just fine because it means that the only tlb
entries in the remap area must belong to in-use mappings.Signed-off-by: Haavard Skinnemoen
Cc: Richard Henderson
Cc: Ivan Kokshaysky
Cc: Russell King
Cc: Mikael Starvik
Cc: Andi Kleen
Cc:
Cc: Ralf Baechle
Cc: Kyle McMartin
Cc: Martin Schwidefsky
Cc: Paul Mundt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This patch adds a generic implementation of ioremap_page_range() in
lib/ioremap.c based on the i386 implementation. It differs from the
i386 version in the following ways:* The PTE flags are passed as a pgprot_t argument and must be
determined up front by the arch-specific code. No additional
PTE flags are added.
* Uses set_pte_at() instead of set_pte()[bunk@stusta.de: warning fix]
]dhowells@redhat.com: nommu build fix]
Signed-off-by: Haavard Skinnemoen
Cc: Richard Henderson
Cc: Ivan Kokshaysky
Cc: Russell King
Cc: Mikael Starvik
Cc: Andi Kleen
Cc:
Cc: Ralf Baechle
Cc: Kyle McMartin
Cc: Martin Schwidefsky
Cc: Paul Mundt
Signed-off-by: Adrian Bunk
Signed-off-by: David Howells
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds