linux/arch/xtensa/include/asm
Russell King 4b3073e1c5 MM: Pass a PTE pointer to update_mmu_cache() rather than the PTE itself
On VIVT ARM, when we have multiple shared mappings of the same file
in the same MM, we need to ensure that we have coherency across all
copies.  We do this via make_coherent() by making the pages
uncacheable.

This used to work fine, until we allowed highmem with highpte - we
now have a page table which is mapped as required, and is not available
for modification via update_mmu_cache().

Ralf Beache suggested getting rid of the PTE value passed to
update_mmu_cache():

  On MIPS update_mmu_cache() calls __update_tlb() which walks pagetables
  to construct a pointer to the pte again.  Passing a pte_t * is much
  more elegant.  Maybe we might even replace the pte argument with the
  pte_t?

Ben Herrenschmidt would also like the pte pointer for PowerPC:

  Passing the ptep in there is exactly what I want.  I want that
  -instead- of the PTE value, because I have issue on some ppc cases,
  for I$/D$ coherency, where set_pte_at() may decide to mask out the
  _PAGE_EXEC.

So, pass in the mapped page table pointer into update_mmu_cache(), and
remove the PTE value, updating all implementations and call sites to
suit.

Includes a fix from Stephen Rothwell:

  sparc: fix fallout from update_mmu_cache API change

  Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>

Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2010-02-20 16:41:46 +00:00
..
Kbuild byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
asmmacro.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
atomic.h asm-generic: rename atomic.h to atomic-long.h 2009-06-11 21:02:17 +02:00
auxvec.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
bitops.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/czankel/xtensa-2.6 2009-01-07 11:56:29 -08:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
bootparam.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
bug.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
bugs.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
byteorder.h byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
cache.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
cacheasm.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
cacheflush.h block: add helpers to run flush_dcache_page() against a bio and a request's pages 2009-11-26 09:16:19 +01:00
checksum.h xtensa: Fix checksum header file 2009-05-11 21:48:23 -07:00
coprocessor.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
cpumask.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
cputime.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
current.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
delay.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
device.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
div64.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
dma-mapping.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
dma.h xtensa: nommu support 2009-04-02 23:41:50 -07:00
elf.h elf: kill USE_ELF_CORE_DUMP 2009-12-16 07:20:12 -08:00
emergency-restart.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
errno.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
fb.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
fcntl.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
flat.h xtensa: add flat support 2009-04-02 23:41:29 -07:00
ftrace.h tracing: make CALLER_ADDRx overwriteable 2009-03-02 16:49:37 -05:00
futex.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
gpio.h xtensa: support s6000 gpio irqs and alternate function selection 2009-06-22 02:37:26 -07:00
hardirq.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
highmem.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
hw_irq.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
io.h xtensa: nommu support 2009-04-02 23:41:50 -07:00
ioctl.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
ioctls.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
ipcbuf.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
irq.h xtensa: allow variant to initialize own irq chips 2009-06-22 02:36:59 -07:00
irq_regs.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
kdebug.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
linkage.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
local.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
mman.h mm: add MAP_HUGETLB for mmaping pseudo-anonymous huge page regions 2009-09-22 07:17:41 -07:00
mmu.h xtensa: nommu support 2009-04-02 23:41:50 -07:00
mmu_context.h xtensa: nommu support 2009-04-02 23:41:50 -07:00
module.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
msgbuf.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
mutex.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
nommu.h xtensa: nommu support 2009-04-02 23:41:50 -07:00
nommu_context.h xtensa: nommu support 2009-04-02 23:41:50 -07:00
page.h asm-generic: rename page.h and uaccess.h 2009-06-11 21:02:17 +02:00
param.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
pci-bridge.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
pci.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
percpu.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
pgalloc.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
pgtable.h MM: Pass a PTE pointer to update_mmu_cache() rather than the PTE itself 2010-02-20 16:41:46 +00:00
platform.h xtensa: remove platform rtc hooks 2009-04-02 23:45:07 -07:00
poll.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
posix_types.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
processor.h xtensa: nommu support 2009-04-02 23:41:50 -07:00
ptrace.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
regs.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
resource.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
rmap.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
rwsem.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
scatterlist.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
sections.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
segment.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
sembuf.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
serial.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
setup.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
shmbuf.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
shmparam.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
sigcontext.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
siginfo.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
signal.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
smp.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
socket.h net: Generalize socket rx gap / receive queue overflow cmsg 2009-10-12 13:26:31 -07:00
sockios.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
spinlock.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
stat.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
statfs.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
string.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
swab.h headers_check fix: xtensa, swab.h 2009-02-01 11:01:30 +05:30
syscall.h sanitize do_pipe_flags() callers in arch 2009-12-16 12:16:40 -05:00
system.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
termbits.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
termios.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
thread_info.h sched: INIT_PREEMPT_COUNT 2009-07-10 14:24:05 -07:00
timex.h xtensa: fix wrong extern declaration renamed in code using it 2009-05-11 22:00:11 -07:00
tlb.h mm: Pass virtual address to [__]p{te,ud,md}_free_tlb() 2009-07-27 12:10:38 -07:00
tlbflush.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
topology.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
types.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
uaccess.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
ucontext.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
unaligned.h xtensa: switch to packed struct unaligned access implementation 2008-11-11 06:14:10 -08:00
unistd.h sanitize do_pipe_flags() callers in arch 2009-12-16 12:16:40 -05:00
user.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
vga.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00
xor.h xtensa: move headers files to arch/xtensa/include 2008-11-06 10:25:09 -08:00