linux-stable/include/linux
Oscar Salvador a08a2ae346 mm,memory_hotplug: allocate memmap from the added memory range
Physical memory hotadd has to allocate a memmap (struct page array) for
the newly added memory section.  Currently, alloc_pages_node() is used
for those allocations.

This has some disadvantages:
 a) an existing memory is consumed for that purpose
    (eg: ~2MB per 128MB memory section on x86_64)
    This can even lead to extreme cases where system goes OOM because
    the physically hotplugged memory depletes the available memory before
    it is onlined.
 b) if the whole node is movable then we have off-node struct pages
    which has performance drawbacks.
 c) It might be there are no PMD_ALIGNED chunks so memmap array gets
    populated with base pages.

This can be improved when CONFIG_SPARSEMEM_VMEMMAP is enabled.

Vmemap page tables can map arbitrary memory.  That means that we can
reserve a part of the physically hotadded memory to back vmemmap page
tables.  This implementation uses the beginning of the hotplugged memory
for that purpose.

There are some non-obviously things to consider though.

Vmemmap pages are allocated/freed during the memory hotplug events
(add_memory_resource(), try_remove_memory()) when the memory is
added/removed.  This means that the reserved physical range is not
online although it is used.  The most obvious side effect is that
pfn_to_online_page() returns NULL for those pfns.  The current design
expects that this should be OK as the hotplugged memory is considered a
garbage until it is onlined.  For example hibernation wouldn't save the
content of those vmmemmaps into the image so it wouldn't be restored on
resume but this should be OK as there no real content to recover anyway
while metadata is reachable from other data structures (e.g.  vmemmap
page tables).

The reserved space is therefore (de)initialized during the {on,off}line
events (mhp_{de}init_memmap_on_memory).  That is done by extracting page
allocator independent initialization from the regular onlining path.
The primary reason to handle the reserved space outside of
{on,off}line_pages is to make each initialization specific to the
purpose rather than special case them in a single function.

As per above, the functions that are introduced are:

 - mhp_init_memmap_on_memory:
   Initializes vmemmap pages by calling move_pfn_range_to_zone(), calls
   kasan_add_zero_shadow(), and onlines as many sections as vmemmap pages
   fully span.

 - mhp_deinit_memmap_on_memory:
   Offlines as many sections as vmemmap pages fully span, removes the
   range from zhe zone by remove_pfn_range_from_zone(), and calls
   kasan_remove_zero_shadow() for the range.

The new function memory_block_online() calls mhp_init_memmap_on_memory()
before doing the actual online_pages().  Should online_pages() fail, we
clean up by calling mhp_deinit_memmap_on_memory().  Adjusting of
present_pages is done at the end once we know that online_pages()
succedeed.

On offline, memory_block_offline() needs to unaccount vmemmap pages from
present_pages() before calling offline_pages().  This is necessary because
offline_pages() tears down some structures based on the fact whether the
node or the zone become empty.  If offline_pages() fails, we account back
vmemmap pages.  If it succeeds, we call mhp_deinit_memmap_on_memory().

Hot-remove:

 We need to be careful when removing memory, as adding and
 removing memory needs to be done with the same granularity.
 To check that this assumption is not violated, we check the
 memory range we want to remove and if a) any memory block has
 vmemmap pages and b) the range spans more than a single memory
 block, we scream out loud and refuse to proceed.

 If all is good and the range was using memmap on memory (aka vmemmap pages),
 we construct an altmap structure so free_hugepage_table does the right
 thing and calls vmem_altmap_free instead of free_pagetable.

Link: https://lkml.kernel.org/r/20210421102701.25051-5-osalvador@suse.de
Signed-off-by: Oscar Salvador <osalvador@suse.de>
Reviewed-by: David Hildenbrand <david@redhat.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Pavel Tatashin <pasha.tatashin@soleen.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2021-05-05 11:27:26 -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 net: pcs: add C37 SGMII AN support for intel mGbE controller 2021-03-15 12:53:12 -07:00
perf
phy phy: Add media type and speed serdes configuration interfaces 2021-03-17 12:13:19 +05:30
pinctrl
platform_data Networking changes for 5.13. 2021-04-29 11:57:23 -07:00
power power: supply: bq27xxx: Add support for BQ78Z100 2021-03-21 21:29:26 +01:00
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 mm: honor PF_MEMALLOC_PIN for all movable pages 2021-05-05 11:27:26 -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 cpufreq: CPPC: Add support for frequency invariance 2021-03-22 08:55:28 +05:30
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 tick/sched: Prevent false positive softirq pending warnings on RT 2021-03-17 16:34:11 +01:00
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 mm: fs: invalidate BH LRU during page migration 2021-05-05 11:27:24 -07:00
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 mm: use proper type for cma_[alloc|release] 2021-05-05 11:27:24 -07:00
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda.h
compaction.h mm/compaction: remove unused variable sysctl_compact_memory 2021-05-05 11:27:24 -07:00
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: use 32-bit alignment for efi_guid_t literals 2021-03-19 07:44:28 +01:00
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: Fix typos in comments 2021-03-22 03:57:39 +01:00
entry-kvm.h
err.h
errname.h
errno.h
error-injection.h
errqueue.h
errseq.h
etherdevice.h ethernet: constify eth_get_headlen()'s data argument 2021-03-14 14:48:02 -07:00
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 extcon: Add stubs for extcon_register_notifier_all() functions 2021-03-15 11:09:38 +09:00
f2fs_fs.h
f75375s.h
falloc.h
fanotify.h fanotify: support limited functionality for unprivileged users 2021-03-16 16:55:05 +01:00
fault-inject-usercopy.h
fault-inject.h
fb.h fb_defio: Remove custom address_space_operations 2021-03-12 15:10:03 +01:00
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 fanotify: configurable limits via sysfs 2021-03-16 16:49:31 +01:00
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: use proper type for cma_[alloc|release] 2021-05-05 11:27:24 -07:00
glob.h
gnss.h
goldfish.h
gpio-pxa.h
gpio.h
gpio_keys.h
greybus.h
hardirq.h softirq: Add RT specific softirq accounting 2021-03-17 16:34:08 +01:00
hash.h
hashtable.h
hdlc.h
hdlcdrv.h
hdmi.h
hid-debug.h
hid-roccat.h
hid-sensor-hub.h iio: Add relative sensitivity support 2021-03-11 20:47:09 +00:00
hid-sensor-ids.h iio: Add relative sensitivity support 2021-03-11 20:47:09 +00:00
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 userfaultfd: add UFFDIO_CONTINUE ioctl 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 macvlan: macvlan_count_rx() needs to be aware of preemption 2021-03-10 15:20:24 -08:00
if_phonet.h
if_pppol2tp.h
if_pppox.h
if_rmnet.h net: qualcomm: rmnet: don't use C bit-fields in rmnet checksum header 2021-03-15 20:41:58 -07:00
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 tasklets: Switch tasklet_disable() to the sleep wait variant 2021-03-17 16:34:07 +01:00
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 irq: Fix typos in comments 2021-03-22 04:23:14 +01:00
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 kbuild: rebuild GCC plugins when the compiler is upgraded 2021-03-11 14:40:50 +09:00
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
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 mm: memcontrol: reparent nr_deferred when memcg offline 2021-05-05 11:27:23 -07:00
memfd.h
memory.h mm,memory_hotplug: allocate memmap from the added memory range 2021-05-05 11:27:26 -07:00
memory_hotplug.h mm,memory_hotplug: allocate memmap from the added memory range 2021-05-05 11:27:26 -07:00
mempolicy.h
mempool.h
memregion.h
memremap.h mm,memory_hotplug: allocate memmap from the added memory range 2021-05-05 11:27:26 -07:00
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 mm/gup: migrate pinned pages out of movable zone 2021-05-05 11:27:26 -07:00
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
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm.h mm/gup: do not migrate zero page 2021-05-05 11:27:26 -07:00
mm_inline.h
mm_types.h mm/fork: clear PASID for new mm 2021-03-13 11:27:30 -08:00
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,memory_hotplug: allocate memmap from the added memory range 2021-05-05 11:27:26 -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 NFSD: Add an xdr_stream-based encoder for NFSv2/3 ACLs 2021-03-22 10:19:00 -04:00
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: Introduce module_parport_driver() helper macro 2021-03-10 12:46:04 +00:00
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 mm/gup: do not migrate zero page 2021-05-05 11:27:26 -07:00
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 net: phylink: make phylink_parse_mode() support non-DT platform 2021-03-15 12:53:12 -07:00
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 opp: Change return type of devm_pm_opp_attach_genpd() 2021-03-16 10:14:11 +05:30
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 softirq: Add RT specific softirq accounting 2021-03-17 16:34:08 +01:00
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 ptp_pch: Move 'pch_*()' prototypes to shared header 2021-03-12 17:09:34 -08:00
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/nocb: Disable bypass when CPU isn't completely offloaded 2021-03-15 13:54:54 -07:00
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 x86: Introduce restart_block->arch_data to remove TS_COMPAT_RESTART 2021-03-16 22:13:11 +01:00
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 locking: Fix typos in comments 2021-03-22 02:45:52 +01:00
s3c_adc_battery.h
sbitmap.h scsi: sbitmap: Silence a debug kernel warning triggered by sbitmap_put() 2021-03-18 22:39:30 -04:00
scatterlist.h
scc.h
sched.h mm cma: rename PF_MEMALLOC_NOCMA to PF_MEMALLOC_PIN 2021-05-05 11:27:26 -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 seqlock,lockdep: Fix seqcount_latch_init() 2021-03-10 09:51:45 +01:00
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 mm: vmscan: use a new flag to indicate shrinker is registered 2021-05-05 11:27:23 -07:00
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 stacktrace: Move documentation for arch_stack_walk_reliable() to header 2021-03-10 15:52:31 +01:00
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_call: Move struct static_call_key definition to static_call_types.h 2021-03-11 16:04:39 +01:00
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 stop_machine: mark helpers __always_inline 2021-03-13 11:27:30 -08:00
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 mm: disable LRU pagevec during the migration temporarily 2021-05-05 11:27:24 -07:00
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 quota: wire up quotactl_path 2021-03-17 15:51:17 +01:00
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 kernel, fs: Introduce and use set_restart_fn() and arch_set_restart_data() 2021-03-16 22:13:10 +01:00
threads.h
thunderbolt.h thunderbolt: Allow multiple DMA tunnels over a single XDomain connection 2021-03-18 18:25:31 +03:00
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 u64_stats,lockdep: Fix u64_stats_init() vs lockdep 2021-03-10 09:51:45 +01:00
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 usb-storage: Add quirk to defeat Kindle's automatic unload 2021-03-17 21:30:15 +01:00
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 UFFDIO_CONTINUE ioctl 2021-05-05 11:27:22 -07:00
usermode_driver.h bpf: Fix umd memory leak in copy_process() 2021-03-19 22:23:19 +01:00
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 vgaarb: avoid -Wempty-body warnings 2021-03-22 15:02:14 +01:00
vhost_iotlb.h
via-core.h
via-gpio.h
via.h
via_i2c.h
videodev2.h
virtio.h virtio: remove export for virtio_config_{enable, disable} 2021-03-14 04:37:35 -04:00
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 x86/mm: track linear mapping split events 2021-05-05 11:27:25 -07:00
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 locking/ww_mutex: Remove DEFINE_WW_MUTEX() macro 2021-03-19 12:13:10 +01:00
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