linux/arch/parisc/include/asm
James Bottomley b7d4581844 [PARISC] prevent speculative re-read on cache flush
According to Appendix F, the TLB is the primary arbiter of speculation.
Thus, if a page has a TLB entry, it may be speculatively read into the
cache.  On linux, this can cause us incoherencies because if we're about
to do a disk read, we call get_user_pages() to do the flush/invalidate
in user space, but we still potentially have the user TLB entries, and
the cache could speculate the lines back into userspace (thus causing
stale data to be used).  This is fixed by purging the TLB entries before
we flush through the tmpalias space.  Now, the only way the line could
be re-speculated is if the user actually tries to touch it (which is not
allowed).

Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2011-04-15 12:55:56 -05: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 atomic_t: Cast to volatile when accessing atomic variables 2010-05-17 07:57:27 -07:00
auxvec.h
bitops.h bitops: remove minix bitops from asm/bitops.h 2011-03-23 19:46:22 -07:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
bug.h panic: Allow warnings to set different taint flags 2010-05-19 08:36:48 +01:00
bugs.h
byteorder.h byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
cache.h parisc: remove homegrown L1_CACHE_ALIGN macro 2010-10-21 21:20:09 -04:00
cacheflush.h [PARISC] prevent speculative re-read on cache flush 2011-04-15 12:55:56 -05:00
checksum.h parisc: fix ipv6 checksum 2009-01-05 19:11:05 +00:00
compat_rt_sigframe.h
compat_signal.h
compat_ucontext.h
compat.h compat: Make compat_alloc_user_space() incorporate the access_ok() 2010-09-14 16:08:45 -07:00
cputime.h
current.h
delay.h
device.h
div64.h
dma-mapping.h dma-mapping: remove dma_is_consistent API 2010-08-11 08:59:21 -07:00
dma.h parisc: remove CVS keywords 2009-07-03 03:34:06 +00: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
emergency-restart.h
errno.h mm: make __get_user_pages return -EHWPOISON for HWPOISON page optionally 2011-03-17 13:08:27 -03:00
fb.h
fcntl.h vfs: add nonconflicting values for O_PATH 2011-03-16 09:54:02 -04:00
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 futex: Sanitize futex ops argument types 2011-03-11 12:23:31 +01:00
grfioctl.h
hardirq.h parisc: convert to asm-generic/hardirq.h 2009-09-28 00:24:23 -04:00
hardware.h
hw_irq.h
ide.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6 2008-10-20 14:40:31 -07:00
io.h parisc: define x->x mmio accessors 2009-03-13 01:20:48 -04:00
ioctl.h
ioctls.h tty: add TIOCVHANGUP to allow clean tty shutdown of all ttys 2011-02-17 14:16:30 -08:00
ipcbuf.h
irq_regs.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
Kbuild archs: replace unifdef-y with header-y 2010-08-14 22:26:51 +02:00
kdebug.h
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
led.h
linkage.h
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
local.h
machdep.h
mc146818rtc.h
mckinley.h
mman.h thp: mm: define MADV_NOHUGEPAGE 2011-01-13 17:32:47 -08:00
mmu_context.h parisc: fix braino in commit adding __space_to_prot 2009-01-05 18:15:25 +00:00
mmu.h
mmzone.h
module.h parisc: fix module loading failure of large kernel modules 2009-01-05 08:40:14 +10:30
msgbuf.h
mutex.h
page.h asm-generic: rename page.h and uaccess.h 2009-06-11 21:02:17 +02:00
param.h parisc: Simplify param.h by including <asm-generic/param.h> 2010-03-06 22:54:10 +00: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
pci.h pci-dma: add linux/pci-dma.h to linux/pci.h 2010-03-12 15:52:42 -08:00
pdc_chassis.h
pdc.h parisc: asm/pdc.h should include asm/page.h 2009-04-02 00:20:15 +00:00
pdcpat.h
percpu.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] only make executable areas executable 2011-04-15 12:55:18 -05:00
poll.h
posix_types.h parisc: __kernel_time_t is always long 2008-11-26 22:22:36 +00:00
prefetch.h
processor.h parisc: add task_pt_regs macro 2009-07-03 03:34:11 +00:00
psw.h
ptrace.h ptrace: move user_enable_single_step & co prototypes to linux/ptrace.h 2010-03-12 15:52:38 -08:00
real.h
resource.h
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
segment.h
sembuf.h
serial.h
setup.h
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6 2008-10-20 14:40:31 -07:00
signal.h
smp.h cpumask: remove arch_send_call_function_ipi 2009-09-24 09:34:47 +09:30
socket.h net: Generalize socket rx gap / receive queue overflow cmsg 2009-10-12 13:26:31 -07:00
sockios.h
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
spinlock.h locking: Convert raw_rwlock functions to arch_rwlock 2009-12-14 23:55:32 +01:00
stat.h
statfs.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6 2008-10-20 14:40:31 -07:00
string.h
superio.h
swab.h headers_check fix: parisc, swab.h 2009-02-01 11:01:27 +05:30
syscall.h parisc: add skeleton syscall.h 2009-09-27 23:07:23 -04:00
system.h Fix IRQ flag handling naming 2010-10-07 14:08:55 +01:00
termbits.h tty: Add EXTPROC support for LINEMODE 2010-08-10 13:47:39 -07:00
termios.h
thread_info.h add descriptive comment for TIF_MEMDIE task flag declaration. 2010-05-14 11:13:27 +02:00
timex.h
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
topology.h
traps.h
types.h remove dma64_addr_t 2011-03-23 19:47:18 -07:00
uaccess.h parisc: add strict copy size checks (v2) 2010-03-06 22:54:09 +00:00
ucontext.h
unaligned.h
unistd.h parisc: add prlimit64 syscall 2010-10-13 20:35:56 -04:00
unwind.h
user.h
vga.h
xor.h