1
0
Fork 0
alistair23-linux/arch/x86/include/asm
Linus Torvalds c512c69187 uaccess: implement a proper unsafe_copy_to_user() and switch filldir over to it
In commit 9f79b78ef7 ("Convert filldir[64]() from __put_user() to
unsafe_put_user()") I made filldir() use unsafe_put_user(), which
improves code generation on x86 enormously.

But because we didn't have a "unsafe_copy_to_user()", the dirent name
copy was also done by hand with unsafe_put_user() in a loop, and it
turns out that a lot of other architectures didn't like that, because
unlike x86, they have various alignment issues.

Most non-x86 architectures trap and fix it up, and some (like xtensa)
will just fail unaligned put_user() accesses unconditionally.  Which
makes that "copy using put_user() in a loop" not work for them at all.

I could make that code do explicit alignment etc, but the architectures
that don't like unaligned accesses also don't really use the fancy
"user_access_begin/end()" model, so they might just use the regular old
__copy_to_user() interface.

So this commit takes that looping implementation, turns it into the x86
version of "unsafe_copy_to_user()", and makes other architectures
implement the unsafe copy version as __copy_to_user() (the same way they
do for the other unsafe_xyz() accessor functions).

Note that it only does this for the copying _to_ user space, and we
still don't have a unsafe version of copy_from_user().

That's partly because we have no current users of it, but also partly
because the copy_from_user() case is slightly different and cannot
efficiently be implemented in terms of a unsafe_get_user() loop (because
gcc can't do asm goto with outputs).

It would be trivial to do this using "rep movsb", which would work
really nicely on newer x86 cores, but really badly on some older ones.

Al Viro is looking at cleaning up all our user copy routines to make
this all a non-issue, but for now we have this simple-but-stupid version
for x86 that works fine for the dirent name copy case because those
names are short strings and we simply don't need anything fancier.

Fixes: 9f79b78ef7 ("Convert filldir[64]() from __put_user() to unsafe_put_user()")
Reported-by: Guenter Roeck <linux@roeck-us.net>
Reported-and-tested-by: Tony Luck <tony.luck@intel.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-10-07 12:56:48 -07:00
..
crypto crypto: x86/xts - implement support for ciphertext stealing 2019-08-22 14:57:34 +10:00
e820 kvm, x86: Properly check whether a pfn is an MMIO or not 2019-04-30 21:49:46 +02:00
fpu x86/fpu: Inline fpu__xstate_clear_all_cpu_caps() 2019-07-07 12:01:47 +02:00
numachip
trace Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-07 10:24:10 -07:00
uv efi/x86: move UV_SYSTAB handling into arch/x86 2019-08-08 11:01:48 +03:00
vdso Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-09-17 12:35:15 -07:00
xen swiotlb-xen: simplify cache maintainance 2019-09-11 12:43:27 +02:00
Kbuild treewide: Add SPDX license identifier - Kbuild 2019-05-30 11:32:33 -07:00
acenv.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
acpi.h acpi: Ignore acpi_rsdp kernel param when the kernel has been locked down 2019-08-19 21:54:16 -07:00
acrn.h x86/acrn: Use HYPERVISOR_CALLBACK_VECTOR for ACRN guest upcall vector 2019-06-11 21:31:31 +02:00
agp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
alternative-asm.h x86/nospec, objtool: Introduce ANNOTATE_IGNORE_ALTERNATIVE 2019-04-03 09:39:46 +02:00
alternative.h x86: alternative.h: use asm_inline for all alternative variants 2019-09-15 20:14:15 +02:00
amd_nb.h x86/amd_nb: Check vendor in AMD-only functions 2018-09-27 18:28:58 +02:00
apb_timer.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00
apic.h x86/apic/flat64: Remove the IPI shorthand decision logic 2019-07-25 16:12:02 +02:00
apicdef.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
apm.h x86/apm: Don't access __preempt_count with zeroed fs 2018-07-16 17:59:57 +02:00
arch_hweight.h x86/kconfig: Disable CONFIG_GENERIC_HWEIGHT and remove __HAVE_ARCH_SW_HWEIGHT 2019-05-13 11:07:33 +02:00
archrandom.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 335 2019-06-05 17:37:06 +02:00
asm-offsets.h
asm-prototypes.h x86/asm-prototypes: Remove duplicate include <asm/page.h> 2019-01-28 18:32:34 +01:00
asm.h x86/uaccess: Move copy_user_handle_tail() into asm 2019-04-03 09:36:29 +02:00
atomic.h x86/atomic: Fix smp_mb__{before,after}_atomic() 2019-06-17 12:09:59 +02:00
atomic64_32.h locking/atomic, x86: Use s64 for atomic64 2019-06-03 12:32:57 +02:00
atomic64_64.h x86/atomic: Fix smp_mb__{before,after}_atomic() 2019-06-17 12:09:59 +02:00
barrier.h x86: Remove X86_FEATURE_MFENCE_RDTSC 2019-07-22 12:00:51 +02:00
bios_ebda.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bitops.h x86/bitops: Use __builtin_constant_p() directly instead of IS_IMMEDIATE() 2019-07-23 13:44:18 +02:00
boot.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bootparam_utils.h x86/boot: Preserve boot_params.secure_boot from sanitizing 2019-09-02 09:17:45 +02:00
bug.h x86: bug.h: use asm_inline in _BUG_FLAGS definitions 2019-09-15 20:14:15 +02:00
bugs.h x86/cpu: Move arch_smt_update() to a neutral place 2019-07-25 16:11:59 +02:00
cache.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cacheflush.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cacheinfo.h x86/cpu: Get cache info and setup cache cpumap for Hygon Dhyana 2018-09-27 18:28:57 +02:00
calgary.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
ce4100.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
checksum.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
checksum_32.h Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
checksum_64.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
clocksource.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cmdline.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cmpxchg.h x86: Fix various typos in comments 2018-12-03 10:49:13 +01:00
cmpxchg_32.h locking/atomic/x86: Switch atomic.h to use atomic-instrumented.h 2018-03-12 12:15:35 +01:00
cmpxchg_64.h locking/atomics/x86: Reduce arch_cmpxchg64*() instrumentation 2018-07-25 11:53:58 +02:00
compat.h x86/compat: Adjust in_compat_syscall() to generic code under !COMPAT 2018-11-01 12:59:25 +01:00
cpu.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
cpu_device_id.h x86/cpufeature: Fix various quality problems in the <asm/cpu_device_hd.h> header 2019-02-11 12:36:24 +01:00
cpu_entry_area.h x86/exceptions: Split debug IST stack 2019-04-17 15:14:28 +02:00
cpufeature.h x86/cpufeature: Explain the macro duplication 2019-08-28 08:38:39 +02:00
cpufeatures.h Merge branch 'x86-vmware-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-09-16 19:40:24 -07:00
cpuidle_haltpoll.h cpuidle-haltpoll: vcpu hotplug support 2019-09-03 09:36:36 +02:00
cpumask.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
crash.h x86/headers: Fix -Wmissing-prototypes warning 2018-11-23 07:59:59 +01:00
current.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
debugreg.h x86/exceptions: Split debug IST stack 2019-04-17 15:14:28 +02:00
delay.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
desc.h x86/paravirt: Move the Xen-only pv_cpu_ops under the PARAVIRT_XXL umbrella 2018-09-03 16:50:36 +02:00
desc_defs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
device.h x86/dma: Use generic swiotlb_ops 2018-03-20 10:01:57 +01:00
disabled-features.h x86/cpufeatures, x86/fault: Mark SMAP as disabled when configured out 2018-11-20 08:44:28 +01:00
div64.h x86/math64: Provide a sane mul_u64_u32_div() implementation for x86_64 2019-09-03 08:56:14 +02:00
dma-direct.h dma/direct: Handle the memory encryption bit in common code 2018-03-20 10:01:59 +01:00
dma-mapping.h x86/dma: Remove the x86_dma_fallback_dev hack 2019-04-08 17:52:46 +02:00
dma.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
dmi.h x86: Don't include linux/irq.h from asm/hardirq.h 2018-08-05 09:53:13 +02:00
dwarf2.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
edac.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
efi.h efi: x86: move efi_is_table_address() into arch/x86 2019-08-08 11:01:48 +03:00
elf.h Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-10-23 15:24:22 +01:00
emergency-restart.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
entry_arch.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
espfix.h init: Invoke init_espfix_bsp() from mm_init() 2017-12-22 20:13:05 +01:00
exec.h
extable.h x86/fault: Plumb error code and fault address through to fault handlers 2018-09-03 15:12:09 +02:00
fb.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fixmap.h x86/fixmap: Cleanup outdated comments 2019-08-19 21:50:19 +02:00
floppy.h x86/floppy: Use designated initializers 2016-12-18 09:25:38 +01:00
frame.h x86/stackframe: Move ENCODE_FRAME_POINTER to asm/frame.h 2019-06-25 10:23:45 +02:00
fsgsbase.h x86/fsgsbase: Revert FSGSBASE support 2019-07-03 16:35:23 +02:00
ftrace.h ftrace/x86: Remove mcount() declaration 2019-08-31 06:51:55 -04:00
futex.h x86/extable: Introduce _ASM_EXTABLE_UA for uaccess fixups 2018-09-03 15:12:09 +02:00
gart.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
genapic.h
geode.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 206 2019-05-30 11:29:53 -07:00
hardirq.h x86/Kconfig: Add new X86_HV_CALLBACK_VECTOR config symbol 2019-06-11 21:21:11 +02:00
highmem.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hpet.h x86/hpet: Move clockevents into channels 2019-06-28 00:57:24 +02:00
hugetlb.h hugetlb: allow to free gigantic pages regardless of the configuration 2019-05-14 09:47:47 -07:00
hw_breakpoint.h perf/hw_breakpoint: Remove default hw_breakpoint_arch_parse() 2018-06-26 09:07:58 +02:00
hw_irq.h x86/irq: Improve definition of VECTOR_SHUTDOWN et al 2019-08-19 23:19:06 +02:00
hyperv-tlfs.h KVM: x86: hyper-v: set NoNonArchitecturalCoreSharing CPUID bit when SMT is impossible 2019-09-24 13:37:30 +02:00
hypervisor.h x86/paravirt: Remove const mark from x86_hyper_xen_hvm variable 2019-07-17 08:09:59 +02:00
i8259.h x86: i8259: Add missing include file 2018-08-15 13:44:10 -07:00
ia32.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ia32_unistd.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
imr.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00
inat.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
inat_types.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
init.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
insn-eval.h x86/umip: Fix insn_get_code_seg_params()'s return value 2017-11-23 20:17:59 +01:00
insn.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
inst.h x86/fsgsbase: Revert FSGSBASE support 2019-07-03 16:35:23 +02:00
intel-family.h x86/cpu: Add new Airmont variant to Intel family 2019-09-06 07:30:39 +02:00
intel-mid.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00
intel_ds.h perf/x86/intel: Add Icelake support 2019-04-16 12:26:18 +02:00
intel_mid_vrtc.h x86: Convert x86_platform_ops to timespec64 2018-05-19 14:03:14 +02:00
intel_pconfig.h x86/pconfig: Provide defines and helper to run MKTME_KEY_PROG leaf 2018-03-12 12:10:54 +01:00
intel_pmc_ipc.h platform/x86: intel_pmc_ipc: Add read64 API 2017-11-27 13:39:11 +02:00
intel_pt.h perf/x86/intel: Support PEBS output to PT 2019-08-28 11:29:39 +02:00
intel_punit_ipc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
intel_scu_ipc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
intel_telemetry.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
invpcid.h x86/mm: Create asm/invpcid.h 2017-12-22 20:13:04 +01:00
io.h arch/*: remove unused isa_page_to_bus() 2019-07-16 19:23:22 -07:00
io_apic.h x86/apic: Rename variables and functions related to x86_io_apic_ops 2018-02-17 11:47:45 +01:00
iomap.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
iommu.h x86/dma: Get rid of iommu_pass_through 2019-08-23 10:11:01 +02:00
iommu_table.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
iosf_mbi.h x86: baytrail/cherrytrail: Rework and move P-Unit PMIC bus semaphore code 2018-10-25 16:59:08 +02:00
irq.h x86/irq: Move IS_ERR_OR_NULL() check into common do_IRQ() code 2019-08-19 23:19:06 +02:00
irq_regs.h x86/percpu, x86/irq: Relax {set,get}_irq_regs() 2019-06-17 12:43:42 +02:00
irq_remapping.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
irq_vectors.h x86/irq: Fix outdated comments 2019-04-22 11:42:59 +02:00
irq_work.h x86/headers: Fix -Wmissing-prototypes warning 2018-11-23 07:59:59 +01:00
irqdomain.h genirq/irqdomain: Rename early argument of irq_domain_activate_irq() 2017-12-29 21:13:04 +01:00
irqflags.h x86/speculation/mds: Conditionally clear CPU buffers on idle entry 2019-03-06 21:52:13 +01:00
ist.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 118 2019-05-24 17:39:02 +02:00
jailhouse_para.h x86/jailhouse: Fix incorrect SPDX identifier 2018-04-23 10:17:28 +02:00
jump_label.h x86/jump_label: Batch jump label updates 2019-06-17 12:09:23 +02:00
kasan.h kasan: clean up KASAN_SHADOW_SCALE_SHIFT usage 2018-02-06 18:32:43 -08:00
kaslr.h x86/mm: Make virtual memory layout dynamic for CONFIG_X86_5LEVEL=y 2018-02-14 13:11:13 +01:00
kbdleds.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
kdebug.h x86/process: Don't mix user/kernel regs in 64bit __show_regs() 2018-09-06 14:33:12 +02:00
kexec-bzimage64.h kexec_file,x86,powerpc: factor out kexec_file_ops functions 2018-04-13 17:10:27 -07:00
kexec.h x86/stackframe/32: Provide consistent pt_regs 2019-06-25 10:23:47 +02:00
kgdb.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
kmap_types.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
kprobes.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
kvm_emulate.h x86: KVM: add xsetbv to the emulator 2019-08-22 10:09:20 +02:00
kvm_host.h KVM: x86: assign two bits to track SPTE kinds 2019-09-27 13:13:24 +02:00
kvm_page_track.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
kvm_para.h x86/mm, tracing: Fix CR2 corruption 2019-07-17 23:17:38 +02:00
kvm_vcpu_regs.h KVM: x86: Explicitly #define the VCPU_REGS_* indices 2019-02-20 22:47:38 +01:00
kvmclock.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
linkage.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
livepatch.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
local.h x86/asm: 'Simplify' GEN_*_RMWcc() macros 2018-10-16 17:33:54 +02:00
local64.h
mach_timer.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mach_traps.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
math_emu.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mc146818rtc.h x86: Convert x86_platform_ops to timespec64 2018-05-19 14:03:14 +02:00
mce.h x86/MCE: Group AMD function prototypes in <asm/mce.h> 2019-03-24 10:54:13 +01:00
mcsafe_test.h x86, nfit_test: Add unit test for memcpy_mcsafe() 2018-05-22 23:18:31 -07:00
mem_encrypt.h x86, s390/mm: Move sme_active() and sme_me_mask to x86-specific header 2019-08-09 22:52:08 +10:00
microcode.h Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-04-02 15:16:43 -07:00
microcode_amd.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
microcode_intel.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
misc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mmconfig.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mmu.h x86/ldt: Initialize the context lock for init_mm 2019-07-09 13:57:27 +02:00
mmu_context.h x86/mm: Avoid redundant interrupt disable in load_mm_cr4() 2019-07-24 14:43:37 +02:00
mmx.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mmzone.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mmzone_32.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mmzone_64.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
module.h Merge commit 'upstream-x86-entry' into WIP.x86/mm 2017-12-17 12:58:53 +01:00
mpspec.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mpspec_def.h x86: Introduce and use MP IRQ trigger and polarity defines 2018-01-14 21:11:54 +01:00
mpx.h x86/mpx, mm/core: Fix recursive munmap() corruption 2019-05-09 10:37:17 +02:00
mshyperv.h x86/hyperv: Add functions to allocate/deallocate page for Hyper-V 2019-07-22 11:06:45 +02:00
msi.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
msidef.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
msr-index.h Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-09-16 18:47:53 -07:00
msr-trace.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
msr.h x86: Remove X86_FEATURE_MFENCE_RDTSC 2019-07-22 12:00:51 +02:00
mtrr.h x86/mtrr: Fix Xorg crashes in Qemu sessions 2016-03-29 12:23:26 +02:00
mwait.h x86/speculation/mds: Eliminate leaks by trace_hardirqs_on() 2019-06-26 15:01:50 +02:00
nmi.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
nops.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
nospec-branch.h x86/retpoline: Don't clobber RFLAGS during CALL_NOSPEC on i386 2019-08-23 17:38:13 +02:00
numa.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
numa_32.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
olpc.h Platform: OLPC: Move EC-specific functionality out from x86 2019-05-20 17:27:08 +03:00
olpc_ofw.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
orc_lookup.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
orc_types.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
page.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
page_32.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
page_32_types.h x86/irq/32: Define IRQ_STACK_SIZE 2019-04-17 15:18:36 +02:00
page_64.h Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-04-02 15:45:30 -07:00
page_64_types.h docs: fix broken documentation links 2019-06-08 13:42:13 -06:00
page_types.h x86/mm: Decouple dynamic __PHYSICAL_MASK from AMD SME 2018-06-06 13:38:01 +02:00
paravirt.h x86/paravirt: Drop {read,write}_cr8() hooks 2019-07-22 10:12:33 +02:00
paravirt_types.h x86/paravirt: Drop {read,write}_cr8() hooks 2019-07-22 10:12:33 +02:00
parport.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pat.h x86/mm: add a function to check if a pfn is UC/UC-/WC 2018-01-16 16:40:09 +01:00
pci-direct.h PCI: Make early dump functionality generic 2018-06-29 20:06:07 -05:00
pci-functions.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pci.h mm: replace all open encodings for NUMA_NO_NODE 2019-03-05 21:07:14 -08:00
pci_64.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pci_x86.h PCI/ACPI: Allow ACPI to be built without CONFIG_PCI set 2018-12-20 10:19:49 +01:00
percpu.h x86/percpu: Optimize raw_cpu_xchg() 2019-06-17 12:43:44 +02:00
perf_event.h perf/x86/amd/ibs: Fix sample bias for dispatched micro-ops 2019-08-30 14:27:47 +02:00
perf_event_p4.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pgalloc.h asm-generic, x86: introduce generic pte_{alloc,free}_one[_kernel] 2019-07-12 11:05:45 -07:00
pgtable-2level.h Revert "x86/mm/legacy: Populate the user page-table with user pgd's" 2018-09-14 17:08:45 +02:00
pgtable-2level_types.h x86/pgtable: Move two more functions from pgtable_64.h to pgtable.h 2018-07-20 01:11:42 +02:00
pgtable-3level.h mm: lift the x86_32 PAE version of gup_get_pte to common code 2019-07-12 11:05:44 -07:00
pgtable-3level_types.h x86/paravirt: Move items in pv_info under PARAVIRT_XXL umbrella 2018-09-03 16:50:36 +02:00
pgtable-invert.h x86/speculation/l1tf: Exempt zeroed PTEs from inversion 2018-08-17 10:27:36 -07:00
pgtable.h mm: introduce ARCH_HAS_PTE_DEVMAP 2019-07-16 19:23:25 -07:00
pgtable_32.h mm: consolidate pgtable_cache_init() and pgd_cache_init() 2019-09-24 15:54:09 -07:00
pgtable_32_types.h x86/ldt: Define LDT_END_ADDR 2018-07-20 01:11:47 +02:00
pgtable_64.h mm: consolidate pgtable_cache_init() and pgd_cache_init() 2019-09-24 15:54:09 -07:00
pgtable_64_types.h docs: fix broken documentation links 2019-06-08 13:42:13 -06:00
pgtable_types.h mm: introduce ARCH_HAS_PTE_DEVMAP 2019-07-16 19:23:25 -07:00
pkeys.h powerpc updates for 4.18 2018-06-07 10:23:33 -07:00
platform_sst_audio.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00
pm-trace.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
posix_types.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
preempt.h x86: Use CONFIG_PREEMPTION 2019-07-31 19:03:35 +02:00
probe_roms.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
processor-cyrix.h x86/cpu/cyrix: Remove {get,set}Cx86_old macros used for Cyrix processors 2019-03-21 12:28:50 +01:00
processor-flags.h x86/mm/pti: Define X86_CR3_PTI_PCID_USER_BIT on x86_32 2018-07-20 01:11:44 +02:00
processor.h x86/asm: Move native_write_cr0/4() out of line 2019-07-10 22:15:05 +02:00
prom.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
proto.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pti.h x86/mm/pti: Introduce pti_finalize() 2018-07-20 01:11:45 +02:00
ptrace.h asm-generic: remove ptrace.h 2019-07-12 15:41:33 -07:00
purgatory.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pvclock-abi.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pvclock.h x86/vdso: Switch to generic vDSO implementation 2019-06-22 21:21:10 +02:00
qrwlock.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
qspinlock.h locking/qspinlock,x86: Clarify virt_spin_lock_key 2019-08-06 12:49:16 +02:00
qspinlock_paravirt.h locking/pvqspinlock/x86: Use LOCK_PREFIX in __pv_queued_spin_unlock() assembly code 2018-07-25 11:22:20 +02:00
realmode.h x86/realmode: Remove trampoline_status 2019-07-22 11:30:18 +02:00
reboot.h x86/headers: Fix -Wmissing-prototypes warning 2018-11-23 07:59:59 +01:00
reboot_fixups.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
refcount.h refcount_t: Add ACQUIRE ordering on success for dec(sub)_and_test() variants 2019-02-04 09:03:31 +01:00
required-features.h x86/mm: Allow to boot without LA57 if CONFIG_X86_5LEVEL=y 2018-02-16 10:48:49 +01:00
resctrl_sched.h x86/resctrl: Avoid confusion over the new X86_RESCTRL config 2019-02-02 10:34:52 +01:00
rio.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rmwcc.h jump_label: move 'asm goto' support test to Kconfig 2019-01-06 09:46:51 +09:00
seccomp.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sections.h x86/mm: Identify the end of the kernel area to be reserved 2019-06-20 09:22:47 +02:00
segment.h Merge branch 'x86-paravirt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-10-23 17:54:58 +01:00
serial.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
set_memory.h x86/mm: Remove the unused set_memory_wt() function 2019-09-03 09:26:37 +02:00
setup.h x86/kernel: Fix more -Wmissing-prototypes warnings 2018-12-08 12:24:35 +01:00
setup_arch.h
shmparam.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sigcontext.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sigframe.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sighandling.h x86/headers: Fix -Wmissing-prototypes warning 2018-11-23 07:59:59 +01:00
signal.h x86/asm: Use CC_SET()/CC_OUT() in __gen_sigismember() 2018-08-30 13:02:31 +02:00
simd.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
smap.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00
smp.h x86/smp: Move smp_function_call implementations into IPI code 2019-07-25 16:12:01 +02:00
sparsemem.h x86/mm: Stop pretending pgtable_l5_enabled is a variable 2018-05-19 11:56:57 +02:00
spec-ctrl.h x86/speculation: Prevent stale SPEC_CTRL msr content 2018-11-28 11:57:12 +01:00
special_insns.h x86/paravirt: Drop {read,write}_cr8() hooks 2019-07-22 10:12:33 +02:00
spinlock.h Merge branch 'linus' into locking/core, to resolve conflicts 2017-11-07 10:32:44 +01:00
spinlock_types.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sta2x11.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
stackprotector.h x86/irq/64: Split the IRQ stack into its own pages 2019-04-17 15:37:02 +02:00
stacktrace.h x86/stackframe/32: Provide consistent pt_regs 2019-06-25 10:23:47 +02:00
string.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
string_32.h x86/asm: Remove unused __constant_c_x_memset() macro and inlines 2019-01-12 17:54:49 +01:00
string_64.h x86/asm: Remove dead __GNUC__ conditionals 2019-01-12 17:50:48 +01:00
suspend.h x86, hibernate: Rename temp_level4_pgt to temp_pgt 2018-10-03 11:56:34 +02:00
suspend_32.h x86-32/asm/power: Create stack frames in hibernate_asm_32.S 2018-10-03 11:56:33 +02:00
suspend_64.h x86/paravirt: Drop {read,write}_cr8() hooks 2019-07-22 10:12:33 +02:00
svm.h kvm: svm: Intercept RDPRU 2019-09-24 16:15:36 +02:00
swiotlb.h x86/dma: Use generic swiotlb_ops 2018-03-20 10:01:57 +01:00
switch_to.h sched/x86_64: Don't save flags on context switch 2019-04-03 11:02:24 +02:00
sync_bitops.h x86/asm: Modernize sync_bitops.h 2019-04-10 09:53:31 +02:00
sync_core.h lockin/x86: Implement sync_core_before_usermode() 2018-02-05 21:34:57 +01:00
syscall.h x86/syscalls: Split the x32 syscalls into their own table 2019-07-22 10:31:23 +02:00
syscall_wrapper.h syscalls/x86: Adapt syscall_wrapper.h to the new syscall stub naming convention 2018-04-09 16:47:28 +02:00
syscalls.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 365 2019-06-05 17:37:09 +02:00
sysfb.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
tce.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
text-patching.h x86: Correct misc typos 2019-09-02 14:02:59 +02:00
thread_info.h x86/entry: Add TIF_NEED_FPU_LOAD 2019-04-11 16:21:51 +02:00
time.h x86/timer: Skip PIT initialization on modern chipsets 2019-06-29 11:35:35 +02:00
timer.h Merge branch 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-11-13 19:07:38 -08:00
timex.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tlb.h asm-generic/tlb, arch: Provide generic tlb_flush() based on flush_tlb_range() 2019-04-03 10:32:42 +02:00
tlbbatch.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tlbflush.h x86/mm: Avoid redundant interrupt disable in load_mm_cr4() 2019-07-24 14:43:37 +02:00
topology.h topology: Create core_cpus and die_cpus sysfs attributes 2019-05-23 10:08:34 +02:00
trace_clock.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
traps.h Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-07-20 11:24:49 -07:00
tsc.h x86/headers: Fix -Wmissing-prototypes warning 2018-11-23 07:59:59 +01:00
uaccess.h uaccess: implement a proper unsafe_copy_to_user() and switch filldir over to it 2019-10-07 12:56:48 -07:00
uaccess_32.h x86/uaccess: Use __uaccess_begin_nospec() and uaccess_try_nospec 2018-01-30 21:54:31 +01:00
uaccess_64.h x86/uaccess: Move copy_user_handle_tail() into asm 2019-04-03 09:36:29 +02:00
umip.h x86/umip: Add emulation code for UMIP instructions 2017-11-08 11:16:22 +01:00
unaligned.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
unistd.h x86/syscalls: Split the x32 syscalls into their own table 2019-07-22 10:31:23 +02:00
unwind.h x86/unwind: Handle NULL pointer calls better in frame unwinder 2019-03-06 23:03:26 +01:00
unwind_hints.h x86/unwind/orc: Detect the end of the stack 2018-06-21 16:34:56 +02:00
uprobes.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
user.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
user32.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
user_32.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
user_64.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vdso.h x86/vdso: Remove hpet_page from vDSO 2019-05-08 13:13:57 +02:00
vga.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vgtod.h x86/vdso: Switch to generic vDSO implementation 2019-06-22 21:21:10 +02:00
virtext.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 499 2019-06-19 17:09:53 +02:00
vm86.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vmware.h x86/vmware: Add a header file for hypercall definitions 2019-08-28 13:32:06 +02:00
vmx.h kvm: nvmx: limit atomic switch MSRs 2019-09-24 16:32:15 +02:00
vsyscall.h x86/vsyscall: Show something useful on a read fault 2019-06-28 00:04:39 +02:00
vvar.h x86/vdso: Switch to generic vDSO implementation 2019-06-22 21:21:10 +02:00
word-at-a-time.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
x86_init.h Merge branch 'next-lockdown' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2019-09-28 08:14:15 -07:00
xor.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 47 2019-05-24 17:27:13 +02:00
xor_32.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 47 2019-05-24 17:27:13 +02:00
xor_64.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
xor_avx.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00