1
linux/arch/sh/include/asm
Paul Mundt acca4f4d9b sh: Handle fixmap TLB eviction more coherently.
There was a race in the kmap_coherent() implementation. While we
guarded against preemption, there was nothing preventing eviction of
the pre-faulted fixmap entry from the UTLB. Under certain workloads
this would result in the fixmap entries used for cache colouring being
evicted from the UTLB in the midst of a copy_page().

In addition to pre-faulting, we also make sure to preserve the PTEs
in the kernel page table and introduce a cached PTE for kmap_coherent()
usage. This follows a similar change on MIPS ("[MIPS] Fix aliasing bug
in copy_to_user_page / copy_from_user_page").

Reported-by: Hideo Saito <saito@densan.co.jp>
Reported-by: CHIKAMA Masaki <masaki.chikama@gmail.com>
Tested-by: Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2008-11-10 20:00:45 +09:00
..
.gitignore
adc.h
addrspace.h
atomic-grb.h
atomic-irq.h
atomic-llsc.h
atomic.h
auxvec.h sh: Make sure AT_SYSINFO_EHDR is exposed to userspace in asm/auxvec.h. 2008-07-29 23:12:25 +09:00
bitops-grb.h
bitops-irq.h
bitops-llsc.h sh: Provide movli.l/movco.l-based bitops. 2008-09-08 10:35:02 +09:00
bitops.h sh: Provide movli.l/movco.l-based bitops. 2008-09-08 10:35:02 +09:00
bug.h
bugs.h
byteorder.h sh: use the new byteorder headers. 2008-10-31 16:01:22 +09:00
cache.h
cacheflush.h
checksum_32.h
checksum_64.h
checksum.h
clock.h sh: fixup many sparse errors. 2008-09-08 10:35:04 +09:00
cmpxchg-grb.h
cmpxchg-irq.h
cmpxchg-llsc.h sh: Provide movli.l/movco.l-based cmpxchg. 2008-09-08 10:35:02 +09:00
cpu-features.h
cputime.h
current.h
delay.h
device.h
div64.h
dma-mapping.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2008-08-01 10:53:43 -07:00
dma.h
dmabrg.h
elf.h sh: Fix up some merge damage. 2008-10-20 11:37:58 +09:00
emergency-restart.h
entry-macros.S
errno.h
fb.h
fcntl.h
fixmap.h
flat.h sh: Provide a FLAT_PLAT_INIT() definition. 2008-08-11 20:17:55 +09:00
fpu.h sh: Add FPU registers to regset interface. 2008-09-21 19:04:55 +09:00
freq.h
ftrace.h sh: Add missing asm/ftrace.h. 2008-09-21 17:17:53 +09:00
futex-irq.h
futex.h
gpio.h sh: asm/gpio.h needs linux/kernel.h for might_sleep()/WARN_ON(). 2008-10-23 12:37:20 +09:00
hardirq.h
hd64461.h
heartbeat.h
hugetlb.h
hw_irq.h sh: Move the shared INTC code out to drivers/sh/ 2008-10-01 16:13:54 +09:00
i2c-sh7760.h
ilsel.h
io_generic.h sh: More I/O routine overhauling. 2008-10-04 05:25:52 +09:00
io_trapped.h
io.h sh: More I/O routine overhauling. 2008-10-04 05:25:52 +09:00
ioctl.h
ioctls.h
ipcbuf.h
irq_regs.h
irq.h sh: fixup many sparse errors. 2008-09-08 10:35:04 +09:00
irqflags_32.h
irqflags_64.h
irqflags.h
Kbuild
kdebug.h sh: Wire up oops reporting in the die notifier chain. 2008-10-21 18:33:36 +09:00
kexec.h kexec jump: rename KEXEC_CONTROL_CODE_SIZE to KEXEC_CONTROL_PAGE_SIZE 2008-08-15 08:35:42 -07:00
kgdb.h
kmap_types.h
kprobes.h sh: kprobes: Use trapa #0x3a for breakpoint trap. 2008-09-08 18:10:10 +09:00
linkage.h
local.h
machvec.h sh: More I/O routine overhauling. 2008-10-04 05:25:52 +09:00
mc146818rtc.h
mman.h
mmu_context_32.h
mmu_context_64.h
mmu_context.h
mmu.h
mmzone.h sh: Fix up NUMA build error with se7722_defconfig. 2008-09-12 22:41:30 +09:00
module.h
msgbuf.h
mutex.h
page.h sh: ioremap_prot support. 2008-09-12 20:41:05 +09:00
param.h
parport.h
pci.h
percpu.h
pgalloc.h
pgtable_32.h
pgtable_64.h
pgtable.h sh: Handle fixmap TLB eviction more coherently. 2008-11-10 20:00:45 +09:00
pm.h
poll.h
posix_types_32.h
posix_types_64.h
posix_types.h
processor_32.h sh: Consolidate struct sh_cpuinfo definitions across _32/_64 split. 2008-09-17 23:24:02 +09:00
processor_64.h sh: Consolidate struct sh_cpuinfo definitions across _32/_64 split. 2008-09-17 23:24:02 +09:00
processor.h sh: Consolidate struct sh_cpuinfo definitions across _32/_64 split. 2008-09-17 23:24:02 +09:00
ptrace.h sh: Add DSP registers to regset interface. 2008-09-12 22:42:10 +09:00
push-switch.h
resource.h
rtc.h sh: fixup many sparse errors. 2008-09-08 10:35:04 +09:00
rwsem.h
scatterlist.h
seccomp.h sh: seccomp support. 2008-08-02 04:39:32 +09:00
sections.h
segment.h
sembuf.h
serial.h sh: Kill off long-dead HD64465 cchip support. 2008-10-28 20:07:44 +09:00
setup.h sh: Fix up headers_check regression. 2008-09-17 23:24:59 +09:00
sfp-machine.h
sh7760fb.h
sh_bios.h
sh_eth.h [netdrvr] sh_eth: Add SH7619 support 2008-08-07 02:20:57 -04:00
sh_keysc.h
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
sizes.h sh: Add a few more definitions to asm/sizes.h. 2008-09-21 10:31:57 +09:00
smc37c93x.h
smp.h sh: generic clockevent broadcast support. 2008-09-08 10:35:03 +09:00
socket.h
sockios.h
sparsemem.h
spi.h
spinlock_types.h
spinlock.h
stat.h
statfs.h
string_32.h
string_64.h
string.h
syscall_32.h sh: Provide the asm/syscall.h interface, needed by tracehook. 2008-09-12 22:13:13 +09:00
syscall_64.h sh: Provide the asm/syscall.h interface, needed by tracehook. 2008-09-12 22:13:13 +09:00
syscall.h sh: Provide the asm/syscall.h interface, needed by tracehook. 2008-09-12 22:13:13 +09:00
syscalls_32.h sh: fixup many sparse errors. 2008-09-08 10:35:04 +09:00
syscalls_64.h sh: fixup many sparse errors. 2008-09-08 10:35:04 +09:00
syscalls.h sh: fixup many sparse errors. 2008-09-08 10:35:04 +09:00
system_32.h sh: Move lookup_exception_vector() out to asm/system_32.h. 2008-09-21 12:00:23 +09:00
system_64.h
system.h sh: fixup many sparse errors. 2008-09-08 10:35:04 +09:00
termbits.h
termios.h
thread_info.h sh: Support kernel stacks smaller than a page. 2008-09-20 20:21:33 +09:00
timer.h
timex.h
tlb_64.h sh: Fix up broken kerneldoc comments. 2008-08-04 12:51:06 +09:00
tlb.h
tlbflush.h
topology.h
types.h
uaccess_32.h sh: Proper __put_user_asm() size mismatch fix. 2008-07-29 09:16:33 +09:00
uaccess_64.h sh: sh_ksyms_64 needs __strncpy_from_user() definition. 2008-09-29 19:45:16 +09:00
uaccess.h sh: Proper __put_user_asm() size mismatch fix. 2008-07-29 09:16:33 +09:00
ubc.h
ucontext.h
unaligned.h
unistd_32.h
unistd_64.h
unistd.h
user.h
vga.h
watchdog.h
xor.h