1
linux/arch/microblaze/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
..
asm-compat.h microblaze: Copy ppc asm-compat.h for clean handling of constants in asm and C 2009-09-22 10:10:06 +02:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
atomic.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
auxvec.h microblaze: Fix problem with removing zero length files 2009-04-14 10:37:09 +02:00
bitops.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
bug.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
bugs.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
byteorder.h
cache.h microblaze: Move cache macro from cache.h to cacheflush.h 2009-12-14 08:45:00 +01:00
cacheflush.h microblaze: Support for WB cache 2009-12-14 08:45:10 +01:00
checksum.h microblaze: use the generic lib/checksum.c 2009-07-06 10:26:52 +02:00
clinkage.h
cpuinfo.h microblaze: Extend cpuinfo for support write-back caches 2009-12-14 08:44:58 +01:00
cputable.h microblaze: Fix problem with removing zero length files 2009-04-14 10:37:09 +02:00
cputime.h
current.h microblaze_mmu_v2: Add CURRENT_TASK for entry.S 2009-05-26 16:45:19 +02:00
delay.h
device.h microblaze: Adding dev_arch_data functions 2009-12-14 08:45:04 +01:00
div64.h
dma-mapping.h microblaze: use generic dma-mapping-broken.h 2009-05-21 15:56:07 +02:00
dma.h microblaze_mmu_v2: Update dma.h for MMU 2009-05-26 16:45:22 +02:00
elf.h elf: kill USE_ELF_CORE_DUMP 2009-12-16 07:20:12 -08:00
emergency-restart.h
entry.h microblaze_mmu_v2: entry.S, entry.h 2009-05-26 16:45:20 +02:00
errno.h
exceptions.h microblaze_mmu_v2: Traps MMU update 2009-05-26 16:45:21 +02:00
fb.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
fcntl.h microblaze_v8: fcntl.h sockios.h ucontext.h 2009-03-27 14:25:45 +01:00
flat.h microblaze: remove unused flat_stack_align() definition 2009-06-02 07:54:36 +02:00
ftrace.h microblaze: ftrace: Add dynamic trace support 2009-12-14 08:44:01 +01:00
futex.h microblaze: Futex support 2009-12-14 08:45:04 +01:00
gpio.h microblaze: Remove POWERPC reference from Microblaze gpio.h 2009-05-21 15:56:04 +02:00
hardirq.h microblaze: use the generic ack_bad_irq implementation 2009-08-18 10:33:29 +02:00
hw_irq.h microblaze: Fix problem with removing zero length files 2009-04-14 10:37:09 +02:00
io.h microblaze: Add architectural support for USB EHCI host controllers 2009-09-22 08:50:14 +02:00
ioctl.h
ioctls.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
ipcbuf.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
irq_regs.h
irq.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
irqflags.h microblaze: Add TRACE_IRQFLAGS_SUPPORT 2009-12-14 08:40:09 +01:00
Kbuild microblaze: Kbuild update 2009-05-22 09:50:46 +02:00
kdebug.h
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
linkage.h
lmb.h
local.h
mman.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
mmu_context_mm.h microblaze_mmu_v2: Context handling - mmu_context.c/h 2009-05-26 16:45:15 +02:00
mmu_context.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
mmu.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
module.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
msgbuf.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
mutex.h
namei.h
of_device.h
of_platform.h of: make of_(un)register_platform_driver common code 2009-05-02 15:36:10 -07:00
page.h microblaze: Fix pfn_valid() for noMMU 2009-12-14 08:44:55 +01:00
param.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
parport.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
pci-bridge.h microblaze_v8: pci headers 2009-03-27 14:25:48 +01:00
pci.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
percpu.h
pgalloc.h microblaze: Remove duplicity from pgalloc.h 2009-12-14 08:45:05 +01:00
pgtable.h microblaze: Add _PAGE_FILE macros to pgtable.h 2009-07-27 07:39:54 +02:00
poll.h microblaze_v8: pool.h socket.h 2009-03-27 14:25:44 +01:00
posix_types.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
processor.h microblaze_mmu_v2: Update process creation for MMU 2009-05-26 16:45:18 +02:00
prom.h of: merge other miscellaneous prototypes 2009-10-15 10:58:07 -06:00
ptrace.h microblaze: Add PT_ macros for special purpose regs 2010-01-18 16:35:39 +01:00
pvr.h microblaze: Checking DTS against PVR for write-back cache 2009-12-14 08:45:05 +01:00
registers.h microblaze_mmu_v2: Update process creation for MMU 2009-05-26 16:45:18 +02:00
resource.h
scatterlist.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
sections.h microblaze_mmu_v2: Page table - ioremap - pgtable.c/h, section update 2009-05-26 16:45:16 +02:00
segment.h microblaze_mmu_v2: Update process creation for MMU 2009-05-26 16:45:18 +02:00
selfmod.h
sembuf.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
serial.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
setup.h microblaze: GPIO reset support 2009-12-14 08:40:08 +01:00
shmbuf.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
shmparam.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
sigcontext.h
siginfo.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
signal.h microblaze: clean up signal handling 2009-07-06 10:26:57 +02:00
socket.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
sockios.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
stat.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
statfs.h
string.h microblaze: Guard __HAVE_ARCH macros with __KERNEL__ in string.h 2009-05-21 15:56:08 +02:00
swab.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
syscall.h microblaze: Implement include/asm/syscall.h. 2009-09-21 14:29:21 +02:00
syscalls.h microblaze: use generic syscalls.h 2009-07-06 10:26:59 +02:00
system.h microblaze: Lockdep support 2009-12-14 08:40:09 +01:00
termbits.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
termios.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
thread_info.h sched: INIT_PREEMPT_COUNT 2009-07-10 14:24:05 -07:00
timex.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
tlb.h microblaze: Define tlb_flush macro 2009-07-27 07:39:53 +02:00
tlbflush.h MM: Pass a PTE pointer to update_mmu_cache() rather than the PTE itself 2010-02-20 16:41:46 +00:00
topology.h microblaze_v8: device.h param.h topology.h 2009-03-27 14:25:44 +01:00
types.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
uaccess.h microblaze: Simple __copy_tofrom_user for noMMU 2009-12-14 08:45:03 +01:00
ucontext.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
unaligned.h microblaze: Don't use access_ok for unaligned 2009-06-02 08:39:16 +02:00
unistd.h microblaze: Enable accept4 syscall 2010-01-18 16:35:27 +01:00
user.h microblaze: Fix problem with removing zero length files 2009-04-14 10:37:09 +02:00
vga.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
xor.h