Will Deacon
6a1c53124a
ARM: 7403/1: tls: remove covert channel via TPIDRURW
...
TPIDRURW is a user read/write register forming part of the group of
thread registers in more recent versions of the ARM architecture (~v6+).
Currently, the kernel does not touch this register, which allows tasks
to communicate covertly by reading and writing to the register without
context-switching affecting its contents.
This patch clears TPIDRURW when TPIDRURO is updated via the set_tls
macro, which is called directly from __switch_to. Since the current
behaviour makes the register useless to userspace as far as thread
pointers are concerned, simply clearing the register (rather than saving
and restoring it) will not cause any problems to userspace.
Cc: stable@vger.kernel.org
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-04-28 11:01:30 +01:00
..
hardware
Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm
2012-03-29 16:53:48 -07:00
mach
Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci
2012-01-11 18:50:26 -08:00
a.out-core.h
ARM: 6798/1: aout-core: zero thread debug registers in a.out core dump
2011-03-10 15:16:29 +00:00
a.out.h
asm-offsets.h
kbuild: move asm-offsets.h to include/generated
2009-12-12 13:08:14 +01:00
assembler.h
ARM: cleanups of io includes
2012-03-29 18:02:10 -07:00
atomic.h
Disintegrate asm/system.h for ARM
2012-03-28 18:30:01 +01:00
barrier.h
ARM: OMAP2+: Fix omap2+ build error
2012-04-03 10:59:10 -07:00
bitops.h
Disintegrate asm/system.h for ARM
2012-03-28 18:30:01 +01:00
bug.h
Disintegrate asm/system.h for ARM
2012-03-28 18:30:01 +01:00
bugs.h
byteorder.h
cache.h
ARM: implement support for read-mostly sections
2010-12-05 08:39:36 +00:00
cacheflush.h
Merge branch 'v6v7' into devel
2011-03-16 23:35:26 +00:00
cachetype.h
ARM: 7062/1: cache: detect PIPT I-cache using CTR
2011-10-17 09:13:41 +01:00
checksum.h
clkdev.h
ARM: Consolidate the clkdev header files
2011-07-19 18:09:45 +02:00
cmpxchg.h
Disintegrate asm/system.h for ARM
2012-03-28 18:30:01 +01:00
compiler.h
Disintegrate asm/system.h for ARM
2012-03-28 18:30:01 +01:00
cp15.h
Disintegrate asm/system.h for ARM
2012-03-28 18:30:01 +01:00
cpu.h
ARM: 5872/1: ARM: include needed linux/cpu.h in asm/cpu.h
2010-01-10 13:03:52 +00:00
cpuidle.h
cpuidle: Add common time keeping and irq enabling
2012-03-21 01:59:40 -04:00
cputype.h
ARM: 7011/1: Add ARM cpu topology definition
2011-10-17 09:02:43 +01:00
cti.h
arm: introduce cross trigger interface helpers
2011-12-02 15:16:33 +00:00
current.h
delay.h
device.h
Merge branch 'next/cleanup' of git://git.linaro.org/people/arnd/arm-soc
2011-11-01 20:11:00 -07:00
div64.h
Disintegrate asm/system.h for ARM
2012-03-28 18:30:01 +01:00
dma-mapping.h
Merge branch 'devel-stable' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm
2011-10-28 12:02:27 -07:00
dma.h
Disintegrate asm/system.h for ARM
2012-03-28 18:30:01 +01:00
domain.h
Disintegrate asm/system.h for ARM
2012-03-28 18:30:01 +01:00
ecard.h
ARM: io: ecard: move ioaddr() inside __ecard_address
2011-08-17 08:44:16 +01:00
edac.h
ARM: 7201/1: add EDAC atomic_scrub function
2011-12-11 08:35:50 +00:00
elf.h
ARM: 7294/1: vectors: use gate_vma for vectors user mapping
2012-03-24 09:38:51 +00:00
entry-macro-multi.S
ARM: gic: consolidate PPI handling
2011-10-23 13:32:29 +01:00
exception.h
ARM: 7115/4: move __exception and friends to asm/exception.h
2011-10-17 09:02:44 +01:00
exec.h
Disintegrate asm/system.h for ARM
2012-03-28 18:30:01 +01:00
fb.h
fcntl.h
fiq.h
ARM: 6940/1: fiq: Briefly document driver responsibilities for suspend/resume
2011-05-26 10:31:06 +01:00
fixmap.h
flat.h
floppy.h
fncpy.h
ARM: 6640/1: Thumb-2: Symbol manipulation macros for function body copying
2011-01-27 11:48:58 +00:00
fpstate.h
Fix common misspellings
2011-03-31 11:26:23 -03:00
ftrace.h
ARM: 6319/1: ftrace: add Thumb-2 support to dynamic ftrace
2010-09-02 15:28:43 +01:00
futex.h
ARM: 7301/1: Rename the T() macro to TUSER() to avoid namespace conflicts
2012-01-25 11:07:40 +00:00
glue-cache.h
Fix common misspellings
2011-03-31 11:26:23 -03:00
glue-df.h
ARM: move cache/processor/fault glue to separate include files
2011-02-12 11:52:21 +00:00
glue-pf.h
ARM: move cache/processor/fault glue to separate include files
2011-02-12 11:52:21 +00:00
glue-proc.h
Merge branch 'v6v7' into devel
2011-03-16 23:35:26 +00:00
glue.h
Fix common misspellings
2011-03-31 11:26:23 -03:00
gpio.h
ARM: 7271/1: Fix typo in conversion of ARCH_NR_GPIOS to Kconfig
2012-01-08 09:27:19 +00:00
hardirq.h
ARM: 7140/1: remove NR_IRQS dependency for ARM-specific HARDIRQ_BITS definition
2011-12-06 11:14:01 +00:00
highmem.h
highmem: kill all __kmap_atomic()
2012-03-20 21:48:30 +08:00
hw_breakpoint.h
ARM: hw_breakpoint: add support for multiple watchpoints
2011-08-31 10:42:48 +01:00
hw_irq.h
arm: dove: Use proper irq accessor functions
2011-03-29 14:47:57 +02:00
hwcap.h
UAPI: Split trivial #if defined(__KERNEL__) && X conditionals
2011-12-13 15:07:49 +00:00
ide.h
idmap.h
ARM: SMP: use idmap_pgd for mapping MMU enable during secondary booting
2011-12-06 14:04:15 +00:00
io.h
ARM: fix __io macro for PCMCIA
2012-04-05 11:29:55 -07:00
ioctls.h
ioctl: Use asm-generic/ioctls.h on arm (enables termiox)
2010-10-22 10:19:59 -07:00
ipcbuf.h
consolidate a bunch of ipcbuf.h instances
2012-01-03 22:55:18 -05:00
irq.h
ARM: only include mach/irqs.h for !SPARSE_IRQ
2012-01-30 13:24:37 -06:00
irqflags.h
Fix IRQ flag handling naming
2010-10-07 14:08:55 +01:00
jump_label.h
ARM: 7386/1: jump_label: fixup for rename to static_key
2012-04-15 22:00:31 +01:00
Kbuild
ARM: 7006/1: Migrate to asm-generic wrapper support
2011-10-17 09:12:40 +01:00
kexec.h
[ARM] add machine-specific hook to machine_kexec
2011-03-03 16:26:55 -05:00
kgdb.h
kgdb,arm: fix register dump
2010-10-29 13:14:40 -05:00
kmap_types.h
kdb: core for kgdb back end (2 of 2)
2010-05-20 21:04:21 -05:00
kprobes.h
Kernel: Audit Support For The ARM Platform
2012-01-17 16:17:01 -05:00
leds.h
limits.h
linkage.h
localtimer.h
ARM: local timers: make the runtime registration interface mandatory
2012-03-13 13:45:55 +00:00
locks.h
mach-types.h
arm: move mach-types to include/generated
2009-12-12 13:08:14 +01:00
mc146818rtc.h
ARM: mc146818rtc: remove unnecessary include of mach/irqs.h
2012-01-25 20:37:45 -06:00
memblock.h
ARM: Add arm_memblock_steal() to allocate memory away from the kernel
2012-01-13 15:02:35 +00:00
memory.h
ARM: 7361/1: provide XIP_VIRT_ADDR for no-MMU builds
2012-03-24 09:38:56 +00:00
mman.h
arm: add arch_mmap_check(), get rid of sys_arm_mremap()
2009-12-11 06:34:09 -05:00
mmu.h
Disintegrate asm/system.h for ARM
2012-03-28 18:30:01 +01:00
mmu_context.h
ARM: 7294/1: vectors: use gate_vma for vectors user mapping
2012-03-24 09:38:51 +00:00
module.h
ARM: 7013/1: P2V: Remove ARM_PATCH_PHYS_VIRT_16BIT
2011-08-13 11:26:40 +01:00
msgbuf.h
mtd-xip.h
mutex.h
nwflash.h
opcodes.h
ARM: 7311/1: Add generic instruction opcode manipulation helpers
2012-03-24 09:38:51 +00:00
outercache.h
ARM: 7114/1: cache-l2x0: add resume entry for l2 in secure mode
2011-10-17 09:11:51 +01:00
page-nommu.h
page.h
ARM: 7294/1: vectors: use gate_vma for vectors user mapping
2012-03-24 09:38:51 +00:00
param.h
parport.h
pci.h
PCI: collapse pcibios_resource_to_bus
2012-02-23 20:19:04 -07:00
perf_event.h
Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm
2012-03-29 16:53:48 -07:00
pgalloc.h
ARM: LPAE: Page table maintenance for the 3-level format
2011-12-08 10:30:39 +00:00
pgtable-2level-hwdef.h
ARM: 7077/1: LPAE: Use a mask for physical addresses in page table entries
2011-10-06 15:40:06 +01:00
pgtable-2level-types.h
ARM: 7076/1: LPAE: Add (pte|pmd)val_t type definitions as u32
2011-10-06 15:40:05 +01:00
pgtable-2level.h
ARM: LPAE: Move page table maintenance macros to pgtable-2level.h
2011-12-08 10:30:37 +00:00
pgtable-3level-hwdef.h
ARM: LPAE: Introduce the 3-level page table format definitions
2011-12-08 10:30:39 +00:00
pgtable-3level-types.h
ARM: LPAE: Introduce the 3-level page table format definitions
2011-12-08 10:30:39 +00:00
pgtable-3level.h
ARM: LPAE: Page table maintenance for the 3-level format
2011-12-08 10:30:39 +00:00
pgtable-hwdef.h
ARM: LPAE: Introduce the 3-level page table format definitions
2011-12-08 10:30:39 +00:00
pgtable-nommu.h
Remove remaining bits of io_remap_page_range()
2012-03-23 16:58:31 -07:00
pgtable.h
Merge branch 'devel-stable' into for-linus
2012-01-05 13:24:33 +00:00
pmu.h
ARM: 7354/1: perf: limit sample_period to half max_period in non-sampling mode
2012-03-07 09:40:48 +00:00
posix_types.h
arm: Use generic posix_types.h
2012-02-14 12:01:28 -08:00
proc-fns.h
ARM: LPAE: Page table maintenance for the 3-level format
2011-12-08 10:30:39 +00:00
processor.h
Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm
2012-03-29 16:53:48 -07:00
procinfo.h
prom.h
ARM: get rid of asm/irq.h in asm/prom.h
2012-03-24 09:38:54 +00:00
ptrace.h
Kernel: Audit Support For The ARM Platform
2012-01-17 16:17:01 -05:00
scatterlist.h
ARM: Allow SoCs to enable scatterlist chaining
2011-06-02 11:16:22 +01:00
sched_clock.h
ARM: 7205/2: sched_clock: allow sched_clock to be selected at runtime
2011-12-18 23:00:26 +00:00
seccomp.h
ARM: SECCOMP support
2010-10-01 22:32:18 -04:00
segment.h
sembuf.h
serial.h
setup.h
ARM: Allow Kconfig to control the definition of NR_BANKS
2011-12-13 08:52:02 +00:00
shmbuf.h
shmparam.h
sigcontext.h
signal.h
smp.h
ARM: 7293/1: logical_cpu_map: decouple CPU mapping from SMP
2012-01-23 10:20:05 +00:00
smp_plat.h
ARM: 7293/1: logical_cpu_map: decouple CPU mapping from SMP
2012-01-23 10:20:05 +00:00
smp_scu.h
ARM: pm: add function to set WFI low-power mode for SMP CPUs
2011-02-11 12:29:18 +00:00
smp_twd.h
ARM: smp_twd: remove old local timer interface
2012-03-13 13:45:54 +00:00
socket.h
net: Add framework to allow sending packets with customized CRC.
2012-02-24 01:37:35 -08:00
sockios.h
sparsemem.h
spinlock.h
ARM: 6939/1: fix missing 'cpu_relax()' declaration
2011-05-23 17:19:26 +01:00
spinlock_types.h
locking: Convert raw_rwlock to arch_rwlock
2009-12-14 23:55:32 +01:00
stackprotector.h
ARM: initial stack protector (-fstack-protector) support
2010-06-14 21:31:00 -04:00
stacktrace.h
stat.h
statfs.h
string.h
suspend.h
ARM: pm: preallocate a page table for suspend/resume
2011-09-20 23:33:36 +01:00
swab.h
Merge branch 'for-next' of git://git.infradead.org/users/dhowells/linux-headers
2012-01-14 18:03:30 -08:00
switch_to.h
Disintegrate asm/system.h for ARM
2012-03-28 18:30:01 +01:00
system.h
Disintegrate asm/system.h for ARM
2012-03-28 18:30:01 +01:00
system_info.h
Disintegrate asm/system.h for ARM
2012-03-28 18:30:01 +01:00
system_misc.h
Disintegrate and delete asm/system.h
2012-03-28 15:58:21 -07:00
tcm.h
ARM: 6985/1: export functions to determine the presence of I/DTCM
2011-07-06 20:49:45 +01:00
termbits.h
tty: Add EXTPROC support for LINEMODE
2010-08-10 13:47:39 -07:00
termios.h
therm.h
thread_info.h
ARM: 7399/1: vfp: move user vfp state save/restore code out of signal.c
2012-04-23 15:44:41 +01:00
thread_notify.h
ARM: 6867/1: Introduce THREAD_NOTIFY_COPY for copy_thread() hooks
2011-04-10 21:13:36 +01:00
timex.h
tlb.h
ARM: 7302/1: Add TLB flushing for both entries in a PMD
2012-02-02 17:37:42 +00:00
tlbflush.h
ARM: Optimize multi-CPU tlb flushing a little more
2012-03-24 09:38:52 +00:00
tls.h
ARM: 7403/1: tls: remove covert channel via TPIDRURW
2012-04-28 11:01:30 +01:00
topology.h
ARM: 7182/1: ARM cpu topology: fix warning
2011-11-30 23:55:21 +00:00
traps.h
ARM: earlier initialization of vectors page
2012-01-23 10:24:11 +00:00
types.h
consolidate umode_t declarations
2012-01-03 22:55:17 -05:00
uaccess.h
Disintegrate asm/system.h for ARM
2012-03-28 18:30:01 +01:00
ucontext.h
Fix common misspellings
2011-03-31 11:26:23 -03:00
unaligned.h
unified.h
ARM: make BSYM macro assembly only
2012-01-16 08:56:25 -06:00
unistd.h
UAPI: Split trivial #if defined(__KERNEL__) && X conditionals
2011-12-13 15:07:49 +00:00
unwind.h
ARM: 7187/1: fix unwinding for XIP kernels
2011-12-06 11:16:13 +00:00
user.h
ARM: 6798/1: aout-core: zero thread debug registers in a.out core dump
2011-03-10 15:16:29 +00:00
vfp.h
vfpmacros.h
ARM: 6203/1: Make VFPv3 usable on ARMv6
2010-07-09 14:41:34 +01:00
vga.h
ARM: set vga memory base at run-time
2011-07-12 11:19:29 -05:00
xor.h