linux-kernelorg-stable/include/linux
Axel Rasmussen 7677f7fd8b userfaultfd: add minor fault registration mode
Patch series "userfaultfd: add minor fault handling", v9.

Overview
========

This series adds a new userfaultfd feature, UFFD_FEATURE_MINOR_HUGETLBFS.
When enabled (via the UFFDIO_API ioctl), this feature means that any
hugetlbfs VMAs registered with UFFDIO_REGISTER_MODE_MISSING will *also*
get events for "minor" faults.  By "minor" fault, I mean the following
situation:

Let there exist two mappings (i.e., VMAs) to the same page(s) (shared
memory).  One of the mappings is registered with userfaultfd (in minor
mode), and the other is not.  Via the non-UFFD mapping, the underlying
pages have already been allocated & filled with some contents.  The UFFD
mapping has not yet been faulted in; when it is touched for the first
time, this results in what I'm calling a "minor" fault.  As a concrete
example, when working with hugetlbfs, we have huge_pte_none(), but
find_lock_page() finds an existing page.

We also add a new ioctl to resolve such faults: UFFDIO_CONTINUE.  The idea
is, userspace resolves the fault by either a) doing nothing if the
contents are already correct, or b) updating the underlying contents using
the second, non-UFFD mapping (via memcpy/memset or similar, or something
fancier like RDMA, or etc...).  In either case, userspace issues
UFFDIO_CONTINUE to tell the kernel "I have ensured the page contents are
correct, carry on setting up the mapping".

Use Case
========

Consider the use case of VM live migration (e.g. under QEMU/KVM):

1. While a VM is still running, we copy the contents of its memory to a
   target machine. The pages are populated on the target by writing to the
   non-UFFD mapping, using the setup described above. The VM is still running
   (and therefore its memory is likely changing), so this may be repeated
   several times, until we decide the target is "up to date enough".

2. We pause the VM on the source, and start executing on the target machine.
   During this gap, the VM's user(s) will *see* a pause, so it is desirable to
   minimize this window.

3. Between the last time any page was copied from the source to the target, and
   when the VM was paused, the contents of that page may have changed - and
   therefore the copy we have on the target machine is out of date. Although we
   can keep track of which pages are out of date, for VMs with large amounts of
   memory, it is "slow" to transfer this information to the target machine. We
   want to resume execution before such a transfer would complete.

4. So, the guest begins executing on the target machine. The first time it
   touches its memory (via the UFFD-registered mapping), userspace wants to
   intercept this fault. Userspace checks whether or not the page is up to date,
   and if not, copies the updated page from the source machine, via the non-UFFD
   mapping. Finally, whether a copy was performed or not, userspace issues a
   UFFDIO_CONTINUE ioctl to tell the kernel "I have ensured the page contents
   are correct, carry on setting up the mapping".

We don't have to do all of the final updates on-demand. The userfaultfd manager
can, in the background, also copy over updated pages once it receives the map of
which pages are up-to-date or not.

Interaction with Existing APIs
==============================

Because this is a feature, a registered VMA could potentially receive both
missing and minor faults.  I spent some time thinking through how the
existing API interacts with the new feature:

UFFDIO_CONTINUE cannot be used to resolve non-minor faults, as it does not
allocate a new page.  If UFFDIO_CONTINUE is used on a non-minor fault:

- For non-shared memory or shmem, -EINVAL is returned.
- For hugetlb, -EFAULT is returned.

UFFDIO_COPY and UFFDIO_ZEROPAGE cannot be used to resolve minor faults.
Without modifications, the existing codepath assumes a new page needs to
be allocated.  This is okay, since userspace must have a second
non-UFFD-registered mapping anyway, thus there isn't much reason to want
to use these in any case (just memcpy or memset or similar).

- If UFFDIO_COPY is used on a minor fault, -EEXIST is returned.
- If UFFDIO_ZEROPAGE is used on a minor fault, -EEXIST is returned (or -EINVAL
  in the case of hugetlb, as UFFDIO_ZEROPAGE is unsupported in any case).
- UFFDIO_WRITEPROTECT simply doesn't work with shared memory, and returns
  -ENOENT in that case (regardless of the kind of fault).

Future Work
===========

This series only supports hugetlbfs.  I have a second series in flight to
support shmem as well, extending the functionality.  This series is more
mature than the shmem support at this point, and the functionality works
fully on hugetlbfs, so this series can be merged first and then shmem
support will follow.

This patch (of 6):

This feature allows userspace to intercept "minor" faults.  By "minor"
faults, I mean the following situation:

Let there exist two mappings (i.e., VMAs) to the same page(s).  One of the
mappings is registered with userfaultfd (in minor mode), and the other is
not.  Via the non-UFFD mapping, the underlying pages have already been
allocated & filled with some contents.  The UFFD mapping has not yet been
faulted in; when it is touched for the first time, this results in what
I'm calling a "minor" fault.  As a concrete example, when working with
hugetlbfs, we have huge_pte_none(), but find_lock_page() finds an existing
page.

This commit adds the new registration mode, and sets the relevant flag on
the VMAs being registered.  In the hugetlb fault path, if we find that we
have huge_pte_none(), but find_lock_page() does indeed find an existing
page, then we have a "minor" fault, and if the VMA has the userfaultfd
registration flag, we call into userfaultfd to handle it.

This is implemented as a new registration mode, instead of an API feature.
This is because the alternative implementation has significant drawbacks
[1].

However, doing it this was requires we allocate a VM_* flag for the new
registration mode.  On 32-bit systems, there are no unused bits, so this
feature is only supported on architectures with
CONFIG_ARCH_USES_HIGH_VMA_FLAGS.  When attempting to register a VMA in
MINOR mode on 32-bit architectures, we return -EINVAL.

[1] https://lore.kernel.org/patchwork/patch/1380226/

[peterx@redhat.com: fix minor fault page leak]
  Link: https://lkml.kernel.org/r/20210322175132.36659-1-peterx@redhat.com

Link: https://lkml.kernel.org/r/20210301222728.176417-1-axelrasmussen@google.com
Link: https://lkml.kernel.org/r/20210301222728.176417-2-axelrasmussen@google.com
Signed-off-by: Axel Rasmussen <axelrasmussen@google.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Chinwen Chang <chinwen.chang@mediatek.com>
Cc: Huang Ying <ying.huang@intel.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jann Horn <jannh@google.com>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: Lokesh Gidra <lokeshgidra@google.com>
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: "Michal Koutn" <mkoutny@suse.com>
Cc: Michel Lespinasse <walken@google.com>
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Peter Xu <peterx@redhat.com>
Cc: Shaohua Li <shli@fb.com>
Cc: Shawn Anastasio <shawn@anastas.io>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Steven Price <steven.price@arm.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Adam Ruprecht <ruprecht@google.com>
Cc: Axel Rasmussen <axelrasmussen@google.com>
Cc: Cannon Matthews <cannonmatthews@google.com>
Cc: "Dr . David Alan Gilbert" <dgilbert@redhat.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Mina Almasry <almasrymina@google.com>
Cc: Oliver Upton <oupton@google.com>
Cc: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2021-05-05 11:27:22 -07:00
..
amba spi: Updates for v5.13 2021-04-26 16:32:11 -07:00
avf ice: Enable RSS configure for AVF 2021-04-22 09:26:22 -07:00
bcma
byteorder
can can: bittiming: add CAN_KBPS, CAN_MBPS and CAN_MHZ macros 2021-03-30 11:14:45 +02:00
ceph
clk clk: tegra: Add PLLE HW power sequencer control 2021-03-24 14:01:58 +01:00
crush
decompress
device
dma
dsa net: dsa: free skb->cb usage in core driver 2021-04-27 14:10:15 -07:00
extcon
firmware ARM: SoC drivers for v5.13 2021-04-26 12:11:52 -07:00
fpga
fsl soc: fsl: guts: fix comment syntax in file 2021-04-06 15:33:32 -05:00
gpio
greybus
hsi
i3c
iio dt-bindings:iio:dac: update microchip,mcp4725.yaml reference 2021-04-07 08:36:38 +01:00
input
irqchip ARM: platform support for Apple M1 2021-04-26 12:30:36 -07:00
isdn
lockd
mailbox
mdio
mfd - Core Frameworks 2021-04-28 15:59:13 -07:00
mlx4
mlx5 net/mlx5: E-Switch, Prepare to return total vports from eswitch struct 2021-04-24 00:58:43 -07:00
mmc mmc: core: Convert mmc_of_parse_voltage() to use device property API 2021-04-23 09:29:49 +02:00
mtd mtd: core: Constify buf in mtd_write_user_prot_reg() 2021-04-16 20:30:54 +02:00
mux
net/intel
netfilter netfilter: allow to turn off xtables compat layer 2021-04-26 18:16:56 +02:00
netfilter_arp netfilter: allow to turn off xtables compat layer 2021-04-26 18:16:56 +02:00
netfilter_bridge netfilter: ebtables: remove the 3 ebtables pointers from struct net 2021-04-26 03:20:07 +02:00
netfilter_ipv4 netfilter: allow to turn off xtables compat layer 2021-04-26 18:16:56 +02:00
netfilter_ipv6 netfilter: allow to turn off xtables compat layer 2021-04-26 18:16:56 +02:00
pcs
perf
phy
pinctrl
platform_data Networking changes for 5.13. 2021-04-29 11:57:23 -07:00
power
qed net: qed: remove unused including <linux/version.h> 2021-04-08 13:26:22 -07:00
raid
regulator regulator: core: Fix off_on_delay handling 2021-04-23 13:18:35 +01:00
remoteproc
reset
rpmsg
rtc
sched \n 2021-04-29 11:06:13 -07:00
soc soc: qcom: address kernel-doc warnings 2021-03-29 22:49:54 -05:00
soundwire soundwire: add static port mapping support 2021-04-06 10:22:02 +05:30
spi MMC core: 2021-04-28 15:56:51 -07:00
ssb
sunrpc svcrdma: Remove svc_rdma_recv_ctxt::rc_pages and ::rc_arg 2021-03-31 15:57:48 -04:00
surface_aggregator
ulpi
unaligned
usb Networking changes for 5.13. 2021-04-29 11:57:23 -07:00
8250_pci.h
a.out.h
acct.h
acpi.h Merge branches 'acpi-cppc', 'acpi-video' and 'acpi-utils' 2021-04-26 17:04:27 +02:00
acpi_dma.h
acpi_iort.h
acpi_pmtmr.h
adb.h
adfs_fs.h
adreno-smmu-priv.h
adxl.h
aer.h
agp_backend.h
agpgart.h
ahci-remap.h
ahci_platform.h
aio.h
alarmtimer.h
alcor_pci.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
anon_inodes.h
apm-emulation.h
apm_bios.h
apple-gmux.h
apple_bl.h
arch_topology.h
arm-cci.h
arm-smccc.h
arm_sdei.h
armada-37xx-rwtm-mailbox.h treewide: change my e-mail address, fix my name 2021-04-09 14:54:23 -07:00
ascii85.h
asn1.h
asn1_ber_bytecode.h
asn1_decoder.h
asn1_encoder.h lib: Add ASN.1 encoder 2021-04-14 16:30:30 +03:00
assoc_array.h
assoc_array_priv.h
async.h
async_tx.h
ata.h
ata_platform.h
atalk.h
ath9k_platform.h
atm.h
atm_tcp.h
atmdev.h
atmel-isc-media.h
atmel-mci.h
atmel-ssc.h
atmel_pdc.h
atomic-arch-fallback.h
atomic-fallback.h
atomic.h
attribute_container.h
audit.h
auto_dev-ioctl.h
auto_fs.h
auxiliary_bus.h
auxvec.h
average.h
backing-dev-defs.h
backing-dev.h
backlight.h
badblocks.h
balloon_compaction.h
bcd.h
bch.h
bcm47xx_nvram.h
bcm47xx_sprom.h
bcm47xx_wdt.h
bcm963xx_nvram.h
bcm963xx_tag.h
binfmts.h
bio.h block: move bio_list_copy_data to pktcdvd 2021-04-12 09:19:58 -06:00
bit_spinlock.h
bitfield.h
bitmap.h
bitops.h
bitrev.h
bits.h
blk-cgroup.h
blk-crypto.h
blk-mq-pci.h
blk-mq-rdma.h
blk-mq-virtio.h
blk-mq.h
blk-pm.h
blk_types.h
blkdev.h for-5.13/drivers-2021-04-27 2021-04-28 14:39:37 -07:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootconfig.h
bottom_half.h
bpf-cgroup.h bpf, cgroup: Delete repeated struct bpf_prog declaration 2021-04-03 01:43:49 +02:00
bpf-netns.h
bpf.h Networking changes for 5.13. 2021-04-29 11:57:23 -07:00
bpf_lirc.h
bpf_local_storage.h
bpf_lsm.h
bpf_trace.h
bpf_types.h
bpf_verifier.h bpf: Return target info when a tracing bpf_link is queried 2021-04-13 18:18:57 -07:00
bpfilter.h
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btf.h bpf: Support bpf program calling kernel function 2021-03-26 20:41:51 -07:00
btf_ids.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h
bug.h
build-salt.h
build_bug.h
buildid.h
bvec.h
c2port.h
cache.h
cacheinfo.h
capability.h
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cfi.h add support for Clang CFI 2021-04-08 16:04:20 -07:00
cgroup-defs.h
cgroup.h
cgroup_rdma.h
cgroup_subsys.h cgroup: Add misc cgroup controller 2021-04-04 13:34:46 -04:00
circ_buf.h
cleancache.h
clk-provider.h clk: divider: add devm_clk_hw_register_divider 2021-04-07 11:05:44 -07:00
clk.h
clkdev.h
clockchips.h
clocksource.h timekeeping, clocksource: Fix various typos in comments 2021-03-22 23:06:48 +01:00
cm4000_cs.h
cma.h
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda.h
compaction.h
compat.h signal, perf: Fix siginfo_t by avoiding u64 on 32-bit architectures 2021-04-23 09:03:16 +02:00
compiler-clang.h cfi: add __cficanonical 2021-04-08 16:04:20 -07:00
compiler-gcc.h include/linux/compiler-gcc.h: sparse can do constant folding of __builtin_bswap*() 2021-04-30 11:20:35 -07:00
compiler-intel.h
compiler-version.h kbuild: redo fake deps at include/config/*.h 2021-04-25 05:26:10 +09:00
compiler.h
compiler_attributes.h
compiler_types.h cfi: add __cficanonical 2021-04-08 16:04:20 -07:00
completion.h
component.h
configfs.h
connector.h
console.h
console_struct.h
consolemap.h
const.h
container.h
context_tracking.h
context_tracking_state.h
cookie.h
cordic.h
coredump.h
coresight-pmu.h
coresight-stm.h
coresight.h
count_zeros.h
counter.h
counter_enum.h
cper.h
cpu.h
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpufeature.h
cpufreq.h
cpuhotplug.h ARM: platform support for Apple M1 2021-04-26 12:30:36 -07:00
cpuidle.h cpuidle: Use s64 as exit_latency_ns and target_residency_ns data type 2021-04-07 19:26:44 +02:00
cpuidle_haltpoll.h
cpumask.h The x86 MM changes in this cycle were: 2021-04-29 11:41:43 -07:00
cpuset.h
crash_core.h
crash_dump.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
crc4.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
crc32poly.h
crc64.h
cred.h lsm: separate security_task_getsecid() into subjective and objective variants 2021-03-22 15:23:32 -04:00
crypto.h
cs5535.h
ctype.h
cuda.h
dasd_mod.h
davinci_emac.h
dax.h
dca.h
dcache.h
dccp.h
debug_locks.h
debugfs.h debugfs: Implement debugfs_create_str() 2021-04-16 17:06:34 +02:00
debugobjects.h
delay.h
delayacct.h
delayed_call.h
dev_printk.h
devcoredump.h
devfreq-event.h
devfreq.h
devfreq_cooling.h
device-mapper.h dm table: Fix zoned model check and zone sectors check 2021-03-22 12:32:31 -04:00
device.h driver core: Avoid pointless deferred probe attempts 2021-03-23 14:58:10 +01:00
device_cgroup.h
devm-helpers.h devm-helpers: Fix devm_delayed_work_autocancel() kerneldoc 2021-04-22 08:20:15 +02:00
devpts_fs.h
dfl.h
digsig.h
dim.h
dio.h
dirent.h
dlm.h
dlm_plock.h
dm-bufio.h
dm-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.h
dm9000.h
dma-buf-map.h
dma-buf.h
dma-direct.h
dma-direction.h
dma-fence-array.h
dma-fence-chain.h
dma-fence.h drm/syncobj: use newly allocated stub fences 2021-04-08 12:21:13 +02:00
dma-heap.h
dma-iommu.h
dma-map-ops.h
dma-mapping.h
dma-resv.h
dmaengine.h
dmapool.h
dmar.h
dmi.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
drbd.h
drbd_genl.h
drbd_genl_api.h
drbd_limits.h
ds2782_battery.h
dtlk.h
dtpm.h
dw_apb_timer.h
dynamic_debug.h
dynamic_queue_limits.h
earlycpio.h
ecryptfs.h
edac.h
edd.h
eeprom_93cx6.h
eeprom_93xx46.h
efi-bgrt.h
efi.h
efi_embedded_fw.h
efs_vh.h
eisa.h
elevator.h
elf-fdpic.h
elf-randomize.h
elf.h
elfcore-compat.h
elfcore.h
elfnote-lto.h kbuild: add an elfnote for whether vmlinux is built with lto 2021-04-25 05:25:42 +09:00
elfnote.h
enclosure.h
energy_model.h
entry-common.h
entry-kvm.h
err.h
errname.h
errno.h
error-injection.h
errqueue.h
errseq.h
etherdevice.h
ethtool.h ethtool: add interface to read RMON stats 2021-04-16 16:59:20 -07:00
ethtool_netlink.h
eventfd.h
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs.h
extable.h
extcon-provider.h
extcon.h
f2fs_fs.h
f75375s.h
falloc.h
fanotify.h
fault-inject-usercopy.h
fault-inject.h
fb.h
fbcon.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
fiemap.h
file.h
fileattr.h vfs: add fileattr ops 2021-04-12 15:04:23 +02:00
filter.h bpf: Remove unused bpf_load_pointer 2021-03-30 22:37:06 +02:00
fips.h
firewire.h
firmware-map.h
firmware.h
fixp-arith.h
flat.h
flex_proportions.h
font.h
fortify-string.h
freelist.h
freezer.h freezer: Remove unused inline function try_to_freeze_nowarn() 2021-04-08 19:12:20 +02:00
frontswap.h
fs.h mm: remove nrexceptional from inode 2021-05-05 11:27:20 -07:00
fs_context.h
fs_enet_pd.h
fs_parser.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_types.h
fs_uart_pd.h
fscache-cache.h fscache, cachefiles: Add alternate API to use kiocb for read/write to cache 2021-04-23 10:14:32 +01:00
fscache.h fscache, cachefiles: Add alternate API to use kiocb for read/write to cache 2021-04-23 10:14:32 +01:00
fscrypt.h
fsi-occ.h
fsi-sbefifo.h
fsi.h
fsl-diu-fb.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsldma.h
fsnotify.h
fsnotify_backend.h
fsverity.h
ftrace.h
ftrace_irq.h
futex.h
fwnode.h
gameport.h
gcd.h
genalloc.h
generic-radix-tree.h
genetlink.h
genhd.h block: remove disk_part_iter 2021-04-08 10:24:36 -06:00
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h mm/page_alloc: add an array-based interface to the bulk page allocator 2021-04-30 11:20:43 -07:00
glob.h
gnss.h
goldfish.h
gpio-pxa.h
gpio.h
gpio_keys.h
greybus.h
hardirq.h
hash.h
hashtable.h
hdlc.h
hdlcdrv.h
hdmi.h
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h
hid.h
hidden.h
hiddev.h
hidraw.h
highmem-internal.h
highmem.h
highuid.h
hil.h
hil_mlc.h
hippidevice.h
hmm.h
host1x.h gpu: host1x: Use different lock classes for each client 2021-03-30 19:37:20 +02:00
hp_sdc.h
hpet.h
hrtimer.h
hrtimer_defs.h
htcpld.h
huge_mm.h mm/huge_memory.c: remove unused macro TRANSPARENT_HUGEPAGE_DEBUG_COW_FLAG 2021-05-05 11:27:21 -07:00
hugetlb.h mm: make alloc_contig_range handle in-use hugetlb pages 2021-05-05 11:27:22 -07:00
hugetlb_cgroup.h hugetlb_cgroup: fix imbalanced css_get and css_put pair for shared mappings 2021-03-25 09:22:55 -07:00
hugetlb_inline.h
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h SCSI misc on 20210428 2021-04-28 17:22:10 -07:00
hypervisor.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-mux.h
i2c-smbus.h
i2c.h
i8042.h
i8253.h
icmp.h
icmpv6.h
ide.h
idle_inject.h
idr.h
ieee80211.h wireless: fix spelling of A-MSDU in HE capabilities 2021-04-19 12:50:15 +02:00
ieee802154.h
if_arp.h
if_bridge.h net: bridge: add helper to replay VLANs installed on port 2021-03-23 14:49:05 -07:00
if_eql.h
if_ether.h
if_fddi.h
if_hsr.h
if_link.h
if_ltalk.h
if_macvlan.h
if_phonet.h
if_pppol2tp.h
if_pppox.h
if_rmnet.h
if_tap.h
if_team.h
if_tun.h
if_tunnel.h
if_vlan.h
igmp.h
ihex.h
ima.h
imx-media.h
in.h
in6.h
indirect_call_wrapper.h
inet.h
inet_diag.h
inetdevice.h
init.h cfi: add __cficanonical 2021-04-08 16:04:20 -07:00
init_ohci1394_dma.h
init_syscalls.h
init_task.h
initrd.h
inotify.h
input.h
instrumentation.h
instrumented.h
integrity.h
intel-iommu.h
intel-ish-client-if.h
intel-svm.h
intel_rapl.h powercap: RAPL: Fix struct declaration in header file 2021-04-08 19:09:02 +02:00
intel_th.h
interconnect-provider.h
interconnect.h
interrupt.h
interval_tree.h
interval_tree_generic.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h mm: add a io_mapping_map_user helper 2021-04-30 11:20:39 -07:00
io-pgtable.h
io.h mm: HUGE_VMAP arch support cleanup 2021-04-30 11:20:40 -07:00
io_uring.h io_uring: unify files and task cancel 2021-04-11 19:30:41 -06:00
ioasid.h
iocontext.h
iomap.h
iommu-helper.h
iommu.h
iopoll.h
ioport.h ACPI updates for 5.13-rc1 2021-04-26 15:03:23 -07:00
ioprio.h
iova.h
ip.h
ipack.h
ipc.h
ipc_namespace.h
ipmi.h
ipmi_smi.h
ipv6.h
ipv6_route.h
irq.h arm64 updates for 5.13: 2021-04-26 10:25:03 -07:00
irq_poll.h
irq_sim.h
irq_work.h
irqbypass.h
irqchip.h
irqdesc.h
irqdomain.h irqdomain: Get rid of irq_create_strict_mappings() 2021-04-22 15:55:22 +01:00
irqflags.h
irqhandler.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
iversion.h
jbd2.h
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label.h jump_label: Provide CONFIG-driven build state defaults 2021-04-08 14:05:19 +02:00
jump_label_ratelimit.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h
kasan-checks.h
kasan.h kasan, mm: integrate slab init_on_free with HW_TAGS 2021-04-30 11:20:41 -07:00
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h
kcov.h
kcsan-checks.h
kcsan.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel-page-flags.h
kernel.h
kernel_read_file.h
kernel_stat.h
kernelcapi.h
kernfs.h
kexec.h
key-type.h
key.h
keyboard.h
keyctl.h
keyslot-manager.h
kfence.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemleak.h
kmod.h
kmsg_dump.h
kobj_map.h
kobject.h
kobject_ns.h
kprobes.h
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h
ktime.h
kvm_dirty_ring.h
kvm_host.h
kvm_irqfd.h
kvm_para.h
kvm_types.h
l2tp.h
lantiq.h
lapb.h
latencytop.h
lcd.h
lcm.h
led-class-flash.h
led-class-multicolor.h
led-lm3530.h
leds-bd2802.h
leds-lp3944.h
leds-lp3952.h
leds-pca9532.h
leds-regulator.h
leds-ti-lmu-common.h
leds.h
libata.h
libfdt.h
libfdt_env.h
libgcc.h
libnvdimm.h
libps2.h
license.h
lightnvm.h lightnvm: remove duplicate include in lightnvm.h 2021-04-13 09:16:12 -06:00
limits.h
linear_range.h
linkage.h
linkmode.h
linux_logo.h
lis3lv02d.h
list.h
list_bl.h
list_lru.h
list_nulls.h
list_sort.h treewide: Change list_sort to use const pointers 2021-04-08 16:04:22 -07:00
litex.h
livepatch.h
llc.h
llist.h
local_lock.h
local_lock_internal.h
lockdep.h Locking changes for this cycle were: 2021-04-28 12:37:53 -07:00
lockdep_types.h
lockref.h
log2.h
logic_pio.h
lp.h
lru_cache.h
lsm_audit.h
lsm_hook_defs.h lsm: separate security_task_getsecid() into subjective and objective variants 2021-03-22 15:23:32 -04:00
lsm_hooks.h lsm: separate security_task_getsecid() into subjective and objective variants 2021-03-22 15:23:32 -04:00
lz4.h
lzo.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mailbox_client.h
mailbox_controller.h
maple.h
marvell_phy.h net: phy: marvell: add support for Amethyst internal PHY 2021-04-20 16:27:54 -07:00
math.h
math64.h
max17040_battery.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdev.h vfio/mdev: Correct the function signatures for the mdev_type_attributes 2021-04-12 10:36:00 -06:00
mdio-bitbang.h net: phy: Add support for microchip SMI0 MDIO bus 2021-04-27 14:13:24 -07:00
mdio-gpio.h
mdio-mux.h
mdio.h
mei_cl_bus.h
mem_encrypt.h
memblock.h mm: memblock: fix section mismatch warning again 2021-03-25 09:22:55 -07:00
memcontrol.h linux/memcontrol.h: remove duplicate struct declaration 2021-04-30 11:20:38 -07:00
memfd.h
memory.h
memory_hotplug.h
mempolicy.h
mempool.h
memregion.h
memremap.h
memstick.h
mhi.h bus: mhi: fix typo in comments for struct mhi_channel_config 2021-04-09 18:48:22 +05:30
micrel_phy.h
microchipphy.h
migrate.h
migrate_mode.h
mii.h
mii_timestamper.h
min_heap.h
minmax.h
misc_cgroup.h cgroup: misc: mark dummy misc_cg_res_total_usage() static inline 2021-04-04 18:29:37 -04:00
miscdevice.h
mm.h userfaultfd: add minor fault registration mode 2021-05-05 11:27:22 -07:00
mm_inline.h
mm_types.h
mm_types_task.h
mman.h
mmap_lock.h
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h mm/mmu_notifiers: ensure range_end() is paired with range_start() 2021-03-25 09:22:55 -07:00
mmzone.h mm/mmzone.h: fix existing kernel-doc comments and link them to core-api 2021-04-30 11:20:43 -07:00
mnt_namespace.h
mod_devicetable.h
module.h add support for Clang CFI 2021-04-08 16:04:20 -07:00
module_signature.h
moduleloader.h
moduleparam.h
most.h
mount.h
moxtet.h treewide: change my e-mail address, fix my name 2021-04-09 14:54:23 -07:00
mpage.h
mpi.h
mpls.h
mpls_iptunnel.h
mroute.h
mroute6.h
mroute_base.h
msdos_fs.h
msdos_partition.h
msg.h
msi.h
mtio.h
mutex.h Linux 5.12-rc5 2021-03-29 15:56:48 +02:00
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h
nd.h libnvdimm: Notify disk drivers to revalidate region read-only 2021-04-08 22:18:36 -07:00
ndctl.h
net.h
netdev_features.h
netdevice.h net: remove the new_ifindex argument from dev_change_net_namespace 2021-04-07 14:43:28 -07:00
netfilter.h
netfilter_bridge.h
netfilter_defs.h
netfilter_ingress.h
netfilter_ipv4.h
netfilter_ipv6.h
netfs.h netfs: Define an interface to talk to a cache 2021-04-23 10:14:32 +01:00
netlink.h netlink: simplify nl_set_extack_cookie_u64(), nl_set_extack_cookie_u32() 2021-04-19 15:41:28 -07:00
netpoll.h
nfs.h
nfs3.h
nfs4.h
nfs_fs.h
nfs_fs_i.h
nfs_fs_sb.h nfs: account for selinux security context when deciding to share superblock 2021-03-22 15:01:45 -04:00
nfs_iostat.h
nfs_page.h
nfs_ssc.h
nfs_xdr.h
nfsacl.h
nitro_enclaves.h
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
nospec.h
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb.h
ntb_transport.h
nubus.h
numa.h
nvme-fc-driver.h
nvme-fc.h
nvme-rdma.h
nvme-tcp.h
nvme.h nvme: implement non-mdts command limits 2021-04-06 08:34:39 +02:00
nvmem-consumer.h nvmem: core: Add functions to make number reading easy 2021-04-02 16:26:33 +02:00
nvmem-provider.h
nvram.h
objagg.h
objtool.h
of.h of: linux/of.h: fix kernel-doc warnings 2021-04-21 10:24:41 -05:00
of_address.h
of_clk.h
of_device.h
of_dma.h
of_fdt.h
of_gpio.h
of_graph.h
of_iommu.h
of_irq.h
of_mdio.h
of_net.h of: net: pass the dst buffer to of_get_mac_address() 2021-04-13 14:35:02 -07:00
of_pci.h
of_pdt.h
of_platform.h
of_reserved_mem.h
oid_registry.h Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2021-04-26 08:51:23 -07:00
olpc-ec.h
omap-dma.h
omap-gpmc.h
omap-iommu.h
omap-mailbox.h
omapfb.h
once.h
oom.h
openvswitch.h
osq_lock.h
overflow.h overflow: Correct check_shl_overflow() comment 2021-04-01 14:07:41 -07:00
packing.h
padata.h
page-flags-layout.h include/linux/page-flags-layout.h: cleanups 2021-04-30 11:20:42 -07:00
page-flags.h
page-isolation.h
page_counter.h
page_ext.h
page_idle.h
page_owner.h
page_ref.h
page_reporting.h
pageblock-flags.h
pagemap.h mm: introduce and use mapping_empty() 2021-05-05 11:27:19 -07:00
pagevec.h
pagewalk.h pagewalk: prefix struct kernel-doc descriptions 2021-04-30 11:20:41 -07:00
parman.h
parport.h
parport_pc.h
parser.h
part_stat.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci-acpi.h
pci-ats.h
pci-dma-compat.h
pci-ecam.h
pci-ep-cfs.h
pci-epc.h
pci-epf.h
pci-p2pdma.h
pci.h Networking changes for 5.13. 2021-04-29 11:57:23 -07:00
pci_hotplug.h
pci_ids.h
pcs-lynx.h
pda_power.h
pe.h
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h
percpu_counter.h
perf_event.h perf: Extend PERF_TYPE_HARDWARE and PERF_TYPE_HW_CACHE 2021-04-19 20:03:29 +02:00
perf_regs.h
personality.h
pfn.h
pfn_t.h
pgtable.h
phonet.h
phy.h net: phy: genphy_loopback: add link speed configuration 2021-04-20 16:08:02 -07:00
phy_fixed.h
phy_led_triggers.h
phylink.h
pid.h
pid_namespace.h
pim.h
pipe_fs_i.h
pkeys.h
pktcdvd.h
pl320-ipc.h
pl353-smc.h
platform_device.h driver core: platform: Declare early_platform_cleanup() prototype 2021-04-02 17:02:31 +02:00
platform_profile.h
pldmfw.h
plist.h
pm-trace.h
pm.h PM: core: Remove duplicate declaration from header file 2021-04-07 19:18:23 +02:00
pm2301_charger.h
pm_clock.h
pm_domain.h
pm_opp.h
pm_qos.h
pm_runtime.h PM: runtime: Replace inline function pm_runtime_callbacks_present() 2021-04-08 19:14:46 +02:00
pm_wakeirq.h
pm_wakeup.h
pmbus.h
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h
poll.h
posix-clock.h
posix-timers.h
posix_acl.h
posix_acl_xattr.h
power_supply.h power supply and reset changes for the v5.13 series 2021-04-28 15:43:58 -07:00
powercap.h
ppp-comp.h
ppp_channel.h net: ppp: resolve forwarding path for bridge pppoe devices 2021-03-24 12:48:38 -07:00
ppp_defs.h
pps_kernel.h
pr.h
prandom.h
preempt.h
prefetch.h
prime_numbers.h
printk.h
proc_fs.h
proc_ns.h
processor.h
profile.h
projid.h
property.h software node: Introduce SOFTWARE_NODE_REFERENCE() helper macro 2021-04-05 13:18:22 +02:00
pruss_driver.h
psci.h
pseudo_fs.h
psi.h
psi_types.h
psp-sev.h
psp-tee.h
pstore.h
pstore_blk.h
pstore_ram.h
pstore_zone.h
ptdump.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptp_pch.h
ptr_ring.h
ptrace.h
purgatory.h
pvclock_gtod.h
pwm.h
pwm_backlight.h
pxa2xx_ssp.h
pxa168_eth.h
qcom-geni-se.h Merge branch 'opp/linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm 2021-04-12 14:49:31 +02:00
qcom_scm.h
qnx6_fs.h
quota.h
quotaops.h
radix-tree.h
raid_class.h
ramfs.h
random.h
randomize_kstack.h stack: Optionally randomize kernel stack offset each syscall 2021-04-08 14:05:19 +02:00
range.h
ras.h
ratelimit.h
ratelimit_types.h
rational.h
rbtree.h
rbtree_augmented.h
rbtree_latch.h
rcu_node_tree.h
rcu_segcblist.h
rcu_sync.h
rculist.h
rculist_bl.h
rculist_nulls.h
rcupdate.h RCU changes for this cycle were: 2021-04-28 12:00:13 -07:00
rcupdate_trace.h
rcupdate_wait.h
rcutiny.h rcu: Provide polling interfaces for Tiny RCU grace periods 2021-03-24 17:16:15 -07:00
rcutree.h rcu: Provide polling interfaces for Tree RCU grace periods 2021-03-22 08:23:48 -07:00
rcuwait.h
reboot-mode.h
reboot.h
reciprocal_div.h
refcount.h
regmap.h regmap-irq: Add driver callback to configure virtual regs 2021-03-31 13:53:38 +01:00
regset.h
relay.h
remoteproc.h
resctrl.h
reset-controller.h
reset.h
resource.h
resource_ext.h
restart_block.h
rfkill.h
rhashtable-types.h
rhashtable.h
ring_buffer.h
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h
rmi.h
rndis.h
rodata_test.h
root_dev.h
rpmsg.h
rslib.h
rtc.h
rtmutex.h locking/rtmutex: Remove empty and unused debug stubs 2021-03-29 15:57:03 +02:00
rtnetlink.h
rtsx_common.h
rtsx_pci.h
rtsx_usb.h
rwlock.h
rwlock_api_smp.h
rwlock_types.h
rwsem.h
s3c_adc_battery.h
sbitmap.h
scatterlist.h
scc.h
sched.h mm: page_owner: detect page_owner recursion via task_struct 2021-04-30 11:20:36 -07:00
sched_clock.h
scmi_protocol.h firmware: arm_scmi: Add protocol modularization support 2021-03-30 16:35:16 +01:00
scpi_protocol.h
screen_info.h
scs.h
sctp.h
scx200.h
scx200_gpio.h
sdb.h
seccomp.h
securebits.h
security.h lsm: separate security_task_getsecid() into subjective and objective variants 2021-03-22 15:23:32 -04:00
sed-opal.h
seg6.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
selection.h
sem.h
semaphore.h
seq_buf.h
seq_file.h seq_file: Add a seq_bprintf function 2021-04-27 15:50:15 -07:00
seq_file_net.h
seqlock.h
seqno-fence.h
serdev.h
serial.h
serial_8250.h
serial_bcm63xx.h
serial_core.h serial: do not restore interrupt state in sysrq helper 2021-04-22 12:04:26 +02:00
serial_max3100.h
serial_s3c.h
serial_sci.h
serio.h
set_memory.h
sfp.h phy: sfp: add netlink SFP support to generic SFP code 2021-04-11 16:34:56 -07:00
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h
sh_timer.h
shdma-base.h
shm.h
shmem_fs.h
shrinker.h
signal.h Scheduler updates for this cycle are: 2021-04-28 13:33:57 -07:00
signal_types.h
signalfd.h
siox.h
siphash.h
sizes.h
skb_array.h
skbuff.h net: Introduce skb_send_sock() for sock_map 2021-04-01 10:56:13 -07:00
skmsg.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2021-04-25 18:02:32 -07:00
slab.h
slab_def.h
slimbus.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
smp_types.h
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
socket.h net: Fix typo in comment about ancillary data 2021-04-26 13:04:19 -07:00
sockptr.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types.h
spinlock_types_up.h
spinlock_up.h
splice.h
spmi.h
sram.h
srcu.h
srcutiny.h
srcutree.h
ssbi.h
stackdepot.h
stackleak.h
stackprotector.h
stacktrace.h
start_kernel.h
stat.h
statfs.h fs: introduce a wrapper uuid_to_fsid() 2021-04-19 16:03:15 +02:00
static_call.h Locking changes for this cycle were: 2021-04-28 12:37:53 -07:00
static_call_types.h
static_key.h
stddef.h
stm.h
stmmac.h net: stmmac: Add HW descriptor prefetch setting for DWMAC Core 5.20 onwards 2021-04-22 15:02:40 -07:00
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string.h
string_helpers.h
stringhash.h
stringify.h
sungem_phy.h
sunserialcore.h
sunxi-rsb.h
superhyway.h
surface_acpi_notify.h
suspend.h
svga.h
sw842.h
swab.h
swait.h
swap.h
swap_cgroup.h
swap_slots.h
swapfile.h
swapops.h
swiotlb.h
switchtec.h
sxgbe_platform.h
sync_core.h
sync_file.h
synclink.h
sys.h
sys_soc.h
syscall_user_dispatch.h
syscalls.h
syscore_ops.h
sysctl.h sysctl: add proc_dou8vec_minmax() 2021-03-25 17:39:33 -07:00
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
t10-pi.h
task_io_accounting.h
task_io_accounting_ops.h
task_work.h task_work: add helper for more targeted task_work canceling 2021-04-11 19:30:25 -06:00
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h
tee_drv.h
textsearch.h
textsearch_fsm.h
tfrc.h
thermal.h
thread_info.h
threads.h
thunderbolt.h
ti-emif-sram.h
ti_wilink_st.h
tick.h
tifm.h
timb_dma.h
timb_gpio.h
time.h
time32.h
time64.h
time_namespace.h
timecounter.h time/timecounter: Mark 1st argument of timecounter_cyc2time() as const 2021-04-16 21:03:50 +02:00
timekeeper_internal.h
timekeeping.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h timekeeping, clocksource: Fix various typos in comments 2021-03-22 23:06:48 +01:00
tnum.h
topology.h
torture.h
toshiba.h
tpm.h security: keys: trusted: Make sealed key properly interoperable 2021-04-14 16:30:30 +03:00
tpm_command.h
tpm_eventlog.h
trace.h
trace_clock.h
trace_events.h
trace_recursion.h
trace_seq.h
tracefs.h
tracehook.h
tracepoint-defs.h
tracepoint.h
transport_class.h
ts-nbus.h
tsacct_kern.h
tty.h tty: clean include/linux/tty.h up 2021-04-15 10:32:17 +02:00
tty_driver.h tty: fix return value for unsupported ioctls 2021-04-10 10:36:34 +02:00
tty_flip.h
tty_ldisc.h
typecheck.h
types.h
u64_stats_sync.h
uacce.h
uaccess.h
ucb1400.h
ucs2_string.h
udp.h vxlan: allow L4 GRO passthrough 2021-03-30 17:06:49 -07:00
uidgid.h
uio.h iov_iter: Four fixes for ITER_XARRAY 2021-04-26 22:55:12 +01:00
uio_driver.h
umh.h
unicode.h
units.h
uprobes.h
usb.h usb: Iterator for ports 2021-04-09 16:00:00 +02:00
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_namespace.h \n 2021-04-29 11:06:13 -07:00
userfaultfd_k.h userfaultfd: add minor fault registration mode 2021-05-05 11:27:22 -07:00
usermode_driver.h
util_macros.h
uts.h
utsname.h
uuid.h
vbox_utils.h
vdpa.h
verification.h
vermagic.h
vexpress.h
vfio.h vfio: Remove device_data from the vfio bus driver API 2021-04-06 11:55:11 -06:00
vfs.h
vga_switcheroo.h
vgaarb.h
vhost_iotlb.h
via-core.h
via-gpio.h
via.h
via_i2c.h
videodev2.h
virtio.h
virtio_byteorder.h
virtio_caif.h
virtio_config.h
virtio_console.h
virtio_dma_buf.h
virtio_net.h virtio_net: Do not pull payload in skb->head 2021-04-06 16:17:57 -07:00
virtio_pci_modern.h
virtio_ring.h
virtio_vsock.h
visorbus.h
vlynq.h
vm_event_item.h
vmacache.h
vmalloc.h mm/vmalloc: remove unmap_kernel_range 2021-04-30 11:20:40 -07:00
vme.h
vmpressure.h
vmstat.h mm: page-writeback: simplify memcg handling in test_clear_page_writeback() 2021-04-30 11:20:37 -07:00
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h
vt.h
vt_buffer.h
vt_kern.h
vtime.h
w1-gpio.h
w1.h
wait.h
wait_bit.h
watch_queue.h
watchdog.h
win_minmax.h
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
wmi.h
workqueue.h
writeback.h
ww_mutex.h
wwan.h net: Add a WWAN subsystem 2021-04-16 15:31:02 -07:00
xarray.h XArray: Add xa_limit_16b 2021-03-30 13:42:33 -04:00
xattr.h
xxhash.h
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h
zstd.h
zutil.h