linux/arch/powerpc/include/asm
Denys Vlasenko 16e72e9b30 powerpc: do not make the entire heap executable
On 32-bit powerpc the ELF PLT sections of binaries (built with
--bss-plt, or with a toolchain which defaults to it) look like this:

  [17] .sbss             NOBITS          0002aff8 01aff8 000014 00  WA  0   0  4
  [18] .plt              NOBITS          0002b00c 01aff8 000084 00 WAX  0   0  4
  [19] .bss              NOBITS          0002b090 01aff8 0000a4 00  WA  0   0  4

Which results in an ELF load header:

  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x019c70 0x00029c70 0x00029c70 0x01388 0x014c4 RWE 0x10000

This is all correct, the load region containing the PLT is marked as
executable.  Note that the PLT starts at 0002b00c but the file mapping
ends at 0002aff8, so the PLT falls in the 0 fill section described by
the load header, and after a page boundary.

Unfortunately the generic ELF loader ignores the X bit in the load
headers when it creates the 0 filled non-file backed mappings.  It
assumes all of these mappings are RW BSS sections, which is not the case
for PPC.

gcc/ld has an option (--secure-plt) to not do this, this is said to
incur a small performance penalty.

Currently, to support 32-bit binaries with PLT in BSS kernel maps
*entire brk area* with executable rights for all binaries, even
--secure-plt ones.

Stop doing that.

Teach the ELF loader to check the X bit in the relevant load header and
create 0 filled anonymous mappings that are executable if the load
header requests that.

Test program showing the difference in /proc/$PID/maps:

int main() {
	char buf[16*1024];
	char *p = malloc(123); /* make "[heap]" mapping appear */
	int fd = open("/proc/self/maps", O_RDONLY);
	int len = read(fd, buf, sizeof(buf));
	write(1, buf, len);
	printf("%p\n", p);
	return 0;
}

Compiled using: gcc -mbss-plt -m32 -Os test.c -otest

Unpatched ppc64 kernel:
00100000-00120000 r-xp 00000000 00:00 0                                  [vdso]
0fe10000-0ffd0000 r-xp 00000000 fd:00 67898094                           /usr/lib/libc-2.17.so
0ffd0000-0ffe0000 r--p 001b0000 fd:00 67898094                           /usr/lib/libc-2.17.so
0ffe0000-0fff0000 rw-p 001c0000 fd:00 67898094                           /usr/lib/libc-2.17.so
10000000-10010000 r-xp 00000000 fd:00 100674505                          /home/user/test
10010000-10020000 r--p 00000000 fd:00 100674505                          /home/user/test
10020000-10030000 rw-p 00010000 fd:00 100674505                          /home/user/test
10690000-106c0000 rwxp 00000000 00:00 0                                  [heap]
f7f70000-f7fa0000 r-xp 00000000 fd:00 67898089                           /usr/lib/ld-2.17.so
f7fa0000-f7fb0000 r--p 00020000 fd:00 67898089                           /usr/lib/ld-2.17.so
f7fb0000-f7fc0000 rw-p 00030000 fd:00 67898089                           /usr/lib/ld-2.17.so
ffa90000-ffac0000 rw-p 00000000 00:00 0                                  [stack]
0x10690008

Patched ppc64 kernel:
00100000-00120000 r-xp 00000000 00:00 0                                  [vdso]
0fe10000-0ffd0000 r-xp 00000000 fd:00 67898094                           /usr/lib/libc-2.17.so
0ffd0000-0ffe0000 r--p 001b0000 fd:00 67898094                           /usr/lib/libc-2.17.so
0ffe0000-0fff0000 rw-p 001c0000 fd:00 67898094                           /usr/lib/libc-2.17.so
10000000-10010000 r-xp 00000000 fd:00 100674505                          /home/user/test
10010000-10020000 r--p 00000000 fd:00 100674505                          /home/user/test
10020000-10030000 rw-p 00010000 fd:00 100674505                          /home/user/test
10180000-101b0000 rw-p 00000000 00:00 0                                  [heap]
                  ^^^^ this has changed
f7c60000-f7c90000 r-xp 00000000 fd:00 67898089                           /usr/lib/ld-2.17.so
f7c90000-f7ca0000 r--p 00020000 fd:00 67898089                           /usr/lib/ld-2.17.so
f7ca0000-f7cb0000 rw-p 00030000 fd:00 67898089                           /usr/lib/ld-2.17.so
ff860000-ff890000 rw-p 00000000 00:00 0                                  [stack]
0x10180008

The patch was originally posted in 2012 by Jason Gunthorpe
and apparently ignored:

https://lkml.org/lkml/2012/9/30/138

Lightly run-tested.

Link: http://lkml.kernel.org/r/20161215131950.23054-1-dvlasenk@redhat.com
Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Acked-by: Kees Cook <keescook@chromium.org>
Acked-by: Michael Ellerman <mpe@ellerman.id.au>
Tested-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Florian Weimer <fweimer@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-02-22 16:41:29 -08:00
..
book3s powerpc/mm/radix: Skip ptesync in pte update helpers 2017-02-15 20:02:41 +11:00
nohash powerpc/mm: Fix little-endian 4K hugetlb 2017-01-18 11:58:50 +11:00
8xx_immap.h
accounting.h sched/cputime, powerpc: Prepare accounting structure for cputime flush on tick 2017-01-14 09:54:12 +01:00
agp.h
archrandom.h powerpc: Use hardware RNG for arch_get_random_seed_* not arch_get_random_* 2015-07-23 19:52:03 +10:00
asm-compat.h powerpc/ebpf/jit: Implement JIT compiler for extended BPF 2016-06-24 15:17:57 +10:00
asm-offsets.h
asm-prototypes.h powerpc: Add a prototype for mcount() so it can be versioned 2017-02-10 13:28:06 +11:00
async_tx.h
atomic.h powerpc: Remove static branch prediction in atomic{, 64}_add_unless 2016-10-04 16:13:13 +11:00
backlight.h
barrier.h powerpc: define __smp_xxx 2016-01-12 20:46:53 +02:00
bitops.h
bootx.h
btext.h
bug.h
bugs.h
cache.h powerpc: Add new cache geometry aux vectors 2017-02-06 19:46:04 +11:00
cacheflush.h powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00
cell-pmu.h
cell-regs.h
checksum.h powerpc/64: Use optimized checksum routines on little-endian 2017-01-25 13:34:18 +11:00
cmpxchg.h powerpc: Fix __cmpxchg() to take a volatile ptr again 2016-11-25 14:07:50 +11:00
code-patching.h powerpc/kprobes: Implement Optprobes 2017-02-10 13:28:04 +11:00
compat.h powerpc/kernel: Add SIG_SYS support for compat tasks 2015-07-29 11:56:13 +10:00
context_tracking.h
copro.h
cpm1.h
cpm2.h
cpm.h QE: Move QE from arch/powerpc to drivers/soc 2015-12-22 17:12:56 -06:00
cpu_has_feature.h powerpc: Fix build failure with clang due to BUILD_BUG_ON() 2017-01-25 13:36:10 +11:00
cpufeature.h powerpc: Add module autoloading based on CPU features 2016-07-21 20:33:57 +10:00
cpuidle.h powernv: Pass PSSCR value and mask to power9_idle_stop 2017-01-31 08:32:13 +11:00
cputable.h powerpc/8xx: add dedicated machine check handler 2016-09-25 02:38:55 -05:00
cputhreads.h powerpc: cputhreads: Add missing include file 2016-08-22 11:09:33 +10:00
cputime.h sched/cputime: Remove generic asm headers 2017-02-01 09:14:07 +01:00
current.h
dbdma.h powerpc: Move Power Macintosh drivers to generic byteswappers 2015-03-23 14:29:40 +11:00
dbell.h powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00
dcr-generic.h
dcr-mmio.h
dcr-native.h powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00
dcr-regs.h
dcr.h
debug.h powerpc: Change places using CONFIG_KEXEC to use CONFIG_KEXEC_CORE instead. 2016-11-30 23:15:11 +11:00
delay.h
device.h powerpc/iommu: Remove dma_data union 2015-07-13 10:10:54 +10:00
disassemble.h KVM: PPC: e500: Emulate TMCFG0 TMRN register 2015-10-15 15:58:16 +11:00
dma-mapping.h dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
dma.h
edac.h EDAC: Cleanup atomic_scrub mess 2015-05-28 15:31:53 +02:00
eeh_event.h
eeh.h powerpc/pci: Delay populating pdn 2016-06-21 15:30:56 +10:00
ehv_pic.h
elf.h powerpc: Add new cache geometry aux vectors 2017-02-06 19:46:04 +11:00
emergency-restart.h
emulated_ops.h
epapr_hcalls.h
exception-64e.h powerpc/e6500: hw tablewalk: make sure we invalidate and write to the same tlb entry 2015-10-27 18:14:40 -05:00
exception-64s.h powerpc/64: CONFIG_RELOCATABLE support for hmi interrupts 2017-02-07 16:39:44 +11:00
exec.h
fadump.h powerpc/fadump: Set core e_flags using kernel's ELF ABI version 2016-09-13 17:36:01 +10:00
fb.h
feature-fixups.h powerpc/32: Fix crash during static key init 2016-08-10 19:41:58 +10:00
firmware.h powerpc/pseries: Add hypercall wrappers for hash page table resizing 2017-02-09 21:45:48 +11:00
fixmap.h powerpc/8xx: Fix vaddr for IMMR early remap 2016-07-09 02:02:48 -05:00
floppy.h
fs_pd.h
fsl_85xx_cache_sram.h
fsl_gtm.h
fsl_hcalls.h
fsl_lbc.h uio: uio_fsl_elbc_gpcm: new driver 2015-01-12 05:04:13 -08:00
fsl_pamu_stash.h iommu/fsl: Various cleanups 2015-02-03 18:47:18 +01:00
fsl_pm.h powerpc/rcpm: add RCPM driver 2016-03-04 23:50:27 -06:00
ftrace.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
futex.h powerpc: EX_TABLE macro for exception tables 2016-11-14 11:11:51 +11:00
grackle.h
hardirq.h
head-64.h Merge branch 'topic/ppc-kvm' into next 2017-02-14 17:18:29 +11:00
heathrow.h
highmem.h kmap_atomic_to_page() has no users, remove it 2015-11-09 15:11:24 -08:00
hmi.h powerpc: move hmi.c to arch/powerpc/kvm/ 2016-09-09 16:18:07 +10:00
hugetlb.h powerpc/mm: Fix little-endian 4K hugetlb 2017-01-18 11:58:50 +11:00
hvcall.h Merge branch 'topic/ppc-kvm' into next 2017-02-14 17:18:29 +11:00
hvconsole.h
hvcserver.h
hvsi.h
hw_breakpoint.h
hw_irq.h powerpc/8xx: use SPRN_EIE and SPRN_EID to enable/disable interrupts 2016-09-25 02:38:53 -05:00
hydra.h powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
i8259.h
ibmebus.h
icswx.h crypto: nx-842 - Mask XERS0 bit in return value 2015-12-17 16:42:12 +08:00
ide.h
ima.h powerpc: ima: send the kexec buffer to the next kernel 2016-12-20 09:48:44 -08:00
immap_cpm2.h
io_event_irq.h
io-defs.h
io-workarounds.h
io.h powerpc: EX_TABLE macro for exception tables 2016-11-14 11:11:51 +11:00
iommu.h dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
ipic.h
irq_work.h powerpc: Re-enable dynticks 2015-02-23 14:52:04 +11:00
irq.h
irqflags.h
isa-bridge.h powerpc: Add support for non-PCI ISA bridges 2017-01-31 13:54:17 +11:00
jump_label.h powerpc updates for 4.8 #2 2016-08-05 09:00:54 -04:00
Kbuild ppc: move exports to definitions 2016-08-07 23:50:09 -04:00
kdebug.h
kdump.h
kexec.h powerpc: ima: send the kexec buffer to the next kernel 2016-12-20 09:48:44 -08:00
keylargo.h
kgdb.h
kmap_types.h
kprobes.h powerpc/kprobes: Implement Optprobes 2017-02-10 13:28:04 +11:00
kvm_asm.h KVM: PPC: Book3S HV: Enable hypervisor virtualization interrupts while in guest 2016-11-24 09:24:23 +11:00
kvm_book3s_32.h
kvm_book3s_64.h KVM: PPC: Book3S HV: Add basic infrastructure for radix guests 2017-01-31 19:11:48 +11:00
kvm_book3s_asm.h powerpc/powernv: Add platform support for stop instruction 2016-07-15 20:18:41 +10:00
kvm_book3s.h KVM: PPC: Book3S HV: Enable radix guest support 2017-01-31 19:11:52 +11:00
kvm_booke_hv_asm.h
kvm_booke.h KVM: PPC: Book3S: correct width in XER handling 2015-08-22 11:16:19 +02:00
kvm_fpu.h
kvm_host.h KVM: PPC: Book3S HV: Invalidate TLB on radix guest vcpu movement 2017-01-31 19:11:51 +11:00
kvm_para.h
kvm_ppc.h KVM: PPC: Book3S HV: Add userspace interfaces for POWER9 MMU 2017-01-31 19:11:47 +11:00
libata-portmap.h libata: remove unused definitions from <asm/libata-portmap.h> 2016-09-22 11:50:19 -04:00
linkage.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
livepatch.h powerpc/livepatch: Remove klp_write_module_reloc() stub 2016-12-19 11:15:25 +01:00
local.h
lppaca.h
lv1call.h
machdep.h powerpc: Change places using CONFIG_KEXEC to use CONFIG_KEXEC_CORE instead. 2016-11-30 23:15:11 +11:00
macio.h
mc146818rtc.h
mce.h
mediabay.h
mm-arch-hooks.h powerpc/mm: tracking vDSO remap 2015-06-24 17:49:41 -07:00
mman.h powerpc updates for 4.8 #2 2016-08-05 09:00:54 -04:00
mmu_context.h powerpc/iommu: Stop using @current in mm_iommu_xxx 2016-12-02 14:38:29 +11:00
mmu-8xx.h powerpc/8xx: Implement support of hugepages 2016-12-09 22:49:07 -06:00
mmu-40x.h
mmu-44x.h
mmu-book3e.h powerpc/64/kexec: Fix MMU cleanup on radix 2016-09-23 07:54:17 +10:00
mmu.h powerpc updates for 4.11 part 1. 2017-02-22 10:30:38 -08:00
mmzone.h powerpc: implement arch_reserved_kernel_pages 2016-10-07 18:46:28 -07:00
module.h modversions: treat symbol CRCs as 32 bit quantities 2017-02-03 08:28:25 -08:00
mpc5xxx.h
mpc6xx.h
mpc52xx_psc.h powerpc: mpc512x: drop bogus and unused psc register bit definitions 2015-10-22 16:06:08 +02:00
mpc52xx.h powerpc: Make ppc_md.{halt, restart} __noreturn 2016-07-14 21:12:06 +10:00
mpc85xx.h powerpc/fsl-booke: Add T4080 SVR value 2015-03-31 22:23:17 -05:00
mpc5121.h powerpc/512x: add LocalPlus Bus FIFO device driver 2015-10-22 15:19:40 +02:00
mpc8260.h
mpic_msgr.h powerpc: Remove all usages of NO_IRQ 2016-09-20 20:57:12 +10:00
mpic_timer.h
mpic.h powerpc/mpic: Add get_version API both for internal and external use 2015-03-23 19:51:17 -05:00
msi_bitmap.h powerpc/msi: Free the bitmap if it was slab allocated 2015-10-05 21:32:50 +11:00
nmi.h powerpc: Add ppc64 hard lockup detector support 2015-04-11 20:49:27 +10:00
nvram.h powerpc/nvram: Move generic code for nvram and pstore 2015-03-23 14:05:49 +11:00
ohare.h
opal-api.h powerpc/powernv: Initialise nest mmu 2017-01-30 20:24:33 +11:00
opal.h Merge branch 'topic/ppc-kvm' into next 2017-02-14 17:18:29 +11:00
oprofile_impl.h
paca.h sched/cputime, powerpc: Migrate stolen_time field to the accounting structure 2017-01-14 09:54:12 +01:00
page_32.h powerpc32: Remove clear_pages() and define clear_page() inline 2016-03-11 17:20:11 -06:00
page_64.h powerpc/64: Clean up ppc64_caches using a struct per cache 2017-02-06 19:46:04 +11:00
page.h powerpc: do not make the entire heap executable 2017-02-22 16:41:29 -08:00
parport.h powerpc: Remove all usages of NO_IRQ 2016-09-20 20:57:12 +10:00
pasemi_dma.h
pci-bridge.h powerpc: Move isa bridge definitions to separate include 2017-01-31 13:54:17 +11:00
pci.h PCI: Unify pci_resource_to_user() declarations 2016-06-17 14:43:34 -05:00
percpu.h
perf_event_fsl_emb.h
perf_event_server.h powerpc/perf: Use MSR to report privilege level on P9 DD1 2017-01-18 16:15:58 +11:00
perf_event.h
pgalloc.h powerpc/mm: Copy pgalloc (part 2) 2016-05-11 21:53:49 +10:00
pgtable-be-types.h powerpc/mm: Fix little-endian 4K hugetlb 2017-01-18 11:58:50 +11:00
pgtable-types.h powerpc/mm: Fix little-endian 4K hugetlb 2017-01-18 11:58:50 +11:00
pgtable.h powerpc: port 64 bits pgtable_cache to 32 bits 2016-12-09 22:48:01 -06:00
plpar_wrappers.h powerpc/pseries: Add hypercall wrappers for hash page table resizing 2017-02-09 21:45:48 +11:00
pmac_feature.h powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pmi.h
pnv-pci.h powerpc updates for 4.9 2016-10-07 20:19:31 -07:00
powernv.h powerpc/powernv: Initialise nest mmu 2017-01-30 20:24:33 +11:00
ppc4xx_ocm.h
ppc4xx.h powerpc: Make ppc_md.{halt, restart} __noreturn 2016-07-14 21:12:06 +10:00
ppc_asm.h powerpc: Make _ASM_NOKPROBE_SYMBOL a noop when KPROBES not defined 2016-11-14 11:11:51 +11:00
ppc-opcode.h powerpc/bpf: Introduce __PPC_SH64() 2017-02-10 13:28:03 +11:00
ppc-pci.h powerpc/eeh: Refactor EEH PE reset functions 2016-11-22 11:57:08 +11:00
probes.h
processor.h powernv: Pass PSSCR value and mask to power9_idle_stop 2017-01-31 08:32:13 +11:00
prom.h Merge branch 'topic/ppc-kvm' into next 2017-02-14 17:18:29 +11:00
ps3.h powerpc/64: Move MMU backend selection out of platform code 2016-07-21 18:56:38 +10:00
ps3av.h powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
ps3gpu.h
ps3stor.h
pte-common.h powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
ptrace.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
reg_8xx.h powerpc/8xx: Implement support of hugepages 2016-12-09 22:49:07 -06:00
reg_a2.h
reg_booke.h powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
reg_fsl_emb.h
reg.h powerpc updates for 4.11 part 1. 2017-02-22 10:30:38 -08:00
rheap.h
rio.h
rtas.h powerpc/pseries: Introduce memory hotplug READD operation 2017-02-02 16:57:39 +11:00
runlatch.h
scom.h
seccomp.h powerpc: switch to using asm-generic for seccomp.h 2015-04-17 09:04:10 -04:00
sections.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
serial.h
setjmp.h
setup.h powerpc: Put exception configuration in a common place 2016-07-21 18:56:31 +10:00
sfp-machine.h
shmparam.h
signal.h powerpc: signals: Stop using current in signal code 2016-10-04 16:43:07 +11:00
smp.h powerpc: Change places using CONFIG_KEXEC to use CONFIG_KEXEC_CORE instead. 2016-11-30 23:15:11 +11:00
smu.h powerpc/pmac: Remove early allocation of the SMU command buffer 2016-07-21 18:56:38 +10:00
sparsemem.h powerpc/mm: Fix build break with BOOK3S_64=n and MEMORY_HOTPLUG=y 2017-02-15 19:58:39 +11:00
spinlock_types.h
spinlock.h locking/core, powerpc: Implement vcpu_is_preempted(cpu) 2016-11-22 12:48:06 +01:00
spu_csa.h powerpc/cell: Drop support for 64K local store on 4K kernels 2015-08-18 19:29:49 +10:00
spu_info.h
spu_priv1.h
spu.h
sstep.h
string.h powerpc: Remove assembly versions of strcpy, strcat, strlen and strcmp 2016-06-14 13:58:25 +10:00
swab.h powerpc: Remove unused st_le*() and ld_le* functions 2015-03-24 13:33:52 +11:00
swiotlb.h
switch_to.h powerpc/ptrace: Fix coredump since ptrace TM changes 2016-08-10 16:34:20 +10:00
synch.h powerpc: Factor do_feature_fixup calls 2016-07-21 18:51:42 +10:00
syscall.h powerpc: Change syscall_get_nr() to return int 2015-07-29 11:56:13 +10:00
syscalls.h
systbl.h powerpc/kexec: Enable kexec_file_load() syscall 2016-11-30 23:15:27 +11:00
tce.h powerpc/powernv/pci: Remove SWINV constants and obsolete TCE code 2016-07-17 16:42:47 +10:00
termios.h
thread_info.h signal: consolidate {TS,TLF}_RESTORE_SIGMASK code 2016-08-02 19:35:23 -04:00
time.h powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00
timex.h
tlb.h mm: add tlb_remove_check_page_size_change to track page size change 2016-12-12 18:55:07 -08:00
tlbflush.h powerpc/mm: remove flush_tlb_page_nohash 2016-08-01 11:15:13 +10:00
tm.h powerpc: Remove do_load_up_transact_{fpu,altivec} 2016-10-04 20:33:16 +11:00
topology.h sched/topology: Rename topology_thread_cpumask() to topology_sibling_cpumask() 2015-05-27 15:22:15 +02:00
trace_clock.h powerpc/ftrace: add powerpc timebase as a trace clock source 2015-08-06 16:36:23 +10:00
trace.h tracing: Have the reg function allow to fail 2016-12-09 09:13:30 -05:00
tsi108_irq.h
tsi108_pci.h genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
tsi108.h powerpc: Various typo fixes 2016-06-14 13:58:26 +10:00
types.h powerpc: Define and use PPC64_ELF_ABI_v2/v1 2016-06-14 13:58:27 +10:00
uaccess.h powerpc/sparse: Constify the address pointer in __get_user_nosleep() 2017-02-02 16:35:21 +11:00
udbg.h
uic.h
unaligned.h
uninorth.h powerpc: Fix misspellings in comments. 2016-03-01 19:27:20 +11:00
unistd.h powerpc/kexec: Enable kexec_file_load() syscall 2016-11-30 23:15:27 +11:00
uprobes.h
user.h
vdso_datapage.h powerpc: Standardise on NR_syscalls rather than __NR_syscalls. 2015-11-26 22:11:17 +11:00
vdso.h
vga.h powerpc: Move Power Macintosh drivers to generic byteswappers 2015-03-23 14:29:40 +11:00
vio.h remove <asm/scatterlist.h> 2015-05-05 13:35:39 -06:00
word-at-a-time.h powerpc: EX_TABLE macro for exception tables 2016-11-14 11:11:51 +11:00
xics.h powerpc/powernv: Fix CPU hotplug to handle waking on HVI 2017-02-09 15:19:57 +11:00
xilinx_intc.h powerpc/virtex: Use generic xilinx irqchip driver 2016-11-29 09:14:50 +00:00
xilinx_pci.h
xmon.h
xor.h powerpc: Move cpu_has_feature() to a separate file 2016-08-01 11:15:03 +10:00