linux/arch/parisc/include/asm
John David Anglin bda079d336 parisc: use spin_lock_irqsave/spin_unlock_irqrestore for PTE updates
User applications running on SMP kernels have long suffered from instability
and random segmentation faults.  This patch improves the situation although
there is more work to be done.

One of the problems is the various routines in pgtable.h that update page table
entries use different locking mechanisms, or no lock at all (set_pte_at).  This
change modifies the routines to all use the same lock pa_dbit_lock.  This lock
is used for dirty bit updates in the interruption code. The patch also purges
the TLB entries associated with the PTE to ensure that inconsistent values are
not used after the page table entry is updated.  The UP and SMP code are now
identical.

The change also includes a minor update to the purge_tlb_entries function in
cache.c to improve its efficiency.

Signed-off-by: John David Anglin <dave.anglin@bell.net>
Cc: Helge Deller <deller@gmx.de>
Signed-off-by: Helge Deller <deller@gmx.de>
2013-04-25 22:37:00 +02: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: fix compile warnings triggered by atomic_sub(sizeof(),v) 2013-03-02 20:01:05 +01: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: Change kunmap macro to static inline function 2013-04-25 22:36:31 +02: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_ucontext.h
compat.h parisc: convert msgrcv and msgsnd syscalls to use compat layer 2013-02-20 22:56:50 +01:00
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 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: 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_context.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
mmu.h
mmzone.h arch/parisc/include/asm: use ARRAY_SIZE macro in mmzone.h 2013-02-20 22:57:49 +01: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_chassis.h
pdc.h UAPI: (Scripted) Disintegrate arch/parisc/include/asm 2012-10-16 21:28:05 +01:00
pdcpat.h
perf_event.h irq_work: Add generic hardirq context callbacks 2010-10-18 19:58:50 +02:00
perf.h
pgalloc.h
pgtable.h parisc: use spin_lock_irqsave/spin_unlock_irqrestore for PTE updates 2013-04-25 22:37:00 +02: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 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
special_insns.h Disintegrate asm/system.h for PA-RISC 2012-03-28 18:30:02 +01:00
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
spinlock.h parisc: add missing includes in asm/spinlock.h 2012-05-10 15:12:08 -07: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: uaccess: fix compiler warnings caused by __put_user casting 2013-04-25 22:36:42 +02:00
ucontext.h
unaligned.h
unistd.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
unwind.h