linux/arch/x86/include/asm
Thomas Gleixner 4804e382c1 x86/ioperm: Share I/O bitmap if identical
The I/O bitmap is duplicated on fork. That's wasting memory and slows down
fork. There is no point to do so. As long as the bitmap is not modified it
can be shared between threads and processes.

Add a refcount and just share it on fork. If a task modifies the bitmap
then it has to do the duplication if and only if it is shared.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Andy Lutomirski <luto@kernel.org>
2019-11-16 11:24:04 +01: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
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
alternative-asm.h
alternative.h x86: alternative.h: use asm_inline for all alternative variants 2019-09-15 20:14:15 +02:00
amd_nb.h
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
apm.h
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
asm.h
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
bitops.h x86/bitops: Use __builtin_constant_p() directly instead of IS_IMMEDIATE() 2019-07-23 13:44:18 +02:00
boot.h
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
cacheflush.h
cacheinfo.h
calgary.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
ce4100.h
checksum.h
checksum_32.h
checksum_64.h
clocksource.h
cmdline.h
cmpxchg.h
cmpxchg_32.h
cmpxchg_64.h
compat.h
cpu.h
cpu_device_id.h
cpu_entry_area.h x86: Use the correct SPDX License Identifier in headers 2019-10-01 20:31:35 +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
crash.h
current.h
debugreg.h
delay.h
desc.h
desc_defs.h
device.h
disabled-features.h
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-mapping.h
dma.h
dmi.h
dwarf2.h
edac.h
efi.h efi: x86: move efi_is_table_address() into arch/x86 2019-08-08 11:01:48 +03:00
elf.h
emergency-restart.h
entry_arch.h
espfix.h
exec.h
extable.h
fb.h
fixmap.h x86/fixmap: Cleanup outdated comments 2019-08-19 21:50:19 +02:00
floppy.h
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
gart.h
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
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
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
ia32.h
ia32_unistd.h
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
insn-eval.h
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 Comet Lake to the Intel CPU models header 2019-10-08 19:01:31 +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
intel_mid_vrtc.h
intel_pconfig.h
intel_pmc_ipc.h
intel_pt.h perf/x86/intel: Support PEBS output to PT 2019-08-28 11:29:39 +02:00
intel_punit_ipc.h
intel_scu_ipc.h
intel_telemetry.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
invpcid.h
io.h arch/*: remove unused isa_page_to_bus() 2019-07-16 19:23:22 -07:00
io_apic.h
io_bitmap.h x86/ioperm: Share I/O bitmap if identical 2019-11-16 11:24:04 +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
iosf_mbi.h
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
irq_work.h
irqdomain.h
irqflags.h
ist.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 118 2019-05-24 17:39:02 +02:00
jailhouse_para.h
jump_label.h x86/jump_label: Batch jump label updates 2019-06-17 12:09:23 +02:00
kasan.h
kaslr.h
kbdleds.h
Kbuild treewide: Add SPDX license identifier - Kbuild 2019-05-30 11:32:33 -07:00
kdebug.h
kexec-bzimage64.h
kexec.h x86/stackframe/32: Provide consistent pt_regs 2019-06-25 10:23:47 +02:00
kgdb.h
kmap_types.h
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: nVMX: Don't leak L1 MMIO regions to L2 2019-10-22 19:04:40 +02:00
kvm_page_track.h
kvm_para.h x86/mm, tracing: Fix CR2 corruption 2019-07-17 23:17:38 +02:00
kvm_vcpu_regs.h
kvmclock.h
linkage.h
livepatch.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
local.h
local64.h
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h
mce.h
mcsafe_test.h
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
microcode_amd.h
microcode_intel.h
misc.h
mmconfig.h
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
mmzone.h
mmzone_32.h
mmzone_64.h
module.h
mpspec.h
mpspec_def.h
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
msidef.h
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
msr.h x86: Remove X86_FEATURE_MFENCE_RDTSC 2019-07-22 12:00:51 +02:00
mtrr.h
mwait.h x86/asm: Fix MWAITX C-state hint value 2019-10-08 13:25:24 +02:00
nmi.h
nops.h
nospec-branch.h x86/retpoline: Don't clobber RFLAGS during CALL_NOSPEC on i386 2019-08-23 17:38:13 +02:00
numa.h
numa_32.h
olpc.h Platform: OLPC: Move EC-specific functionality out from x86 2019-05-20 17:27:08 +03:00
olpc_ofw.h
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
page_32.h
page_32_types.h
page_64.h
page_64_types.h docs: fix broken documentation links 2019-06-08 13:42:13 -06:00
page_types.h
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
pat.h
pci-direct.h
pci-functions.h
pci.h
pci_64.h
pci_x86.h
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
pgalloc.h asm-generic, x86: introduce generic pte_{alloc,free}_one[_kernel] 2019-07-12 11:05:45 -07:00
pgtable-2level.h
pgtable-2level_types.h
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
pgtable-invert.h
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
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
platform_sst_audio.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00
pm-trace.h
posix_types.h
preempt.h x86: Use CONFIG_PREEMPTION 2019-07-31 19:03:35 +02:00
probe_roms.h
processor-cyrix.h
processor-flags.h
processor.h x86/ioperm: Add bitmap sequence number 2019-11-16 11:24:02 +01:00
prom.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
proto.h
pti.h x86: Use the correct SPDX License Identifier in headers 2019-10-01 20:31:35 +02:00
ptrace.h x86/process: Unify copy_thread_tls() 2019-11-16 11:23:59 +01:00
purgatory.h
pvclock-abi.h
pvclock.h x86/vdso: Switch to generic vDSO implementation 2019-06-22 21:21:10 +02:00
qrwlock.h
qspinlock.h locking/qspinlock,x86: Clarify virt_spin_lock_key 2019-08-06 12:49:16 +02:00
qspinlock_paravirt.h
realmode.h x86/realmode: Remove trampoline_status 2019-07-22 11:30:18 +02:00
reboot.h
reboot_fixups.h
refcount.h
required-features.h
resctrl_sched.h
rio.h
rmwcc.h
seccomp.h
sections.h x86/mm: Identify the end of the kernel area to be reserved 2019-06-20 09:22:47 +02:00
segment.h
serial.h
set_memory.h x86/mm: Remove the unused set_memory_wt() function 2019-09-03 09:26:37 +02:00
setup.h
setup_arch.h
shmparam.h
sigcontext.h
sigframe.h
sighandling.h
signal.h
simd.h
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
spec-ctrl.h
special_insns.h x86/paravirt: Drop {read,write}_cr8() hooks 2019-07-22 10:12:33 +02:00
spinlock.h
spinlock_types.h
sta2x11.h
stackprotector.h
stacktrace.h x86/stackframe/32: Provide consistent pt_regs 2019-06-25 10:23:47 +02:00
string.h
string_32.h
string_64.h
suspend.h
suspend_32.h
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
switch_to.h x86/process: Unify copy_thread_tls() 2019-11-16 11:23:59 +01:00
sync_bitops.h
sync_core.h
syscall.h x86/syscalls: Split the x32 syscalls into their own table 2019-07-22 10:31:23 +02:00
syscall_wrapper.h
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/ioperm: Move TSS bitmap update to exit to user work 2019-11-16 11:24:03 +01:00
time.h x86/timer: Skip PIT initialization on modern chipsets 2019-06-29 11:35:35 +02:00
timer.h
timex.h
tlb.h
tlbbatch.h
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
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
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
uaccess_64.h
umip.h
unaligned.h
unistd.h x86/syscalls: Split the x32 syscalls into their own table 2019-07-22 10:31:23 +02:00
unwind.h
unwind_hints.h
uprobes.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
user.h
user32.h
user_32.h
user_64.h
vdso.h x86/vdso: Remove hpet_page from vDSO 2019-05-08 13:13:57 +02:00
vga.h
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
vmware.h x86/cpu/vmware: Fix platform detection VMWARE_PORT macro 2019-10-22 00:51:44 +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
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
xor_avx.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00