linux-pinenote/arch/parisc/include/asm
John David Anglin f8dae00684 parisc: Ensure full cache coherency for kmap/kunmap
Helge Deller noted a few weeks ago problems with the AIO support on
parisc. This change is the result of numerous iterations on how best to
deal with this problem.

The solution adopted here is to provide full cache coherency in a
uniform manner on all parisc systems. This involves calling
flush_dcache_page() on kmap operations and flush_kernel_dcache_page() on
kunmap operations. As a result, the copy_user_page() and
clear_user_page() functions can be removed and the overall code is
simpler.

The change ensures that both userspace and kernel aliases to a mapped
page are invalidated and flushed. This is necessary for the correct
operation of PA8800 and PA8900 based systems which do not support
inequivalent aliases.

With this change, I have observed no cache related issues on c8000 and
rp3440. It is now possible for example to do kernel builds with "-j64"
on four way systems.

On systems using XFS file systems, the patch recently posted by Mikulas
Patocka to "fix crash using XFS on loopback" is needed to avoid a hang
caused by an uninitialized lock passed to flush_dcache_page() in the
page struct.

Signed-off-by: John David Anglin <dave.anglin@bell.net>
Cc: stable@vger.kernel.org # v3.9+
Signed-off-by: Helge Deller <deller@gmx.de>
2014-01-08 23:02:57 +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: provide macro to create exception table entries 2013-11-07 22:25:33 +01:00
atomic.h parisc: implement atomic64_dec_if_positive() 2013-05-06 23:10:04 +02: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 parisc: Ensure full cache coherency for kmap/kunmap 2014-01-08 23:02:57 +01:00
checksum.h
cmpxchg.h parisc: fix missing cmpxchg file error from system.h split 2012-04-02 14:41:26 -07:00
compat.h parisc: convert msgrcv and msgsnd syscalls to use compat layer 2013-02-20 22:56:50 +01:00
compat_ucontext.h
current.h
delay.h parisc: make udelay() SMP-safe 2013-11-07 22:28:26 +01:00
dma-mapping.h parisc: Provide default implementation for dma_{alloc, free}_attrs 2013-05-06 22:29:09 +02: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 parisc: fix personality on 32bit kernel 2013-02-20 22:55:26 +01: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 parisc: remove IRQF_DISABLED 2013-02-20 22:50:26 +01:00
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: do not count IPI calls twice 2013-11-07 22:28:54 +01: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
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 sched, arch: Create asm/preempt.h 2013-09-25 14:07:50 +02:00
kmap_types.h
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 parisc: fix kernel BUG at arch/parisc/include/asm/mmzone.h:50 (part 2) 2013-06-18 20:20:21 +02: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: Ensure full cache coherency for kmap/kunmap 2014-01-08 23:02:57 +01:00
parisc-device.h parisc: Fix interrupt routing for C8000 serial ports 2013-07-31 23:42:32 +02:00
parport.h ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
pci.h parisc: provide pci_mmap_page_range() for parisc 2013-06-18 20:29:08 +02: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 parisc: handle pgtable_page_ctor() fail 2013-11-15 09:32:18 +09:00
pgtable.h consolidate io_remap_pfn_range definitions 2013-06-29 12:46:35 +04:00
prefetch.h [PARISC] fix panic on prefetch(NULL) on PA7300LC 2012-05-16 13:15:21 +01:00
processor.h parisc: fix irq stack on UP and SMP 2013-05-24 23:29:01 +02:00
psw.h Disintegrate asm/system.h for PA-RISC 2012-03-28 18:30:02 +01:00
ptrace.h parisc: add kernel audit feature 2013-11-07 22:27:20 +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 parisc: remove empty SERIAL_PORT_DFNS in serial.h 2013-11-30 21:02:18 +01:00
shmparam.h
signal.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2013-02-23 18:50:11 -08: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
socket.h parisc: break out SOCK_NONBLOCK define to own asm header file 2013-11-19 23:36:17 +01:00
special_insns.h parisc: optimize mtsp(0,sr) inline assembly 2013-07-09 22:09:21 +02: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 preempt: Make PREEMPT_ACTIVE generic 2013-11-13 20:21:47 +01: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 volatile space register %sr1 is not clobbered 2013-07-09 22:09:22 +02:00
traps.h parisc: mark parisc_terminate() noreturn and cold. 2013-10-13 17:44:49 +02:00
uaccess.h Revert "parisc: implement full version of access_ok()" 2013-11-19 23:31:35 +01:00
ucontext.h
unaligned.h
unistd.h consolidate cond_syscall and SYSCALL_ALIAS declarations 2013-03-03 22:55:19 -05:00
unwind.h