linux/arch/parisc/include/asm
John David Anglin 7633453978 parisc: fixes and cleanups in page cache flushing (1/4)
This is the first patch in a series of 4, with which the page cache flushing of
parisc will gets fixed and enhanced. This even fixes the nasty "minifail" bug
(http://wiki.parisc-linux.org/TestCases?highlight=%28minifail%29) which
prevented parisc to stay an official debian port.  Basically the flush in
copy_user_page together with the TLB patch from commit
7139bc1579 is what fixes the minifail bug.

This patch still uses the TMPALIAS approach.  The new copy_user_page
implementation calls flush_dcache_page_asm to flush the user dcache page
(crucial for minifail fix) via a kernel TMPALIAS mapping.  After that, it just
copies the page using the kernel mapping.  It does a final flush if needed.
Generally it is hard to avoid doing some cache flushes using the kernel mapping
(e.g., copy_to_user_page and copy_from_user_page).

This patch depends on a subsequent change to pacache.S implementing
clear_page_asm and copy_page_asm.  These are optimized routines to clear and
copy a page.  The calls in clear_user_page and copy_user_page could be replaced
by calls to memset and memcpy, respectively.  I tested prefetch optimizations
in clear_page_asm and copy_page_asm but didn't see any significant performance
improvement on rp3440.  I'm not sure if these are routines are significantly
faster than memset and/or memcpy, but they are there for further performance
evaluation.

Signed-off-by: John David Anglin <dave.anglin@bell.net>
Signed-off-by: Helge Deller <deller@gmx.de>
2013-02-20 22:49:19 +01:00
..
agp.h agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
asmregs.h
assembly.h parisc: fix 64bit build 2009-03-13 01:18:56 -04:00
atomic.h [PARISC] Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the casts 2012-07-25 09:08:46 +04:00
barrier.h Disintegrate asm/system.h for PA-RISC 2012-03-28 18:30:02 +01:00
bitops.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
bug.h [PARISC] fix missing TAINT_WARN problem 2012-06-05 14:10:17 +09:00
bugs.h
cache.h parisc: remove homegrown L1_CACHE_ALIGN macro 2010-10-21 21:20:09 -04:00
cacheflush.h highmem: kill all __kmap_atomic() 2012-03-20 21:48:30 +08:00
checksum.h parisc: fix ipv6 checksum 2009-01-05 19:11:05 +00:00
cmpxchg.h parisc: fix missing cmpxchg file error from system.h split 2012-04-02 14:41:26 -07:00
compat.h compat: move compat_siginfo_t definition to asm/compat.h 2012-10-06 03:05:16 +09:00
compat_rt_sigframe.h treewide: Put a space between #include and FILE 2012-06-28 11:44:36 +02:00
compat_ucontext.h
current.h
delay.h Disintegrate asm/system.h for PA-RISC 2012-03-28 18:30:02 +01:00
dma-mapping.h parisc: Provide dummy dma_mmap_coherent() and dma_get_sgtable() 2013-01-29 08:27:41 +01:00
dma.h Disintegrate asm/system.h for PA-RISC 2012-03-28 18:30:02 +01:00
eisa_bus.h
eisa_eeprom.h Fix common misspellings 2011-03-31 11:26:23 -03:00
elf.h elf: kill USE_ELF_CORE_DUMP 2009-12-16 07:20:12 -08:00
fb.h
fixmap.h parisc: rename parisc's vmalloc_start to parisc_vmalloc_start 2009-09-27 23:27:04 -04:00
floppy.h
ftrace.h parisc: add CALLER_ADDR{0-6} macros 2009-12-16 03:48:54 +00:00
futex.h [PARISC] futex: Use same lock set as lws calls 2012-02-27 09:35:08 -06:00
grfioctl.h
hardirq.h parisc: convert to asm-generic/hardirq.h 2009-09-28 00:24:23 -04:00
hardware.h parisc: drop include of asm/pdc.h from asm/hardware.h 2012-05-10 15:12:08 -07:00
ide.h
io.h parisc: define x->x mmio accessors 2009-03-13 01:20:48 -04:00
irq.h [PARISC] Convert to new irq_chip functions 2011-02-10 10:22:14 -06:00
irqflags.h Fix IRQ flag handling naming 2010-10-07 14:08:55 +01:00
kbdleds.h keyboard: Use BIOS Keyboard variable to set Numlock 2012-05-08 14:19:41 -07:00
Kbuild tracing,x86: Add a TSC trace_clock 2012-11-13 15:48:27 -05:00
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
ldcw.h Disintegrate asm/system.h for PA-RISC 2012-03-28 18:30:02 +01:00
led.h
linkage.h
machdep.h
mc146818rtc.h
mckinley.h
mmu.h
mmu_context.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
mmzone.h Fix node_start/end_pfn() definition for mm/page_cgroup.c 2011-06-27 14:13:09 -07:00
module.h Make most arch asm/module.h files use asm-generic/module.h 2012-09-28 14:31:03 +09:30
page.h parisc: fixes and cleanups in page cache flushing (1/4) 2013-02-20 22:49:19 +01:00
parisc-device.h parisc: struct device - replace bus_id with dev_name(), dev_set_name() 2008-11-26 22:22:41 +00:00
parport.h ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
pci.h PCI: collapse pcibios_resource_to_bus 2012-02-23 20:19:04 -07:00
pdc.h UAPI: (Scripted) Disintegrate arch/parisc/include/asm 2012-10-16 21:28:05 +01:00
pdc_chassis.h
pdcpat.h
perf.h
perf_event.h irq_work: Add generic hardirq context callbacks 2010-10-18 19:58:50 +02:00
pgalloc.h
pgtable.h [PARISC] Purge existing TLB entries in set_pte_at and ptep_set_wrprotect 2013-01-19 10:54:45 +00:00
prefetch.h [PARISC] fix panic on prefetch(NULL) on PA7300LC 2012-05-16 13:15:21 +01:00
processor.h kill stray kernel_thread() garbage 2012-11-28 21:53:36 -05:00
psw.h Disintegrate asm/system.h for PA-RISC 2012-03-28 18:30:02 +01:00
ptrace.h UAPI: (Scripted) Disintegrate arch/parisc/include/asm 2012-10-16 21:28:05 +01:00
ropes.h
rt_sigframe.h
rtc.h
runway.h
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
sections.h
serial.h
shmparam.h
signal.h unify default ptrace_signal_deliver 2012-11-29 00:01:23 -05:00
smp.h [PARISC] Fix parisc compile failure after smp: Add task_struct argument to __cpu_up() 2012-05-25 12:35:45 +01:00
special_insns.h Disintegrate asm/system.h for PA-RISC 2012-03-28 18:30:02 +01:00
spinlock.h parisc: add missing includes in asm/spinlock.h 2012-05-10 15:12:08 -07:00
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
string.h
superio.h
switch_to.h Disintegrate asm/system.h for PA-RISC 2012-03-28 18:30:02 +01:00
syscall.h parisc: add skeleton syscall.h 2009-09-27 23:07:23 -04:00
termios.h UAPI: (Scripted) Disintegrate arch/parisc/include/asm 2012-10-16 21:28:05 +01:00
thread_info.h parisc: decide whether to go to slow path (tracesys) based on thread flags 2012-10-01 09:58:14 -04:00
timex.h Disintegrate asm/system.h for PA-RISC 2012-03-28 18:30:02 +01:00
tlb.h mm: Pass virtual address to [__]p{te,ud,md}_free_tlb() 2009-07-27 12:10:38 -07:00
tlbflush.h parisc: ensure broadcast tlb purge runs single threaded 2009-07-03 03:34:09 +00:00
traps.h
uaccess.h [PARISC] update parisc to use generic strncpy_from_user() 2012-05-31 11:14:37 +01:00
ucontext.h
unaligned.h
unistd.h Bury the conditionals from kernel_thread/kernel_execve series 2012-12-19 18:07:38 -05:00
unwind.h