twx-linux/include/linux
Vladimir Oltean 957e2235e5 net: make switchdev_bridge_port_{,unoffload} loosely coupled with the bridge
With the introduction of explicit offloading API in switchdev in commit
2f5dc00f7a3e ("net: bridge: switchdev: let drivers inform which bridge
ports are offloaded"), we started having Ethernet switch drivers calling
directly into a function exported by net/bridge/br_switchdev.c, which is
a function exported by the bridge driver.

This means that drivers that did not have an explicit dependency on the
bridge before, like cpsw and am65-cpsw, now do - otherwise it is not
possible to call a symbol exported by a driver that can be built as
module unless you are a module too.

There was an attempt to solve the dependency issue in the form of commit
b0e81817629a ("net: build all switchdev drivers as modules when the
bridge is a module"). Grygorii Strashko, however, says about it:

| In my opinion, the problem is a bit bigger here than just fixing the
| build :(
|
| In case, of ^cpsw the switchdev mode is kinda optional and in many
| cases (especially for testing purposes, NFS) the multi-mac mode is
| still preferable mode.
|
| There were no such tight dependency between switchdev drivers and
| bridge core before and switchdev serviced as independent, notification
| based layer between them, so ^cpsw still can be "Y" and bridge can be
| "M". Now for mostly every kernel build configuration the CONFIG_BRIDGE
| will need to be set as "Y", or we will have to update drivers to
| support build with BRIDGE=n and maintain separate builds for
| networking vs non-networking testing.  But is this enough?  Wouldn't
| it cause 'chain reaction' required to add more and more "Y" options
| (like CONFIG_VLAN_8021Q)?
|
| PS. Just to be sure we on the same page - ARM builds will be forced
| (with this patch) to have CONFIG_TI_CPSW_SWITCHDEV=m and so all our
| automation testing will just fail with omap2plus_defconfig.

In the light of this, it would be desirable for some configurations to
avoid dependencies between switchdev drivers and the bridge, and have
the switchdev mode as completely optional within the driver.

Arnd Bergmann also tried to write a patch which better expressed the
build time dependency for Ethernet switch drivers where the switchdev
support is optional, like cpsw/am65-cpsw, and this made the drivers
follow the bridge (compile as module if the bridge is a module) only if
the optional switchdev support in the driver was enabled in the first
place:
https://patchwork.kernel.org/project/netdevbpf/patch/20210802144813.1152762-1-arnd@kernel.org/

but this still did not solve the fact that cpsw and am65-cpsw now must
be built as modules when the bridge is a module - it just expressed
correctly that optional dependency. But the new behavior is an apparent
regression from Grygorii's perspective.

So to support the use case where the Ethernet driver is built-in,
NET_SWITCHDEV (a bool option) is enabled, and the bridge is a module, we
need a framework that can handle the possible absence of the bridge from
the running system, i.e. runtime bloatware as opposed to build-time
bloatware.

Luckily we already have this framework, since switchdev has been using
it extensively. Events from the bridge side are transmitted to the
driver side using notifier chains - this was originally done so that
unrelated drivers could snoop for events emitted by the bridge towards
ports that are implemented by other drivers (think of a switch driver
with LAG offload that listens for switchdev events on a bonding/team
interface that it offloads).

There are also events which are transmitted from the driver side to the
bridge side, which again are modeled using notifiers.
SWITCHDEV_FDB_ADD_TO_BRIDGE is an example of this, and deals with
notifying the bridge that a MAC address has been dynamically learned.
So there is a precedent we can use for modeling the new framework.

The difference compared to SWITCHDEV_FDB_ADD_TO_BRIDGE is that the work
that the bridge needs to do when a port becomes offloaded is blocking in
its nature: replay VLANs, MDBs etc. The calling context is indeed
blocking (we are under rtnl_mutex), but the existing switchdev
notification chain that the bridge is subscribed to is only the atomic
one. So we need to subscribe the bridge to the blocking switchdev
notification chain too.

This patch:
- keeps the driver-side perception of the switchdev_bridge_port_{,un}offload
  unchanged
- moves the implementation of switchdev_bridge_port_{,un}offload from
  the bridge module into the switchdev module.
- makes everybody that is subscribed to the switchdev blocking notifier
  chain "hear" offload & unoffload events
- makes the bridge driver subscribe and handle those events
- moves the bridge driver's handling of those events into 2 new
  functions called br_switchdev_port_{,un}offload. These functions
  contain in fact the core of the logic that was previously in
  switchdev_bridge_port_{,un}offload, just that now we go through an
  extra indirection layer to reach them.

Unlike all the other switchdev notification structures, the structure
used to carry the bridge port information, struct
switchdev_notifier_brport_info, does not contain a "bool handled".
This is because in the current usage pattern, we always know that a
switchdev bridge port offloading event will be handled by the bridge,
because the switchdev_bridge_port_offload() call was initiated by a
NETDEV_CHANGEUPPER event in the first place, where info->upper_dev is a
bridge. So if the bridge wasn't loaded, then the CHANGEUPPER event
couldn't have happened.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Tested-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-08-04 12:35:07 +01:00
..
amba
avf
bcma
byteorder
can can: flexcan: add platform data header 2021-07-25 11:36:29 +02:00
ceph libceph: set global_id as soon as we get an auth ticket 2021-06-24 21:03:17 +02:00
clk Merge branches 'clk-legacy', 'clk-vc5', 'clk-allwinner', 'clk-nvidia' and 'clk-imx' into clk-next 2021-06-29 13:33:10 -07:00
crush
decompress
device
dma
dsa net: dsa: sja1105: add bridge TX data plane offload based on tag_8021q 2021-07-26 22:35:22 +01:00
extcon
firmware
fpga
fsl bus: fsl-mc: extend fsl_mc_get_endpoint() to pass interface ID 2021-08-04 09:53:34 +01:00
gpio gpio: updates for v5.14 2021-07-05 11:48:14 -07:00
greybus
hsi
i3c
iio
input
irqchip
isdn
lockd lockd: Remove stale comments 2021-07-06 20:14:42 -04:00
mailbox mailbox: mtk-cmdq: Add struct cmdq_pkt in struct cmdq_cb_data 2021-06-26 11:40:20 -05:00
mdio
mfd regulator: Fixes for v5.14 2021-07-21 12:37:49 -07:00
mlx4
mlx5 net/mlx5: Move TTC logic to fs_ttc 2021-08-02 19:26:26 -07:00
mmc
mtd MTD core changes: 2021-07-05 11:21:51 -07:00
mux
net/intel
netfilter
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
pcs
perf
phy USB / Thunderbolt patches for 5.14-rc1 2021-07-05 14:16:22 -07:00
pinctrl This is the bulk of pin control changes for the v5.14 kernel: 2021-07-01 16:57:14 -07:00
platform_data ARM: SoC changes for 5.14 2021-07-10 09:22:44 -07:00
power
qed
raid
regulator
remoteproc
reset
rpmsg
rtc
sched Fixes and improvements for FPU handling on x86: 2021-07-07 11:12:01 -07:00
soc ARM: SoC changes for 5.14 2021-07-10 09:22:44 -07:00
soundwire Char / Misc driver updates for 5.14-rc1 2021-07-05 13:42:16 -07:00
spi spi: core: add dma_map_dev for dma device 2021-06-25 12:26:49 +01:00
ssb
sunrpc NFS client updates for Linux 5.14 2021-07-09 09:43:57 -07:00
surface_aggregator
ulpi
unaligned
usb USB / Thunderbolt patches for 5.14-rc1 2021-07-05 14:16:22 -07:00
8250_pci.h
a.out.h
acct.h
acpi_dma.h
acpi_iort.h ACPI: Move IOMMU setup code out of IORT 2021-06-25 15:02:43 +02:00
acpi_mdio.h
acpi_pmtmr.h
acpi_viot.h ACPI: Add driver for the VIOT table 2021-06-25 15:02:43 +02:00
acpi.h More ACPI updates for 5.14-rc1 2021-07-07 13:30:01 -07:00
adb.h
adfs_fs.h
adreno-smmu-priv.h iommu/arm-smmu-qcom: Add stall support 2021-06-23 07:33:55 -07:00
adxl.h
aer.h
agp_backend.h
agpgart.h
ahci_platform.h
ahci-remap.h
aio.h
alarmtimer.h
alcor_pci.h
align.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
anon_inodes.h
apm_bios.h
apm-emulation.h
apple_bl.h
apple-gmux.h
arch_topology.h cpufreq: CPPC: Add support for frequency invariance 2021-07-01 07:32:14 +05:30
arm_ffa.h
arm_sdei.h
arm-cci.h
arm-smccc.h
armada-37xx-rwtm-mailbox.h
ascii85.h drm: include only needed headers in ascii85.h 2021-07-01 11:06:04 -07:00
asn1_ber_bytecode.h
asn1_decoder.h
asn1_encoder.h
asn1.h
assoc_array_priv.h
assoc_array.h
async_tx.h
async.h
ata_platform.h
ata.h
atalk.h
ath9k_platform.h
atm_tcp.h
atm.h
atmdev.h
atmel_pdc.h
atmel-isc-media.h
atmel-mci.h
atmel-ssc.h
atomic-arch-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 writeback, cgroup: release dying cgwbs by switching attached inodes 2021-06-29 10:53:48 -07:00
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 for-5.14/drivers-2021-06-29 2021-06-30 12:21:16 -07:00
bit_spinlock.h
bitfield.h
bitmap.h
bitops.h bitops: Add non-atomic bitops for pointers 2021-07-07 20:01:45 -07:00
bitrev.h
bits.h
blk_types.h block-5.14-2021-07-08 2021-07-09 12:05:33 -07:00
blk-cgroup.h
blk-crypto.h
blk-mq-pci.h
blk-mq-rdma.h
blk-mq-virtio.h
blk-mq.h block: mark blk_mq_init_queue_data static 2021-06-30 15:34:13 -06:00
blk-pm.h
blkdev.h block-5.14-2021-07-24 2021-07-24 12:57:06 -07:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootconfig.h lib: fix spelling mistakes in header files 2021-07-08 11:48:20 -07:00
bootmem_info.h mm: hugetlb: free the vmemmap pages associated with each HugeTLB page 2021-06-30 20:47:25 -07:00
bottom_half.h
bpf_lirc.h
bpf_local_storage.h
bpf_lsm.h
bpf_trace.h
bpf_types.h bpf: Fix OOB read when printing XDP link fdinfo 2021-07-19 15:14:40 -07:00
bpf_verifier.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-07-31 09:14:46 -07:00
bpf-cgroup.h bpf: Add ambient BPF runtime context stored in current 2021-07-16 21:15:28 +02:00
bpf-netns.h
bpf.h bpf: tcp: Support bpf_(get|set)sockopt in bpf tcp iter 2021-07-23 16:45:07 -07:00
bpfilter.h
bpfptr.h
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btf_ids.h
btf.h bpf: Add map side support for bpf timers. 2021-07-15 22:31:10 +02:00
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h
bug.h
build_bug.h
build-salt.h
buildid.h kdump: use vmlinux_build_id to simplify 2021-07-08 11:48:22 -07:00
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
cgroup_rdma.h
cgroup_subsys.h
cgroup-defs.h
cgroup.h SCSI misc on 20210702 2021-07-02 15:14:36 -07:00
circ_buf.h
cleancache.h
clk-provider.h clk: divider: Add re-usable determine_rate implementations 2021-06-30 11:37:02 -07:00
clk.h
clkdev.h
clockchips.h
clocksource_ids.h
clocksource.h
cm4000_cs.h
cma.h
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda.h
compaction.h mm: fix spelling mistakes in header files 2021-07-08 11:48:21 -07:00
compat.h compat: make linux/compat.h available everywhere 2021-07-23 14:20:24 +01:00
compiler_attributes.h Clang feature updates for v5.14-rc1 2021-06-30 14:33:25 -07:00
compiler_types.h Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
compiler-clang.h kcov: add __no_sanitize_coverage to fix noinstr for all architectures 2021-07-01 11:06:06 -07:00
compiler-gcc.h kcov: add __no_sanitize_coverage to fix noinstr for all architectures 2021-07-01 11:06:06 -07:00
compiler-intel.h
compiler-version.h
compiler.h Clang feature updates for v5.14-rc1 2021-06-30 14:33:25 -07:00
completion.h
component.h
configfs.h
connector.h
console_struct.h
console.h
consolemap.h
const.h
container.h
context_tracking_state.h
context_tracking.h
cookie.h
cordic.h
coredump.h
coresight-pmu.h
coresight-stm.h
coresight.h
count_zeros.h
counter_enum.h
counter.h
cper.h
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpu.h
cpufeature.h
cpufreq.h cpufreq: Remove ->resolve_freq() 2021-06-30 19:45:42 +02:00
cpuhotplug.h s390/cpumf: Allow concurrent access for CPU Measurement Counter Facility 2021-07-05 12:44:23 +02:00
cpuidle_haltpoll.h
cpuidle.h
cpumask.h lib: fix spelling mistakes in header files 2021-07-08 11:48:20 -07:00
cpuset.h
crash_core.h kdump: use vmlinux_build_id to simplify 2021-07-08 11:48:22 -07:00
crash_dump.h
crc4.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
crc32poly.h
crc64.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
cred.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2021-06-28 20:39:26 -07:00
crypto.h crypto: api - Move crypto attr definitions out of crypto.h 2021-06-24 14:51:35 +08:00
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
debugobjects.h lib: fix spelling mistakes in header files 2021-07-08 11:48:20 -07:00
delay.h
delayacct.h
delayed_call.h
dev_printk.h
devcoredump.h
devfreq_cooling.h
devfreq-event.h
devfreq.h
device_cgroup.h
device-mapper.h
device.h USB / Thunderbolt patches for 5.14-rc1 2021-07-05 14:16:22 -07:00
devm-helpers.h
devpts_fs.h
dfl.h
digsig.h
dim.h
dio.h
dirent.h
dlm_plock.h
dlm.h
dm9000.h
dm-bufio.h
dm-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.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
dma-heap.h
dma-iommu.h iommu/dma: Pass address limit rather than size to iommu_setup_dma_ops() 2021-06-25 15:02:43 +02:00
dma-map-ops.h
dma-mapping.h
dma-resv.h <linux/dma-resv.h>: correct a function name in kernel-doc 2021-06-29 18:09:24 +02:00
dmaengine.h
dmapool.h
dmar.h
dmi.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
drbd_genl_api.h
drbd_genl.h
drbd_limits.h
drbd.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_embedded_fw.h
efi-bgrt.h
efi.h
efs_vh.h
eisa.h
elevator.h blk: Fix lock inversion between ioc lock and bfqd lock 2021-06-24 18:43:55 -06:00
elf-fdpic.h
elf-randomize.h
elf.h
elfcore-compat.h
elfcore.h
elfnote-lto.h
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_netlink.h
ethtool.h ethtool: improve compat ioctl handling 2021-07-23 14:20:25 +01:00
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
filter.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-07-31 09:14:46 -07: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
frontswap.h
fs_context.h cgroup1: fix leaked context root causing sporadic NULL deref in LTP 2021-07-21 06:39:20 -10:00
fs_enet_pd.h
fs_parser.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_types.h
fs_uart_pd.h
fs.h Char / Misc driver updates for 5.14-rc1 2021-07-05 13:42:16 -07:00
fscache-cache.h
fscache.h
fscrypt.h
fsi-occ.h
fsi-sbefifo.h
fsi.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsl-diu-fb.h
fsldma.h
fsnotify_backend.h
fsnotify.h
fsverity.h
ftrace_irq.h trace: Add osnoise tracer 2021-06-25 19:57:01 -04:00
ftrace.h
futex.h
fwnode_mdio.h net: mdiobus: withdraw fwnode_mdbiobus_register 2021-06-25 11:46:29 -07:00
fwnode.h
gameport.h
gcd.h
genalloc.h
generic-radix-tree.h
genetlink.h net: netlink: Remove unused function 2021-07-30 18:35:47 +02:00
genhd.h block: pass a gendisk to bdev_disk_changed 2021-06-24 12:01:06 -06:00
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h Merge branch 'akpm' (patches from Andrew) 2021-06-29 17:29:11 -07:00
glob.h
gnss.h
goldfish.h
gpio_keys.h
gpio-pxa.h
gpio.h
greybus.h
hardirq.h
hash.h
hashtable.h
hdlc.h net: split out ndo_siowandev ioctl 2021-07-27 20:11:45 +01:00
hdlcdrv.h hamradio: use ndo_siocdevprivate 2021-07-27 20:11:44 +01:00
hdmi.h
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h
hid.h Merge branch 'for-5.14/multitouch' into for-linus 2021-06-30 09:15:15 +02:00
hidden.h
hiddev.h
hidraw.h
highmem-internal.h
highmem.h mm: use kmap_local_page in memzero_page 2021-07-23 17:43:28 -07:00
highuid.h
hil_mlc.h
hil.h
hippidevice.h
hmm.h mm: fix spelling mistakes in header files 2021-07-08 11:48:21 -07:00
host1x.h
hp_sdc.h
hpet.h
hrtimer_defs.h
hrtimer.h
htcpld.h
huge_mm.h mm: memory: add orig_pmd to struct vm_fault 2021-06-30 20:47:30 -07:00
hugetlb_cgroup.h mm: hugetlb: gather discrete indexes of tail page 2021-06-30 20:47:25 -07:00
hugetlb_inline.h
hugetlb.h mm: fix spelling mistakes in header files 2021-07-08 11:48:21 -07:00
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h
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 Staging / IIO driver patches for 5.14-rc1 2021-07-05 14:01:53 -07:00
i8042.h
i8253.h
icmp.h
icmpv6.h
idle_inject.h
idr.h
ieee80211.h
ieee802154.h
if_arp.h
if_bridge.h net: make switchdev_bridge_port_{,unoffload} loosely coupled with the bridge 2021-08-04 12:35:07 +01: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
in6.h
in.h
indirect_call_wrapper.h
inet_diag.h
inet.h
inetdevice.h net: socket: remove register_gifconf 2021-07-23 14:20:25 +01:00
init_ohci1394_dma.h
init_syscalls.h
init_task.h
init.h
initrd.h
inotify.h
input.h
instrumentation.h
instrumented.h
integrity.h
intel_rapl.h
intel_th.h
intel-iommu.h
intel-ish-client-if.h HID: intel-ish-hid: use async resume function 2021-07-15 20:49:09 +02:00
intel-svm.h
interconnect-provider.h
interconnect.h
interrupt.h
interval_tree_generic.h
interval_tree.h
io_uring.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h
io-pgtable.h
io.h
ioam6_genl.h ipv6: ioam: IOAM Generic Netlink API 2021-07-21 08:14:33 -07:00
ioam6_iptunnel.h ipv6: ioam: Support for IOAM injection with lwtunnels 2021-07-21 08:14:33 -07:00
ioam6.h ipv6: ioam: Data plane support for Pre-allocated Trace 2021-07-21 08:14:33 -07:00
ioasid.h
iocontext.h
iomap.h iomap: use __set_page_dirty_nobuffers 2021-06-29 10:53:48 -07:00
iommu-helper.h
iommu.h
iopoll.h
ioport.h
ioprio.h
iova.h
ip.h
ipack.h
ipc_namespace.h
ipc.h
ipmi_smi.h
ipmi.h
ipv6_route.h
ipv6.h ipv6: ioam: Data plane support for Pre-allocated Trace 2021-07-21 08:14:33 -07:00
irq_poll.h
irq_sim.h
irq_work.h
irq.h
irqbypass.h
irqchip.h
irqdesc.h
irqdomain.h
irqflags.h
irqhandler.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
iversion.h
jbd2.h ext4: inline jbd2_journal_[un]register_shrinker() 2021-07-08 08:37:31 -04:00
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label_ratelimit.h
jump_label.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h module: add printk formats to add module build ID to stacktraces 2021-07-08 11:48:22 -07:00
kasan-checks.h
kasan.h kasan: fix build by including kernel.h 2021-07-15 10:13:49 -07:00
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h fs/proc/kcore: drop KCORE_REMAP and KCORE_OTHER 2021-06-30 20:47:28 -07:00
kcov.h
kcsan-checks.h
kcsan.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel_read_file.h
kernel_stat.h
kernel-page-flags.h
kernel.h Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
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_ns.h
kobject.h
kprobes.h powerpc updates for 5.14 2021-07-02 12:54:34 -07:00
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kstrtox.h kernel.h: split out kstrtox() and simple_strtox() to a separate header 2021-07-01 11:06:05 -07:00
kthread.h Merge branch 'akpm' (patches from Andrew) 2021-06-29 17:29:11 -07:00
ktime.h
kvm_dirty_ring.h
kvm_host.h KVM: debugfs: Reuse binary stats descriptors 2021-06-24 18:00:29 -04:00
kvm_irqfd.h
kvm_para.h
kvm_types.h KVM: stats: Add fd-based API to read binary stats data 2021-06-24 11:47:57 -04:00
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_env.h
libfdt.h
libgcc.h
libnvdimm.h
libps2.h
license.h
lightnvm.h
limits.h
linear_range.h
linkage.h
linkmode.h
linux_logo.h
lis3lv02d.h
list_bl.h
list_lru.h mm: fix spelling mistakes in header files 2021-07-08 11:48:21 -07:00
list_nulls.h
list_sort.h
list.h
litex.h
livepatch.h
llc.h
llist.h
local_lock_internal.h
local_lock.h
lockdep_types.h
lockdep.h
lockref.h
log2.h
logic_iomem.h
logic_pio.h
lp.h
lru_cache.h lib: fix spelling mistakes in header files 2021-07-08 11:48:20 -07:00
lsm_audit.h
lsm_hook_defs.h
lsm_hooks.h
lz4.h
lzo.h
mailbox_client.h
mailbox_controller.h
maple.h
marvell_phy.h net: phy: marvell10g: fix differentiation of 88X3310 from 88X3340 2021-07-11 10:02:33 -07:00
math64.h
math.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdev.h
mdio-bitbang.h
mdio-gpio.h
mdio-mux.h
mdio.h
mei_cl_bus.h
mem_encrypt.h
memblock.h memblock: make for_each_mem_range() traverse MEMBLOCK_HOTPLUG regions 2021-07-23 17:43:28 -07:00
memcontrol.h Merge branch 'for-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu 2021-07-01 17:17:24 -07:00
memfd.h
memory_hotplug.h mm: memory_hotplug: factor out bootmem core functions to bootmem_info.c 2021-06-30 20:47:25 -07:00
memory.h
mempolicy.h mm/mempolicy: use unified 'nodes' for bind/interleave/prefer policies 2021-06-30 20:47:29 -07:00
mempool.h
memregion.h
memremap.h mm: fix spelling mistakes 2021-07-01 11:06:02 -07:00
memstick.h
mhi.h bus: mhi: pci-generic: configurable network interface MRU 2021-07-15 10:14:44 -07:00
micrel_phy.h
microchipphy.h
migrate_mode.h
migrate.h mm: Make copy_huge_page() always available 2021-07-12 11:30:56 -07:00
mii_timestamper.h
mii.h
min_heap.h
minmax.h
misc_cgroup.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm_inline.h
mm_types_task.h
mm_types.h Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
mm.h mm: Make copy_huge_page() always available 2021-07-12 11:30:56 -07:00
mman.h mm: ignore MAP_EXECUTABLE in ksys_mmap_pgoff() 2021-06-29 10:53:50 -07:00
mmap_lock.h
mmdebug.h mm: make __dump_page static 2021-06-29 10:53:53 -07:00
mmiotrace.h
mmu_context.h
mmu_notifier.h mm: fix spelling mistakes in header files 2021-07-08 11:48:21 -07:00
mmzone.h mm/swap: make NODE_DATA an inline function on CONFIG_FLATMEM 2021-07-01 11:06:03 -07:00
mnt_namespace.h
mod_devicetable.h
module_signature.h
module.h module: add printk formats to add module build ID to stacktraces 2021-07-08 11:48:22 -07:00
moduleloader.h
moduleparam.h
most.h
mount.h
moxtet.h
mpage.h
mpi.h lib/mpi: fix spelling mistakes 2021-07-01 11:06:05 -07:00
mpls_iptunnel.h
mpls.h
mroute6.h
mroute_base.h
mroute.h
msdos_fs.h
msdos_partition.h
msg.h
msi.h
mtio.h
mutex.h
mv643xx_eth.h
mv643xx_i2c.h
mv643xx.h
mvebu-pmsu.h
mxm-wmi.h
namei.h
nd.h
ndctl.h
net.h
netdev_features.h
netdevice.h net: add netif_set_real_num_queues() for device reconfig 2021-08-04 10:05:13 +01:00
netfilter_bridge.h
netfilter_defs.h
netfilter_ingress.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h
netfs.h
netlink.h
netpoll.h
nfs3.h
nfs4.h
nfs_fs_i.h
nfs_fs_sb.h
nfs_fs.h NFS: nfs_find_open_context() may only select open files 2021-06-29 13:12:39 -04:00
nfs_iostat.h
nfs_page.h
nfs_ssc.h
nfs_xdr.h NFSv4/pnfs: Clean up layout get on open 2021-07-08 14:03:26 -04:00
nfs.h
nfsacl.h
nitro_enclaves.h
nl802154.h
nls.h
nmi.h
node.h
nodemask.h lib: fix spelling mistakes in header files 2021-07-08 11:48:20 -07:00
nospec.h
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb_transport.h
ntb.h
nubus.h
numa.h
nvme-fc-driver.h
nvme-fc.h
nvme-rdma.h
nvme-tcp.h
nvme.h
nvmem-consumer.h
nvmem-provider.h Char / Misc driver updates for 5.14-rc1 2021-07-05 13:42:16 -07:00
nvram.h
objagg.h
objtool.h
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_pci.h
of_pdt.h
of_platform.h
of_reserved_mem.h
of.h
oid_registry.h
olpc-ec.h
omap-dma.h
omap-gpmc.h
omap-iommu.h
omap-mailbox.h
omapfb.h
once_lite.h once: implement DO_ONCE_LITE for non-fast-path "do once" functionality 2021-06-28 15:54:57 -07:00
once.h
oom.h
openvswitch.h
osq_lock.h
overflow.h
packing.h
padata.h
page_counter.h
page_ext.h
page_idle.h
page_owner.h mm/page_owner: constify dump_page_owner 2021-06-29 10:53:53 -07:00
page_ref.h mm: constify page_count and page_ref_count 2021-06-29 10:53:53 -07:00
page_reporting.h mm/page_reporting: allow driver to specify reporting order 2021-06-29 10:53:47 -07:00
page-flags-layout.h
page-flags.h Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
page-isolation.h
pageblock-flags.h mm: constify get_pfnblock_flags_mask and get_pfnblock_migratetype 2021-06-29 10:53:53 -07:00
pagemap.h mm: move page dirtying prototypes from mm.h 2021-06-29 10:53:48 -07:00
pagevec.h
pagewalk.h
panic_notifier.h kernel.h: split out panic and oops helpers 2021-07-01 11:06:04 -07:00
panic.h kernel.h: split out panic and oops helpers 2021-07-01 11:06:04 -07:00
parman.h
parport_pc.h
parport.h
parser.h
part_stat.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci_hotplug.h PCI: Fix kernel-doc formatting 2021-07-06 10:37:46 -05:00
pci_ids.h - New AMD models support 2021-06-28 11:22:40 -07:00
pci-acpi.h
pci-ats.h
pci-dma-compat.h
pci-ecam.h
pci-ep-cfs.h PCI: Fix kernel-doc formatting 2021-07-06 10:37:46 -05:00
pci-epc.h PCI: Fix kernel-doc formatting 2021-07-06 10:37:46 -05:00
pci-epf.h PCI: Fix kernel-doc formatting 2021-07-06 10:37:46 -05:00
pci-p2pdma.h
pci.h pci-v5.14-changes 2021-07-08 12:06:20 -07:00
pcs-lynx.h
pda_power.h
pe.h
percpu_counter.h
percpu-defs.h mm: fix spelling mistakes in header files 2021-07-08 11:48:21 -07:00
percpu-refcount.h lib: fix spelling mistakes in header files 2021-07-08 11:48:20 -07:00
percpu-rwsem.h
percpu.h
perf_event.h
perf_regs.h
personality.h
pfn_t.h
pfn.h
pgtable.h Revert "mm/pgtable: add stubs for {pmd/pub}_{set/clear}_huge" 2021-07-21 11:28:09 +01:00
phonet.h
phy_fixed.h
phy_led_triggers.h
phy.h net: phy: add API to read 802.3-c45 IDs 2021-07-20 06:55:20 -07:00
phylink.h
pid_namespace.h
pid.h
pim.h
pipe_fs_i.h
pkeys.h x86/fpu: Use pkru_write_default() in copy_init_fpstate_to_fpregs() 2021-06-23 19:15:16 +02:00
pktcdvd.h
pl320-ipc.h
platform_device.h
platform_profile.h
pldmfw.h
plist.h
pm_clock.h
pm_domain.h
pm_opp.h
pm_qos.h
pm_runtime.h
pm_wakeirq.h
pm_wakeup.h
pm-trace.h
pm.h
pmbus.h
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h
poll.h
posix_acl_xattr.h
posix_acl.h
posix-clock.h
posix-timers.h
power_supply.h
powercap.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
pps_kernel.h
pr.h
prandom.h
preempt.h
prefetch.h
prime_numbers.h
printk.h Networking changes for 5.14. 2021-06-30 15:51:09 -07:00
prmt.h
proc_fs.h
proc_ns.h
processor.h
profile.h
projid.h
property.h
pruss_driver.h
psci.h
pseudo_fs.h
psi_types.h
psi.h
psp-sev.h
psp-tee.h
pstore_blk.h
pstore_ram.h
pstore_zone.h
pstore.h
ptdump.h
pti.h
ptp_classify.h
ptp_clock_kernel.h ptp: add kernel API ptp_convert_timestamp() 2021-07-01 13:08:18 -07:00
ptp_kvm.h
ptp_pch.h
ptr_ring.h
ptrace.h
purgatory.h
pvclock_gtod.h
pwm_backlight.h
pwm.h pwm: core: Remove unused devm_pwm_put() 2021-06-30 19:12:19 +02:00
pxa2xx_ssp.h
pxa168_eth.h
qcom_scm.h
qcom-geni-se.h
qnx6_fs.h
quota.h
quotaops.h
radix-tree.h
raid_class.h
ramfs.h
random.h
randomize_kstack.h
range.h
ras.h
ratelimit_types.h
ratelimit.h
rational.h
rbtree_augmented.h
rbtree_latch.h
rbtree.h
rcu_node_tree.h
rcu_segcblist.h
rcu_sync.h
rculist_bl.h
rculist_nulls.h
rculist.h
rcupdate_trace.h
rcupdate_wait.h
rcupdate.h rcu: Create an unrcu_pointer() to remove __rcu from a pointer 2021-06-24 19:41:14 +02:00
rcutiny.h
rcutree.h
rcuwait.h
reboot-mode.h
reboot.h
reciprocal_div.h
refcount.h
regmap.h
regset.h
relay.h
remoteproc.h
resctrl.h
reset-controller.h
reset.h
resource_ext.h
resource.h
restart_block.h
rfkill.h
rhashtable-types.h
rhashtable.h
ring_buffer.h
rio_drv.h
rio_ids.h
rio_regs.h
rio.h
rmap.h mm: fix the try_to_unmap prototype for !CONFIG_MMU 2021-07-15 10:13:49 -07:00
rmi.h
rndis.h
rodata_test.h
root_dev.h
rpmsg.h
rslib.h
rtc.h
rtmutex.h
rtnetlink.h
rtsx_common.h
rtsx_pci.h
rtsx_usb.h
rwlock_api_smp.h
rwlock_types.h
rwlock.h
rwsem.h
s3c_adc_battery.h
sbitmap.h
scatterlist.h lib: fix spelling mistakes in header files 2021-07-08 11:48:20 -07:00
scc.h
sched_clock.h
sched.h bpf: Add ambient BPF runtime context stored in current 2021-07-16 21:15:28 +02:00
scmi_protocol.h firmware: arm_scmi: Fix kernel doc warnings 2021-07-13 11:39:42 +01:00
scpi_protocol.h firmware: arm_scpi: Fix kernel doc warnings 2021-07-13 11:39:48 +01:00
screen_info.h
scs.h
sctp.h
scx200_gpio.h
scx200.h
sdb.h
seccomp.h
secretmem.h PM: hibernate: disable when there are active secretmem users 2021-07-08 11:48:21 -07:00
securebits.h
security.h
sed-opal.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
seg6.h
selection.h
sem.h
semaphore.h
seq_buf.h
seq_file_net.h
seq_file.h seq_file: drop unused *_escape_mem_ascii() 2021-07-01 11:06:05 -07:00
seqlock.h
seqno-fence.h
serdev.h
serial_8250.h
serial_bcm63xx.h
serial_core.h
serial_max3100.h
serial_s3c.h
serial_sci.h
serial.h
serio.h
set_memory.h set_memory: allow querying whether set_direct_map_*() is actually enabled 2021-07-08 11:48:20 -07:00
sfp.h
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h
sh_timer.h
shdma-base.h
shm.h
shmem_fs.h Merge branch 'akpm' (patches from Andrew) 2021-07-02 12:08:10 -07:00
shrinker.h mm: fix spelling mistakes in header files 2021-07-08 11:48:21 -07:00
signal_types.h
signal.h x86: signal: don't do sas_ss_reset() until we are certain that sigframe won't be abandoned 2021-07-01 11:06:06 -07:00
signalfd.h
siox.h
siphash.h
sizes.h
skb_array.h
skbuff.h skbuff: introduce skb_expand_head() 2021-08-03 11:21:39 +01:00
skmsg.h bpf, sockmap: Fix memleak on ingress msg enqueue 2021-07-27 14:55:30 -07:00
slab_def.h
slab.h mm: memcg/slab: create a new set of kmalloc-cg-<n> caches 2021-06-29 10:53:49 -07:00
slimbus.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp_types.h
smp.h
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
socket.h mctp: Add MCTP base 2021-07-29 15:06:49 +01:00
sockptr.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types_up.h
spinlock_types.h
spinlock_up.h
spinlock.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
static_call_types.h
static_call.h
static_key.h
stddef.h
stm.h stm class: Spelling fix 2021-06-24 15:49:32 +02:00
stmmac.h net: stmmac: ptp: update tas basetime after ptp adjust 2021-07-05 10:16:17 -07:00
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string_helpers.h seq_file: drop unused *_escape_mem_ascii() 2021-07-01 11:06:05 -07:00
string.h kernel.h: split out kstrtox() and simple_strtox() to a separate header 2021-07-01 11:06:05 -07:00
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_cgroup.h
swap_slots.h
swap.h mm: device exclusive memory access 2021-07-01 11:06:03 -07:00
swapfile.h
swapops.h mm: device exclusive memory access 2021-07-01 11:06:03 -07:00
swiotlb.h
switchtec.h
sxgbe_platform.h
sync_core.h
sync_file.h
synclink.h
sys_soc.h
sys.h
syscall_user_dispatch.h
syscalls.h arch, mm: wire up memfd_secret system call where relevant 2021-07-08 11:48:21 -07:00
syscore_ops.h
sysctl.h
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
t10-pi.h
task_io_accounting_ops.h
task_io_accounting.h
task_work.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h
tee_drv.h
textsearch_fsm.h
textsearch.h
tfrc.h
thermal.h
thread_info.h kernel.h: split out panic and oops helpers 2021-07-01 11:06:04 -07:00
threads.h
thunderbolt.h
ti_wilink_st.h
ti-emif-sram.h
tick.h Updates to the tick/nohz code in this cycle: 2021-06-28 12:22:06 -07:00
tifm.h
timb_dma.h
timb_gpio.h
time32.h
time64.h
time_namespace.h
time.h
timecounter.h
timekeeper_internal.h
timekeeping.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
tnum.h
topology.h
torture.h
toshiba.h
tpm_command.h
tpm_eventlog.h
tpm.h
trace_clock.h
trace_events.h
trace_recursion.h
trace_seq.h
trace.h trace/osnoise: Fix 'no previous prototype' warnings 2021-06-28 14:12:26 -04:00
tracefs.h
tracehook.h
tracepoint-defs.h
tracepoint.h tracepoint: Add tracepoint_probe_register_may_exist() for BPF tracing 2021-06-29 11:51:25 -04:00
transport_class.h
ts-nbus.h
tsacct_kern.h
tty_driver.h
tty_flip.h tty: make linux/tty_flip.h self-contained 2021-06-25 09:58:51 +02:00
tty_ldisc.h
tty.h
typecheck.h bitops: Add non-atomic bitops for pointers 2021-07-07 20:01:45 -07:00
types.h
u64_stats_sync.h
uacce.h
uaccess.h
ucb1400.h
ucs2_string.h
udp.h
uidgid.h
uio_driver.h
uio.h
umh.h
unicode.h
units.h
uprobes.h
usb_usual.h
usb.h
usbdevice_fs.h
user_namespace.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2021-06-28 20:39:26 -07:00
user-return-notifier.h
user.h
userfaultfd_k.h userfaultfd/shmem: modify shmem_mfill_atomic_pte to use install_pte() 2021-06-30 20:47:27 -07:00
usermode_driver.h
util_macros.h
uts.h
utsname.h
uuid.h
vbox_utils.h
vdpa.h vdpa: support packed virtqueue for set/get_vq_state() 2021-07-08 07:49:01 -04:00
verification.h
vermagic.h
vexpress.h
vfio.h
vfs.h
vga_switcheroo.h
vgaarb.h
vhost_iotlb.h
via_i2c.h
via-core.h
via-gpio.h
via.h
videodev2.h
virtio_byteorder.h
virtio_caif.h
virtio_config.h
virtio_console.h
virtio_dma_buf.h
virtio_net.h
virtio_pci_modern.h virtio-pci library: introduce vp_modern_get_driver_features() 2021-07-08 07:49:01 -04:00
virtio_ring.h
virtio_vsock.h
virtio.h
visorbus.h
vlynq.h
vm_event_item.h
vmacache.h
vmalloc.h mm: fix spelling mistakes in header files 2021-07-08 11:48:21 -07:00
vme.h
vmpressure.h
vmstat.h mm/page_alloc: batch the accounting updates in the bulk allocator 2021-06-29 10:53:54 -07:00
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h
vt_buffer.h
vt_kern.h
vt.h
vtime.h
w1-gpio.h
w1.h
wait_bit.h
wait.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 for-5.14/block-2021-06-29 2021-06-30 12:12:56 -07:00
ww_mutex.h
wwan.h
xarray.h
xattr.h
xxhash.h
xz.h
yam.h
z2_battery.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h
zstd.h
zutil.h