twx-linux/arch/parisc/kernel
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
..
.gitignore
asm-offsets.c
binfmt_elf32.c parisc: fix redefinition of SET_PERSONALITY 2013-03-02 20:15:28 +01:00
cache.c parisc: use spin_lock_irqsave/spin_unlock_irqrestore for PTE updates 2013-04-25 22:37:00 +02:00
drivers.c parisc: Add export.h to files needing EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:00 -04:00
entry.S Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2013-02-23 18:50:11 -08:00
firmware.c Disintegrate asm/system.h for PA-RISC 2012-03-28 18:30:02 +01:00
ftrace.c
hardware.c ARCH: drivers remove __dev* attributes. 2013-01-03 15:57:13 -08:00
head.S [PARISC] only make executable areas executable 2011-04-15 12:55:18 -05:00
hpmc.S
inventory.c parisc: fix possible memory leak in pat_query_module() 2013-02-20 22:47:11 +01:00
irq.c parisc: remove IRQF_DISABLED 2013-02-20 22:50:26 +01:00
Makefile parisc: Fix init_task fallout 2012-05-07 11:38:46 +02:00
module.c modules: don't hand 0 to vmalloc. 2012-12-14 13:06:43 +10:30
pa7300lc.c
pacache.S parisc: fixes and cleanups in page cache flushing (2/4) 2013-02-20 22:49:29 +01:00
parisc_ksyms.c parisc: Provide __ucmpdi2 to resolve undefined references in 32 bit builds. 2013-04-25 22:36:15 +02:00
pci-dma.c parisc: Add export.h to files needing EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:00 -04:00
pci.c parisc/PCI: factor out pcibios_setup() 2012-07-05 15:09:13 -06:00
pdc_chassis.c
pdc_cons.c TTY: switch tty_flip_buffer_push 2013-01-15 22:30:15 -08:00
perf_asm.S
perf_images.h
perf.c
process.c flagday: don't pass regs to copy_thread() 2012-11-28 23:43:42 -05:00
processor.c
ptrace.c parisc: improve ptrace support for gdb single-step 2013-01-07 23:06:27 +01:00
real2.S
setup.c parisc: Add export.h to files needing EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:00 -04:00
signal32.c parisc: fix error return codes for rt_sigaction and rt_sigprocmask 2013-02-20 22:57:02 +01:00
signal32.h parisc: switch to generic compat rt_sigaction() 2013-02-03 18:16:07 -05:00
signal.c parisc: remove unused variable 'compat_val' 2013-03-02 19:56:18 +01:00
smp.c parisc: Smp: remove call to ipi_call_lock()/ipi_call_unlock() 2012-06-05 17:27:12 +02:00
stacktrace.c
sys32.h parisc: switch to generic compat rt_sigaction() 2013-02-03 18:16:07 -05:00
sys_parisc32.c switch lseek to COMPAT_SYSCALL_DEFINE 2013-02-24 10:52:26 -05:00
sys_parisc.c mm: use vm_unmapped_area() on parisc architecture 2013-02-27 19:10:09 -08:00
syscall_table.S Merge branch 'fixes-for-3.9-latest' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux 2013-03-03 12:57:38 -08:00
syscall.S parisc: fix ptrace breakage 2013-02-20 22:51:11 +01:00
time.c parisc: move definition of PAGE0 to asm/page.h 2012-05-10 15:12:08 -07:00
topology.c
traps.c taint: add explicit flag to show whether lock dep is still OK. 2013-01-21 17:17:57 +10:30
unaligned.c
unwind.c
vmlinux.lds.S [PARISC] fix boot failure on 32-bit systems caused by branch stubs placed before .text 2012-05-25 10:52:17 +01:00