Merge ~vicamo/ubuntu/+source/backport-iwlwifi-dkms/+git/backport-iwlwifi-dkms:for-focal/upgrade-rev-8042 into ~vicamo/ubuntu/+source/backport-iwlwifi-dkms/+git/backport-iwlwifi-dkms:ubuntu/focal

Proposed by You-Sheng Yang
Status: Merged
Approved by: You-Sheng Yang
Approved revision: 24dcb9d44c6f353de1844fec8e610ea06b8442bf
Merged at revision: 24dcb9d44c6f353de1844fec8e610ea06b8442bf
Proposed branch: ~vicamo/ubuntu/+source/backport-iwlwifi-dkms/+git/backport-iwlwifi-dkms:for-focal/upgrade-rev-8042
Merge into: ~vicamo/ubuntu/+source/backport-iwlwifi-dkms/+git/backport-iwlwifi-dkms:ubuntu/focal
Diff against target: 29606 lines (+9490/-5114)
259 files modified
Kconfig.local (+3/-0)
MAINTAINERS (+955/-336)
backport-include/asm/barrier.h (+4/-0)
backport-include/linux/compiler-gcc8.h (+1/-0)
backport-include/linux/compiler-gcc9.h (+1/-0)
backport-include/linux/ftrace_event.h (+1/-2)
backport-include/linux/hrtimer.h (+13/-0)
backport-include/linux/interrupt.h (+25/-0)
backport-include/linux/lockdep.h (+6/-0)
backport-include/linux/mmc/sdio_func.h (+76/-0)
backport-include/linux/moduleparam.h (+1/-2)
backport-include/linux/netdevice.h (+13/-6)
backport-include/linux/of_net.h (+16/-0)
backport-include/linux/rcupdate.h (+18/-0)
backport-include/linux/rhashtable.h (+31/-0)
backport-include/linux/string.h (+1/-2)
backport-include/linux/timekeeping.h (+10/-0)
backport-include/linux/wait.h (+1/-2)
backport-include/net/genetlink.h (+60/-2)
backport-include/net/ipv6_stubs.h (+13/-0)
backport-include/net/netlink.h (+246/-95)
compat/Kconfig (+6/-1)
compat/Makefile (+1/-3)
compat/backport-3.13.c (+1/-2)
compat/backport-3.17.c (+1/-4)
compat/backport-3.19.c (+1/-2)
compat/backport-4.0.c (+0/-2)
compat/backport-4.1.c (+0/-2)
compat/backport-4.6.c (+1/-3)
compat/backport-4.7.c (+1/-2)
compat/backport-5.2.c (+159/-61)
compat/backport-genetlink.c (+37/-17)
compat/build_OID_registry (+1/-5)
compat/compat-3.9.c (+0/-12)
compat/lib-asn1_decoder.c (+5/-5)
compat/lib-oid_registry.c (+1/-5)
compat/lib-refcount.c (+13/-5)
compat/lib-rhashtable.c (+112/-116)
compat/verification/pkcs7_parser.c (+1/-5)
compat/verification/pkcs7_parser.h (+1/-5)
compat/verification/pkcs7_trust.c (+1/-5)
compat/verification/pkcs7_verify.c (+1/-5)
compat/verification/x509.asn1.c (+54/-51)
compat/verification/x509.asn1.h (+1/-0)
compat/verification/x509_cert_parser.c (+54/-9)
compat/verification/x509_parser.h (+1/-5)
compat/verification/x509_public_key.c (+1/-6)
debian/backport-iwlwifi-dkms.modaliases (+12/-0)
debian/changelog (+8/-0)
debian/gbp.conf (+2/-2)
debian/gitlab-ci.yml (+2/-0)
debian/patches/series (+0/-2)
debian/tests/check-modaliases (+43/-6)
dev/null (+0/-46)
drivers/net/wireless/Kconfig (+1/-0)
drivers/net/wireless/intel/Kconfig (+1/-0)
drivers/net/wireless/intel/Makefile (+1/-0)
drivers/net/wireless/intel/iwlwifi/Kconfig (+1/-0)
drivers/net/wireless/intel/iwlwifi/cfg/22000.c (+105/-28)
drivers/net/wireless/intel/iwlwifi/cfg/7000.c (+5/-5)
drivers/net/wireless/intel/iwlwifi/cfg/8000.c (+5/-5)
drivers/net/wireless/intel/iwlwifi/cfg/9000.c (+26/-9)
drivers/net/wireless/intel/iwlwifi/fw/api/commands.h (+7/-0)
drivers/net/wireless/intel/iwlwifi/fw/api/d3.h (+12/-2)
drivers/net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h (+261/-347)
drivers/net/wireless/intel/iwlwifi/fw/api/debug.h (+29/-42)
drivers/net/wireless/intel/iwlwifi/fw/api/mac-cfg.h (+31/-2)
drivers/net/wireless/intel/iwlwifi/fw/api/rx.h (+37/-0)
drivers/net/wireless/intel/iwlwifi/fw/api/scan.h (+157/-0)
drivers/net/wireless/intel/iwlwifi/fw/api/time-event.h (+78/-2)
drivers/net/wireless/intel/iwlwifi/fw/dbg.c (+679/-1012)
drivers/net/wireless/intel/iwlwifi/fw/dbg.h (+18/-50)
drivers/net/wireless/intel/iwlwifi/fw/debugfs.c (+37/-0)
drivers/net/wireless/intel/iwlwifi/fw/error-dump.h (+71/-30)
drivers/net/wireless/intel/iwlwifi/fw/file.h (+25/-4)
drivers/net/wireless/intel/iwlwifi/fw/img.h (+18/-12)
drivers/net/wireless/intel/iwlwifi/fw/init.c (+0/-2)
drivers/net/wireless/intel/iwlwifi/fw/paging.c (+3/-3)
drivers/net/wireless/intel/iwlwifi/fw/runtime.h (+58/-23)
drivers/net/wireless/intel/iwlwifi/fw/smem.c (+1/-1)
drivers/net/wireless/intel/iwlwifi/iwl-config.h (+61/-21)
drivers/net/wireless/intel/iwlwifi/iwl-dbg-cfg.c (+3/-0)
drivers/net/wireless/intel/iwlwifi/iwl-dbg-cfg.h (+2/-0)
drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c (+946/-58)
drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.h (+34/-6)
drivers/net/wireless/intel/iwlwifi/iwl-debug.h (+1/-12)
drivers/net/wireless/intel/iwlwifi/iwl-devtrace-data.h (+1/-12)
drivers/net/wireless/intel/iwlwifi/iwl-devtrace-io.h (+1/-12)
drivers/net/wireless/intel/iwlwifi/iwl-devtrace-iwlwifi.h (+1/-12)
drivers/net/wireless/intel/iwlwifi/iwl-devtrace-msg.h (+1/-12)
drivers/net/wireless/intel/iwlwifi/iwl-devtrace-ucode.h (+1/-12)
drivers/net/wireless/intel/iwlwifi/iwl-devtrace.c (+1/-12)
drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h (+1/-13)
drivers/net/wireless/intel/iwlwifi/iwl-dnt-dev-if.c (+3/-1)
drivers/net/wireless/intel/iwlwifi/iwl-drv.c (+10/-10)
drivers/net/wireless/intel/iwlwifi/iwl-eeprom-parse.c (+12/-9)
drivers/net/wireless/intel/iwlwifi/iwl-eeprom-parse.h (+2/-2)
drivers/net/wireless/intel/iwlwifi/iwl-eeprom-read.c (+7/-7)
drivers/net/wireless/intel/iwlwifi/iwl-fh.h (+3/-3)
drivers/net/wireless/intel/iwlwifi/iwl-io.c (+11/-10)
drivers/net/wireless/intel/iwlwifi/iwl-io.h (+11/-7)
drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c (+42/-31)
drivers/net/wireless/intel/iwlwifi/iwl-prph.h (+12/-0)
drivers/net/wireless/intel/iwlwifi/iwl-trans.c (+0/-2)
drivers/net/wireless/intel/iwlwifi/iwl-trans.h (+67/-18)
drivers/net/wireless/intel/iwlwifi/mvm/constants.h (+4/-2)
drivers/net/wireless/intel/iwlwifi/mvm/d3.c (+46/-13)
drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c (+5/-0)
drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c (+6/-3)
drivers/net/wireless/intel/iwlwifi/mvm/fw.c (+57/-17)
drivers/net/wireless/intel/iwlwifi/mvm/led.c (+3/-3)
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c (+30/-6)
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c (+42/-16)
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h (+54/-10)
drivers/net/wireless/intel/iwlwifi/mvm/nvm.c (+2/-2)
drivers/net/wireless/intel/iwlwifi/mvm/ops.c (+21/-10)
drivers/net/wireless/intel/iwlwifi/mvm/phy-ctxt.c (+10/-1)
drivers/net/wireless/intel/iwlwifi/mvm/rs-fw.c (+19/-7)
drivers/net/wireless/intel/iwlwifi/mvm/rs.c (+27/-24)
drivers/net/wireless/intel/iwlwifi/mvm/rs.h (+3/-16)
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c (+129/-9)
drivers/net/wireless/intel/iwlwifi/mvm/scan.c (+261/-59)
drivers/net/wireless/intel/iwlwifi/mvm/sta.c (+5/-5)
drivers/net/wireless/intel/iwlwifi/mvm/time-event.c (+174/-1)
drivers/net/wireless/intel/iwlwifi/mvm/time-event.h (+20/-1)
drivers/net/wireless/intel/iwlwifi/mvm/tx.c (+15/-6)
drivers/net/wireless/intel/iwlwifi/mvm/utils.c (+7/-6)
drivers/net/wireless/intel/iwlwifi/mvm/vendor-cmd.c (+2/-0)
drivers/net/wireless/intel/iwlwifi/pcie/ctxt-info-gen3.c (+65/-14)
drivers/net/wireless/intel/iwlwifi/pcie/drv.c (+167/-40)
drivers/net/wireless/intel/iwlwifi/pcie/internal.h (+17/-13)
drivers/net/wireless/intel/iwlwifi/pcie/rx.c (+55/-33)
drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c (+5/-5)
drivers/net/wireless/intel/iwlwifi/pcie/trans.c (+227/-261)
drivers/net/wireless/intel/iwlwifi/pcie/tx-gen2.c (+20/-14)
drivers/net/wireless/intel/iwlwifi/pcie/tx.c (+48/-42)
drivers/net/wireless/intel/iwlwifi/xvt/debugfs.c (+3/-0)
drivers/net/wireless/intel/iwlwifi/xvt/rx.c (+3/-3)
drivers/net/wireless/intel/iwlwifi/xvt/user-infc.c (+4/-2)
drivers/net/wireless/intel/iwlwifi/xvt/xvt.c (+6/-4)
drivers/net/wireless/intel/iwlwifi/xvt/xvt.h (+1/-1)
drivers/net/wireless/mac80211_hwsim.c (+62/-60)
drivers/net/wireless/mac80211_hwsim.h (+1/-4)
include/crypto/backport-pkcs7.h (+1/-5)
include/crypto/backport-public_key.h (+5/-5)
include/linux/asn1.h (+1/-5)
include/linux/asn1_ber_bytecode.h (+1/-5)
include/linux/backport-asn1_decoder.h (+1/-5)
include/linux/backport-devcoredump.h (+1/-16)
include/linux/backport-oid_registry.h (+19/-5)
include/linux/backport-rhashtable-types.h (+0/-2)
include/linux/backport-rhashtable.h (+242/-132)
include/linux/bitfield.h (+1/-9)
include/linux/ieee80211.h (+10/-13)
include/linux/overflow.h (+15/-5)
include/linux/pci_ids.h (+4/-0)
include/linux/rhashtable-types.h (+2/-0)
include/linux/rhashtable.h (+2/-0)
include/net/cfg80211-wext.h (+1/-4)
include/net/cfg80211.h (+146/-10)
include/net/fq.h (+1/-2)
include/net/fq_impl.h (+11/-10)
include/net/mac80211.h (+209/-17)
include/uapi/linux/nl80211.h (+123/-5)
include/uapi/linux/pci_regs.h (+73/-67)
local-symbols (+1/-0)
net/Kconfig (+4/-15)
net/Makefile (+1/-1)
net/mac80211/Kconfig (+1/-0)
net/mac80211/aead_api.c (+1/-4)
net/mac80211/aead_api.h (+1/-5)
net/mac80211/aes_ccm.h (+1/-4)
net/mac80211/aes_cmac.c (+1/-4)
net/mac80211/aes_cmac.h (+1/-4)
net/mac80211/aes_gcm.h (+1/-4)
net/mac80211/aes_gmac.c (+1/-4)
net/mac80211/aes_gmac.h (+1/-4)
net/mac80211/agg-rx.c (+1/-4)
net/mac80211/agg-tx.c (+2/-5)
net/mac80211/cfg.c (+70/-4)
net/mac80211/chan.c (+1/-0)
net/mac80211/debugfs.c (+59/-3)
net/mac80211/debugfs_key.c (+1/-4)
net/mac80211/debugfs_netdev.c (+2/-5)
net/mac80211/debugfs_sta.c (+66/-7)
net/mac80211/driver-ops.c (+22/-4)
net/mac80211/driver-ops.h (+20/-3)
net/mac80211/ethtool.c (+1/-2)
net/mac80211/fils_aead.c (+1/-4)
net/mac80211/fils_aead.h (+1/-4)
net/mac80211/he.c (+1/-4)
net/mac80211/ht.c (+10/-4)
net/mac80211/ibss.c (+1/-4)
net/mac80211/ieee80211_i.h (+20/-8)
net/mac80211/iface.c (+20/-11)
net/mac80211/key.c (+79/-61)
net/mac80211/key.h (+5/-6)
net/mac80211/led.c (+1/-4)
net/mac80211/led.h (+1/-4)
net/mac80211/main.c (+30/-6)
net/mac80211/mesh.c (+6/-5)
net/mac80211/mesh.h (+11/-4)
net/mac80211/mesh_hwmp.c (+37/-31)
net/mac80211/mesh_pathtbl.c (+54/-128)
net/mac80211/mesh_plink.c (+1/-4)
net/mac80211/mesh_ps.c (+1/-4)
net/mac80211/mesh_sync.c (+1/-4)
net/mac80211/michael.c (+1/-4)
net/mac80211/michael.h (+1/-4)
net/mac80211/mlme.c (+1/-7)
net/mac80211/ocb.c (+1/-4)
net/mac80211/offchannel.c (+4/-6)
net/mac80211/rate.c (+1/-4)
net/mac80211/rate.h (+1/-4)
net/mac80211/rc80211_minstrel.h (+1/-4)
net/mac80211/rc80211_minstrel_ht.c (+101/-55)
net/mac80211/rc80211_minstrel_ht.h (+2/-5)
net/mac80211/rc80211_minstrel_ht_debugfs.c (+5/-7)
net/mac80211/rx.c (+59/-43)
net/mac80211/scan.c (+1/-4)
net/mac80211/spectmgmt.c (+1/-4)
net/mac80211/sta_info.c (+58/-8)
net/mac80211/sta_info.h (+39/-4)
net/mac80211/status.c (+16/-14)
net/mac80211/tdls.c (+2/-3)
net/mac80211/tkip.c (+1/-4)
net/mac80211/tkip.h (+1/-4)
net/mac80211/trace.h (+34/-3)
net/mac80211/tx.c (+247/-36)
net/mac80211/util.c (+9/-14)
net/mac80211/vht.c (+1/-4)
net/mac80211/wep.c (+1/-4)
net/mac80211/wep.h (+1/-4)
net/mac80211/wme.c (+45/-42)
net/mac80211/wme.h (+3/-4)
net/mac80211/wpa.c (+7/-5)
net/mac80211/wpa.h (+1/-4)
net/wireless/Kconfig (+1/-0)
net/wireless/Makefile (+1/-0)
net/wireless/chan.c (+2/-1)
net/wireless/core.c (+7/-2)
net/wireless/debugfs.c (+1/-4)
net/wireless/ibss.c (+11/-5)
net/wireless/lib80211.c (+1/-0)
net/wireless/lib80211_crypt_ccmp.c (+1/-5)
net/wireless/lib80211_crypt_tkip.c (+1/-6)
net/wireless/lib80211_crypt_wep.c (+1/-5)
net/wireless/nl80211.c (+651/-569)
net/wireless/ocb.c (+1/-4)
net/wireless/pmsr.c (+18/-15)
net/wireless/rdev-ops.h (+28/-1)
net/wireless/reg.c (+39/-30)
net/wireless/scan.c (+5/-6)
net/wireless/sysfs.c (+1/-2)
net/wireless/trace.h (+83/-6)
net/wireless/util.c (+33/-10)
net/wireless/wext-compat.c (+2/-3)
net/wireless/wext-compat.h (+1/-0)
versions (+1/-1)
Reviewer Review Type Date Requested Status
You-Sheng Yang Approve
Review via email: mp+374829@code.launchpad.net
To post a comment you must log in.
Revision history for this message
You-Sheng Yang (vicamo) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/Kconfig.local b/Kconfig.local
2index 33dd94b..c195c4e 100644
3--- a/Kconfig.local
4+++ b/Kconfig.local
5@@ -22,6 +22,9 @@ config BACKPORTED_EXPERT
6 config BACKPORTED_BP_MODULES
7 tristate
8 default BP_MODULES
9+config BACKPORTED_BPAUTO_BUILD_NLATTR
10+ tristate
11+ default BPAUTO_BUILD_NLATTR
12 config BACKPORTED_BPAUTO_BUILD_CORDIC
13 tristate
14 default BPAUTO_BUILD_CORDIC
15diff --git a/MAINTAINERS b/MAINTAINERS
16index 32d4444..677ef41 100644
17--- a/MAINTAINERS
18+++ b/MAINTAINERS
19@@ -268,12 +268,13 @@ L: linux-gpio@vger.kernel.org
20 S: Maintained
21 F: drivers/gpio/gpio-104-idio-16.c
22
23-ACCES 104-QUAD-8 IIO DRIVER
24+ACCES 104-QUAD-8 DRIVER
25 M: William Breathitt Gray <vilhelm.gray@gmail.com>
26 L: linux-iio@vger.kernel.org
27 S: Maintained
28+F: Documentation/ABI/testing/sysfs-bus-counter-104-quad-8
29 F: Documentation/ABI/testing/sysfs-bus-iio-counter-104-quad-8
30-F: drivers/iio/counter/104-quad-8.c
31+F: drivers/counter/104-quad-8.c
32
33 ACCES PCI-IDIO-16 GPIO DRIVER
34 M: William Breathitt Gray <vilhelm.gray@gmail.com>
35@@ -331,6 +332,7 @@ ACPI APEI
36 M: "Rafael J. Wysocki" <rjw@rjwysocki.net>
37 M: Len Brown <lenb@kernel.org>
38 L: linux-acpi@vger.kernel.org
39+R: James Morse <james.morse@arm.com>
40 R: Tony Luck <tony.luck@intel.com>
41 R: Borislav Petkov <bp@alien8.de>
42 F: drivers/acpi/apei/
43@@ -362,9 +364,10 @@ F: drivers/acpi/fan.c
44
45 ACPI FOR ARM64 (ACPI/arm64)
46 M: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
47-M: Hanjun Guo <hanjun.guo@linaro.org>
48+M: Hanjun Guo <guohanjun@huawei.com>
49 M: Sudeep Holla <sudeep.holla@arm.com>
50 L: linux-acpi@vger.kernel.org
51+L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
52 S: Maintained
53 F: drivers/acpi/arm64
54
55@@ -409,8 +412,7 @@ F: drivers/platform/x86/wmi.c
56 F: include/uapi/linux/wmi.h
57
58 AD1889 ALSA SOUND DRIVER
59-M: Thibaut Varene <T-Bone@parisc-linux.org>
60-W: http://wiki.parisc-linux.org/AD1889
61+W: https://parisc.wiki.kernel.org/index.php/AD1889
62 L: linux-parisc@vger.kernel.org
63 S: Maintained
64 F: sound/pci/ad1889.*
65@@ -467,7 +469,7 @@ ADM1025 HARDWARE MONITOR DRIVER
66 M: Jean Delvare <jdelvare@suse.com>
67 L: linux-hwmon@vger.kernel.org
68 S: Maintained
69-F: Documentation/hwmon/adm1025
70+F: Documentation/hwmon/adm1025.rst
71 F: drivers/hwmon/adm1025.c
72
73 ADM1029 HARDWARE MONITOR DRIVER
74@@ -519,7 +521,7 @@ ADS1015 HARDWARE MONITOR DRIVER
75 M: Dirk Eibach <eibach@gdsys.de>
76 L: linux-hwmon@vger.kernel.org
77 S: Maintained
78-F: Documentation/hwmon/ads1015
79+F: Documentation/hwmon/ads1015.rst
80 F: drivers/hwmon/ads1015.c
81 F: include/linux/platform_data/ads1015.h
82
83@@ -532,7 +534,7 @@ ADT7475 HARDWARE MONITOR DRIVER
84 M: Jean Delvare <jdelvare@suse.com>
85 L: linux-hwmon@vger.kernel.org
86 S: Maintained
87-F: Documentation/hwmon/adt7475
88+F: Documentation/hwmon/adt7475.rst
89 F: drivers/hwmon/adt7475.c
90
91 ADVANSYS SCSI DRIVER
92@@ -694,6 +696,7 @@ F: drivers/input/mouse/alps.*
93 ALTERA I2C CONTROLLER DRIVER
94 M: Thor Thayer <thor.thayer@linux.intel.com>
95 S: Maintained
96+F: Documentation/devicetree/bindings/i2c/i2c-altera.txt
97 F: drivers/i2c/busses/i2c-altera.c
98
99 ALTERA MAILBOX DRIVER
100@@ -708,6 +711,12 @@ L: linux-gpio@vger.kernel.org
101 S: Maintained
102 F: drivers/gpio/gpio-altera.c
103
104+ALTERA SYSTEM MANAGER DRIVER
105+M: Thor Thayer <thor.thayer@linux.intel.com>
106+S: Maintained
107+F: drivers/mfd/altera-sysmgr.c
108+F: include/linux/mfd/altera-sysgmr.h
109+
110 ALTERA SYSTEM RESOURCE DRIVER FOR ARRIA10 DEVKIT
111 M: Thor Thayer <thor.thayer@linux.intel.com>
112 S: Maintained
113@@ -734,6 +743,12 @@ F: drivers/tty/serial/altera_jtaguart.c
114 F: include/linux/altera_uart.h
115 F: include/linux/altera_jtaguart.h
116
117+AMAZON ANNAPURNA LABS THERMAL MMIO DRIVER
118+M: Talel Shenhar <talel@amazon.com>
119+S: Maintained
120+F: Documentation/devicetree/bindings/thermal/amazon,al-thermal.txt
121+F: drivers/thermal/thermal_mmio.c
122+
123 AMAZON ETHERNET DRIVERS
124 M: Netanel Belgazal <netanel@amazon.com>
125 R: Saeed Bishara <saeedb@amazon.com>
126@@ -743,6 +758,15 @@ S: Supported
127 F: Documentation/networking/device_drivers/amazon/ena.txt
128 F: drivers/net/ethernet/amazon/
129
130+AMAZON RDMA EFA DRIVER
131+M: Gal Pressman <galpress@amazon.com>
132+R: Yossi Leybovich <sleybo@amazon.com>
133+L: linux-rdma@vger.kernel.org
134+Q: https://patchwork.kernel.org/project/linux-rdma/list/
135+S: Supported
136+F: drivers/infiniband/hw/efa/
137+F: include/uapi/rdma/efa-abi.h
138+
139 AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER
140 M: Tom Lendacky <thomas.lendacky@amd.com>
141 M: Gary Hook <gary.hook@amd.com>
142@@ -763,9 +787,16 @@ AMD FAM15H PROCESSOR POWER MONITORING DRIVER
143 M: Huang Rui <ray.huang@amd.com>
144 L: linux-hwmon@vger.kernel.org
145 S: Supported
146-F: Documentation/hwmon/fam15h_power
147+F: Documentation/hwmon/fam15h_power.rst
148 F: drivers/hwmon/fam15h_power.c
149
150+AMD FCH GPIO DRIVER
151+M: Enrico Weigelt, metux IT consult <info@metux.net>
152+L: linux-gpio@vger.kernel.org
153+S: Maintained
154+F: drivers/gpio/gpio-amd-fch.c
155+F: include/linux/platform_data/gpio/gpio-amd-fch.h
156+
157 AMD GEODE CS5536 USB DEVICE CONTROLLER DRIVER
158 L: linux-geode@lists.infradead.org (moderated for non-subscribers)
159 S: Orphan
160@@ -808,6 +839,14 @@ F: drivers/gpu/drm/amd/include/vi_structs.h
161 F: drivers/gpu/drm/amd/include/v9_structs.h
162 F: include/uapi/linux/kfd_ioctl.h
163
164+AMD MP2 I2C DRIVER
165+M: Elie Morisse <syniurge@gmail.com>
166+M: Nehal Shah <nehal-bakulchandra.shah@amd.com>
167+M: Shyam Sundar S K <shyam-sundar.s-k@amd.com>
168+L: linux-i2c@vger.kernel.org
169+S: Maintained
170+F: drivers/i2c/busses/i2c-amd-mp2*
171+
172 AMD POWERPLAY
173 M: Rex Zhu <rex.zhu@amd.com>
174 M: Evan Quan <evan.quan@amd.com>
175@@ -854,6 +893,22 @@ S: Supported
176 F: drivers/iio/adc/ad7124.c
177 F: Documentation/devicetree/bindings/iio/adc/adi,ad7124.txt
178
179+ANALOG DEVICES INC AD7606 DRIVER
180+M: Stefan Popa <stefan.popa@analog.com>
181+L: linux-iio@vger.kernel.org
182+W: http://ez.analog.com/community/linux-device-drivers
183+S: Supported
184+F: drivers/iio/adc/ad7606.c
185+F: Documentation/devicetree/bindings/iio/adc/adi,ad7606.txt
186+
187+ANALOG DEVICES INC AD7768-1 DRIVER
188+M: Stefan Popa <stefan.popa@analog.com>
189+L: linux-iio@vger.kernel.org
190+W: http://ez.analog.com/community/linux-device-drivers
191+S: Supported
192+F: drivers/iio/adc/ad7768-1.c
193+F: Documentation/devicetree/bindings/iio/adc/adi,ad7768-1.txt
194+
195 ANALOG DEVICES INC AD9389B DRIVER
196 M: Hans Verkuil <hans.verkuil@cisco.com>
197 L: linux-media@vger.kernel.org
198@@ -926,6 +981,7 @@ F: drivers/dma/dma-axi-dmac.c
199 ANALOG DEVICES INC IIO DRIVERS
200 M: Lars-Peter Clausen <lars@metafoo.de>
201 M: Michael Hennerich <Michael.Hennerich@analog.com>
202+M: Stefan Popa <stefan.popa@analog.com>
203 W: http://wiki.analog.com/
204 W: http://ez.analog.com/community/linux-device-drivers
205 S: Supported
206@@ -936,10 +992,16 @@ F: drivers/iio/adc/ltc2497*
207 X: drivers/iio/*/adjd*
208 F: drivers/staging/iio/*/ad*
209
210+ANALOGBITS PLL LIBRARIES
211+M: Paul Walmsley <paul.walmsley@sifive.com>
212+S: Supported
213+F: drivers/clk/analogbits/*
214+F: include/linux/clk/analogbits*
215+
216 ANDES ARCHITECTURE
217 M: Greentime Hu <green.hu@gmail.com>
218 M: Vincent Chen <deanbo422@gmail.com>
219-T: git https://github.com/andestech/linux.git
220+T: git https://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux.git
221 S: Supported
222 F: arch/nds32/
223 F: Documentation/devicetree/bindings/interrupt-controller/andestech,ativic32.txt
224@@ -1035,28 +1097,30 @@ L: netdev@vger.kernel.org
225 S: Odd fixes
226 F: drivers/net/appletalk/
227 F: net/appletalk/
228+F: include/linux/atalk.h
229+F: include/uapi/linux/atalk.h
230
231 APPLIED MICRO (APM) X-GENE DEVICE TREE SUPPORT
232-M: Duc Dang <dhdang@apm.com>
233+M: Khuong Dinh <khuong@os.amperecomputing.com>
234 S: Supported
235 F: arch/arm64/boot/dts/apm/
236
237 APPLIED MICRO (APM) X-GENE SOC EDAC
238-M: Loc Ho <lho@apm.com>
239+M: Khuong Dinh <khuong@os.amperecomputing.com>
240 S: Supported
241 F: drivers/edac/xgene_edac.c
242 F: Documentation/devicetree/bindings/edac/apm-xgene-edac.txt
243
244 APPLIED MICRO (APM) X-GENE SOC ETHERNET (V2) DRIVER
245-M: Iyappan Subramanian <isubramanian@apm.com>
246-M: Keyur Chudgar <kchudgar@apm.com>
247+M: Iyappan Subramanian <iyappan@os.amperecomputing.com>
248+M: Keyur Chudgar <keyur@os.amperecomputing.com>
249 S: Supported
250 F: drivers/net/ethernet/apm/xgene-v2/
251
252 APPLIED MICRO (APM) X-GENE SOC ETHERNET DRIVER
253-M: Iyappan Subramanian <isubramanian@apm.com>
254-M: Keyur Chudgar <kchudgar@apm.com>
255-M: Quan Nguyen <qnguyen@apm.com>
256+M: Iyappan Subramanian <iyappan@os.amperecomputing.com>
257+M: Keyur Chudgar <keyur@os.amperecomputing.com>
258+M: Quan Nguyen <quan@os.amperecomputing.com>
259 S: Supported
260 F: drivers/net/ethernet/apm/xgene/
261 F: drivers/net/phy/mdio-xgene.c
262@@ -1064,7 +1128,7 @@ F: Documentation/devicetree/bindings/net/apm-xgene-enet.txt
263 F: Documentation/devicetree/bindings/net/apm-xgene-mdio.txt
264
265 APPLIED MICRO (APM) X-GENE SOC PMU
266-M: Tai Nguyen <ttnguyen@apm.com>
267+M: Khuong Dinh <khuong@os.amperecomputing.com>
268 S: Supported
269 F: drivers/perf/xgene_pmu.c
270 F: Documentation/perf/xgene-pmu.txt
271@@ -1111,6 +1175,7 @@ S: Maintained
272 F: Documentation/devicetree/bindings/arm/arm-boards
273 F: Documentation/devicetree/bindings/auxdisplay/arm-charlcd.txt
274 F: Documentation/devicetree/bindings/clock/arm-integrator.txt
275+F: Documentation/devicetree/bindings/i2c/i2c-versatile.txt
276 F: Documentation/devicetree/bindings/interrupt-controller/arm,versatile-fpga-irq.txt
277 F: Documentation/devicetree/bindings/mtd/arm-versatile.txt
278 F: arch/arm/mach-integrator/
279@@ -1133,13 +1198,35 @@ S: Supported
280 F: drivers/gpu/drm/arm/hdlcd_*
281 F: Documentation/devicetree/bindings/display/arm,hdlcd.txt
282
283+ARM KOMEDA DRM-KMS DRIVER
284+M: James (Qian) Wang <james.qian.wang@arm.com>
285+M: Liviu Dudau <liviu.dudau@arm.com>
286+L: Mali DP Maintainers <malidp@foss.arm.com>
287+S: Supported
288+T: git git://linux-arm.org/linux-ld.git for-upstream/mali-dp
289+F: drivers/gpu/drm/arm/display/include/
290+F: drivers/gpu/drm/arm/display/komeda/
291+F: Documentation/devicetree/bindings/display/arm,komeda.txt
292+F: Documentation/gpu/komeda-kms.rst
293+
294 ARM MALI-DP DRM DRIVER
295 M: Liviu Dudau <liviu.dudau@arm.com>
296 M: Brian Starkey <brian.starkey@arm.com>
297-M: Mali DP Maintainers <malidp@foss.arm.com>
298+L: Mali DP Maintainers <malidp@foss.arm.com>
299 S: Supported
300+T: git git://linux-arm.org/linux-ld.git for-upstream/mali-dp
301 F: drivers/gpu/drm/arm/
302 F: Documentation/devicetree/bindings/display/arm,malidp.txt
303+F: Documentation/gpu/afbc.rst
304+
305+ARM MALI PANFROST DRM DRIVER
306+M: Rob Herring <robh@kernel.org>
307+M: Tomeu Vizoso <tomeu.vizoso@collabora.com>
308+L: dri-devel@lists.freedesktop.org
309+S: Supported
310+T: git git://anongit.freedesktop.org/drm/drm-misc
311+F: drivers/gpu/drm/panfrost/
312+F: include/uapi/drm/panfrost_drm.h
313
314 ARM MFM AND FLOPPY DRIVERS
315 M: Ian Molton <spyro@f2s.com>
316@@ -1148,7 +1235,7 @@ F: arch/arm/lib/floppydma.S
317 F: arch/arm/include/asm/floppy.h
318
319 ARM PMU PROFILING AND DEBUGGING
320-M: Will Deacon <will.deacon@arm.com>
321+M: Will Deacon <will@kernel.org>
322 M: Mark Rutland <mark.rutland@arm.com>
323 S: Maintained
324 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
325@@ -1159,7 +1246,7 @@ F: arch/arm*/include/asm/hw_breakpoint.h
326 F: arch/arm*/include/asm/perf_event.h
327 F: drivers/perf/*
328 F: include/linux/perf/arm_pmu.h
329-F: Documentation/devicetree/bindings/arm/pmu.txt
330+F: Documentation/devicetree/bindings/arm/pmu.yaml
331 F: Documentation/devicetree/bindings/perf/
332
333 ARM PORT
334@@ -1220,7 +1307,7 @@ F: Documentation/devicetree/bindings/interrupt-controller/arm,vic.txt
335 F: drivers/irqchip/irq-vic.c
336
337 ARM SMMU DRIVERS
338-M: Will Deacon <will.deacon@arm.com>
339+M: Will Deacon <will@kernel.org>
340 R: Robin Murphy <robin.murphy@arm.com>
341 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
342 S: Maintained
343@@ -1372,6 +1459,15 @@ F: arch/arm/mach-aspeed/
344 F: arch/arm/boot/dts/aspeed-*
345 N: aspeed
346
347+ARM/BITMAIN ARCHITECTURE
348+M: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
349+L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
350+S: Maintained
351+F: arch/arm64/boot/dts/bitmain/
352+F: drivers/pinctrl/pinctrl-bm1880.c
353+F: Documentation/devicetree/bindings/arm/bitmain.yaml
354+F: Documentation/devicetree/bindings/pinctrl/bitmain,bm1880-pinctrl.txt
355+
356 ARM/CALXEDA HIGHBANK ARCHITECTURE
357 M: Rob Herring <robh@kernel.org>
358 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
359@@ -1531,21 +1627,14 @@ ARM/FREESCALE IMX / MXC ARM ARCHITECTURE
360 M: Shawn Guo <shawnguo@kernel.org>
361 M: Sascha Hauer <s.hauer@pengutronix.de>
362 R: Pengutronix Kernel Team <kernel@pengutronix.de>
363-R: Fabio Estevam <fabio.estevam@nxp.com>
364+R: Fabio Estevam <festevam@gmail.com>
365 R: NXP Linux Team <linux-imx@nxp.com>
366 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
367 S: Maintained
368 T: git git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git
369-F: arch/arm/mach-imx/
370-F: arch/arm/mach-mxs/
371-F: arch/arm/boot/dts/imx*
372-F: arch/arm/configs/imx*_defconfig
373-F: arch/arm64/boot/dts/freescale/imx*
374-F: drivers/clk/imx/
375-F: drivers/firmware/imx/
376-F: drivers/soc/imx/
377-F: include/linux/firmware/imx/
378-F: include/soc/imx/
379+N: imx
380+N: mxs
381+X: drivers/media/i2c/
382
383 ARM/FREESCALE VYBRID ARM ARCHITECTURE
384 M: Shawn Guo <shawnguo@kernel.org>
385@@ -1646,11 +1735,21 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
386 S: Maintained
387
388 ARM/INTEL IXP4XX ARM ARCHITECTURE
389+M: Linus Walleij <linusw@kernel.org>
390 M: Imre Kaloz <kaloz@openwrt.org>
391 M: Krzysztof Halasa <khalasa@piap.pl>
392 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
393 S: Maintained
394+F: Documentation/devicetree/bindings/arm/intel-ixp4xx.yaml
395+F: Documentation/devicetree/bindings/gpio/intel,ixp4xx-gpio.txt
396+F: Documentation/devicetree/bindings/interrupt-controller/intel,ixp4xx-interrupt.yaml
397+F: Documentation/devicetree/bindings/timer/intel,ixp4xx-timer.yaml
398 F: arch/arm/mach-ixp4xx/
399+F: drivers/clocksource/timer-ixp4xx.c
400+F: drivers/gpio/gpio-ixp4xx.c
401+F: drivers/irqchip/irq-ixp4xx.c
402+F: include/linux/irqchip/irq-ixp4xx.h
403+F: include/linux/platform_data/timer-ixp4xx.h
404
405 ARM/INTEL RESEARCH IMOTE/STARGATE 2 MACHINE SUPPORT
406 M: Jonathan Cameron <jic23@cam.ac.uk>
407@@ -1684,6 +1783,7 @@ ARM/LPC18XX ARCHITECTURE
408 M: Vladimir Zapolskiy <vz@mleia.com>
409 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
410 S: Maintained
411+F: Documentation/devicetree/bindings/i2c/i2c-lpc2k.txt
412 F: arch/arm/boot/dts/lpc43*
413 F: drivers/i2c/busses/i2c-lpc2k.c
414 F: drivers/memory/pl172.c
415@@ -1697,6 +1797,7 @@ M: Sylvain Lemieux <slemieux.tyco@gmail.com>
416 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
417 T: git git://github.com/vzapolskiy/linux-lpc32xx.git
418 S: Maintained
419+F: Documentation/devicetree/bindings/i2c/i2c-pnx.txt
420 F: arch/arm/boot/dts/lpc32*
421 F: arch/arm/mach-lpc32xx/
422 F: drivers/i2c/busses/i2c-pnx.c
423@@ -1737,6 +1838,7 @@ F: arch/arm/configs/mvebu_*_defconfig
424 F: arch/arm/mach-mvebu/
425 F: arch/arm64/boot/dts/marvell/armada*
426 F: drivers/cpufreq/armada-37xx-cpufreq.c
427+F: drivers/cpufreq/armada-8k-cpufreq.c
428 F: drivers/cpufreq/mvebu-cpufreq.c
429 F: drivers/irqchip/irq-armada-370-xp.c
430 F: drivers/irqchip/irq-mvebu-*
431@@ -1820,6 +1922,8 @@ ARM/NOMADIK/U300/Ux500 ARCHITECTURES
432 M: Linus Walleij <linus.walleij@linaro.org>
433 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
434 S: Maintained
435+F: Documentation/devicetree/bindings/i2c/i2c-nomadik.txt
436+F: Documentation/devicetree/bindings/i2c/i2c-stu300.txt
437 F: arch/arm/mach-nomadik/
438 F: arch/arm/mach-u300/
439 F: arch/arm/mach-ux500/
440@@ -1853,14 +1957,15 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik.git
441 ARM/NUVOTON NPCM ARCHITECTURE
442 M: Avi Fishman <avifishman70@gmail.com>
443 M: Tomer Maimon <tmaimon77@gmail.com>
444+M: Tali Perry <tali.perry1@gmail.com>
445 R: Patrick Venture <venture@google.com>
446 R: Nancy Yuen <yuenn@google.com>
447-R: Brendan Higgins <brendanhiggins@google.com>
448+R: Benjamin Fair <benjaminfair@google.com>
449 L: openbmc@lists.ozlabs.org (moderated for non-subscribers)
450 S: Supported
451 F: arch/arm/mach-npcm/
452 F: arch/arm/boot/dts/nuvoton-npcm*
453-F: include/dt-bindings/clock/nuvoton,npcm7xx-clks.h
454+F: include/dt-bindings/clock/nuvoton,npcm7xx-clock.h
455 F: drivers/*/*npcm*
456 F: Documentation/devicetree/bindings/*/*npcm*
457 F: Documentation/devicetree/bindings/*/*/*npcm*
458@@ -1882,10 +1987,11 @@ F: drivers/usb/host/ehci-w90x900.c
459 F: drivers/video/fbdev/nuc900fb.c
460
461 ARM/OPENMOKO NEO FREERUNNER (GTA02) MACHINE SUPPORT
462-M: Nelson Castillo <arhuaco@freaks-unidos.net>
463 L: openmoko-kernel@lists.openmoko.org (subscribers-only)
464 W: http://wiki.openmoko.org/wiki/Neo_FreeRunner
465-S: Supported
466+S: Orphan
467+F: arch/arm/mach-s3c24xx/mach-gta02.c
468+F: arch/arm/mach-s3c24xx/gta02.h
469
470 ARM/Orion SoC/Technologic Systems TS-78xx platform support
471 M: Alexander Clouter <alex@digriz.org.uk>
472@@ -1943,25 +2049,43 @@ W: http://www.armlinux.org.uk/
473 S: Maintained
474
475 ARM/QUALCOMM SUPPORT
476-M: Andy Gross <andy.gross@linaro.org>
477+M: Andy Gross <agross@kernel.org>
478 M: David Brown <david.brown@linaro.org>
479 L: linux-arm-msm@vger.kernel.org
480 S: Maintained
481 F: Documentation/devicetree/bindings/soc/qcom/
482+F: Documentation/devicetree/bindings/*/qcom*
483 F: arch/arm/boot/dts/qcom-*.dts
484 F: arch/arm/boot/dts/qcom-*.dtsi
485 F: arch/arm/mach-qcom/
486-F: arch/arm64/boot/dts/qcom/*
487+F: arch/arm64/boot/dts/qcom/
488+F: drivers/*/qcom/
489+F: drivers/*/qcom*
490+F: drivers/*/*/qcom/
491+F: drivers/*/*/qcom*
492+F: drivers/*/pm8???-*
493+F: drivers/bluetooth/btqcomsmd.c
494+F: drivers/clocksource/timer-qcom.c
495+F: drivers/extcon/extcon-qcom*
496+F: drivers/iommu/msm*
497 F: drivers/i2c/busses/i2c-qup.c
498-F: drivers/clk/qcom/
499-F: drivers/dma/qcom/
500-F: drivers/soc/qcom/
501+F: drivers/i2c/busses/i2c-qcom-geni.c
502+F: drivers/mfd/ssbi.c
503+F: drivers/mmc/host/mmci_qcom*
504+F: drivers/mmc/host/sdhci_msm.c
505+F: drivers/pci/controller/dwc/pcie-qcom.c
506+F: drivers/phy/qualcomm/
507+F: drivers/power/*/msm*
508+F: drivers/reset/reset-qcom-*
509+F: drivers/scsi/ufs/ufs-qcom.*
510 F: drivers/spi/spi-qup.c
511+F: drivers/spi/spi-geni-qcom.c
512+F: drivers/spi/spi-qcom-qspi.c
513 F: drivers/tty/serial/msm_serial.c
514-F: drivers/*/pm8???-*
515-F: drivers/mfd/ssbi.c
516-F: drivers/firmware/qcom_scm*
517-T: git git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux.git
518+F: drivers/usb/dwc3/dwc3-qcom.c
519+F: include/dt-bindings/*/qcom*
520+F: include/linux/*/qcom*
521+T: git git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux.git
522
523 ARM/RADISYS ENP2611 MACHINE SUPPORT
524 M: Lennert Buytenhek <kernel@wantstofly.org>
525@@ -1997,7 +2121,7 @@ Q: http://patchwork.kernel.org/project/linux-renesas-soc/list/
526 T: git git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git next
527 S: Supported
528 F: arch/arm64/boot/dts/renesas/
529-F: Documentation/devicetree/bindings/arm/shmobile.txt
530+F: Documentation/devicetree/bindings/arm/renesas.yaml
531 F: drivers/soc/renesas/
532 F: include/linux/soc/renesas/
533
534@@ -2022,6 +2146,7 @@ L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
535 L: linux-rockchip@lists.infradead.org
536 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git
537 S: Maintained
538+F: Documentation/devicetree/bindings/i2c/i2c-rk3x.txt
539 F: arch/arm/boot/dts/rk3*
540 F: arch/arm/boot/dts/rv1108*
541 F: arch/arm/mach-rockchip/
542@@ -2084,8 +2209,9 @@ F: drivers/media/platform/s5p-cec/
543 F: Documentation/devicetree/bindings/media/s5p-cec.txt
544
545 ARM/SAMSUNG S5P SERIES JPEG CODEC SUPPORT
546-M: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
547+M: Andrzej Pietrasiewicz <andrzejtp2010@gmail.com>
548 M: Jacek Anaszewski <jacek.anaszewski@gmail.com>
549+M: Sylwester Nawrocki <s.nawrocki@samsung.com>
550 L: linux-arm-kernel@lists.infradead.org
551 L: linux-media@vger.kernel.org
552 S: Maintained
553@@ -2109,6 +2235,8 @@ Q: http://patchwork.kernel.org/project/linux-renesas-soc/list/
554 T: git git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas.git next
555 S: Supported
556 F: arch/arm/boot/dts/emev2*
557+F: arch/arm/boot/dts/gr-peach*
558+F: arch/arm/boot/dts/iwg20d-q7*
559 F: arch/arm/boot/dts/r7s*
560 F: arch/arm/boot/dts/r8a*
561 F: arch/arm/boot/dts/r9a*
562@@ -2116,7 +2244,7 @@ F: arch/arm/boot/dts/sh*
563 F: arch/arm/configs/shmobile_defconfig
564 F: arch/arm/include/debug/renesas-scif.S
565 F: arch/arm/mach-shmobile/
566-F: Documentation/devicetree/bindings/arm/shmobile.txt
567+F: Documentation/devicetree/bindings/arm/renesas.yaml
568 F: drivers/soc/renesas/
569 F: include/linux/soc/renesas/
570
571@@ -2127,6 +2255,7 @@ F: arch/arm/mach-socfpga/
572 F: arch/arm/boot/dts/socfpga*
573 F: arch/arm/configs/socfpga_defconfig
574 F: arch/arm64/boot/dts/altera/
575+F: arch/arm64/boot/dts/intel/
576 W: http://www.rocketboards.org
577 T: git git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux.git
578
579@@ -2153,6 +2282,7 @@ M: Patrice Chotard <patrice.chotard@st.com>
580 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
581 W: http://www.stlinux.com
582 S: Maintained
583+F: Documentation/devicetree/bindings/i2c/i2c-st.txt
584 F: arch/arm/mach-sti/
585 F: arch/arm/boot/dts/sti*
586 F: drivers/char/hw_random/st-rng.c
587@@ -2294,7 +2424,7 @@ F: arch/arm/mm/cache-uniphier.c
588 F: arch/arm64/boot/dts/socionext/uniphier*
589 F: drivers/bus/uniphier-system-bus.c
590 F: drivers/clk/uniphier/
591-F: drivers/dmaengine/uniphier-mdmac.c
592+F: drivers/dma/uniphier-mdmac.c
593 F: drivers/gpio/gpio-uniphier.c
594 F: drivers/i2c/busses/i2c-uniphier*
595 F: drivers/irqchip/irq-uniphier-aidet.c
596@@ -2344,6 +2474,7 @@ ARM/VT8500 ARM ARCHITECTURE
597 M: Tony Prisk <linux@prisktech.co.nz>
598 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
599 S: Maintained
600+F: Documentation/devicetree/bindings/i2c/i2c-wmt.txt
601 F: arch/arm/mach-vt8500/
602 F: drivers/clocksource/timer-vt8500.c
603 F: drivers/i2c/busses/i2c-wmt.c
604@@ -2409,6 +2540,8 @@ F: drivers/cpuidle/cpuidle-zynq.c
605 F: drivers/block/xsysace.c
606 N: zynq
607 N: xilinx
608+F: Documentation/devicetree/bindings/i2c/i2c-cadence.txt
609+F: Documentation/devicetree/bindings/i2c/i2c-xiic.txt
610 F: drivers/clocksource/timer-cadence-ttc.c
611 F: drivers/i2c/busses/i2c-cadence.c
612 F: drivers/mmc/host/sdhci-of-arasan.c
613@@ -2417,7 +2550,7 @@ F: drivers/i2c/busses/i2c-xiic.c
614
615 ARM64 PORT (AARCH64 ARCHITECTURE)
616 M: Catalin Marinas <catalin.marinas@arm.com>
617-M: Will Deacon <will.deacon@arm.com>
618+M: Will Deacon <will@kernel.org>
619 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
620 T: git git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git
621 S: Maintained
622@@ -2450,7 +2583,7 @@ ASC7621 HARDWARE MONITOR DRIVER
623 M: George Joseph <george.joseph@fairview5.com>
624 L: linux-hwmon@vger.kernel.org
625 S: Maintained
626-F: Documentation/hwmon/asc7621
627+F: Documentation/hwmon/asc7621.rst
628 F: drivers/hwmon/asc7621.c
629
630 ASPEED VIDEO ENGINE DRIVER
631@@ -2497,16 +2630,15 @@ F: include/linux/dmaengine.h
632 F: include/linux/async_tx.h
633
634 AT24 EEPROM DRIVER
635-M: Bartosz Golaszewski <brgl@bgdev.pl>
636+M: Bartosz Golaszewski <bgolaszewski@baylibre.com>
637 L: linux-i2c@vger.kernel.org
638 T: git git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git
639 S: Maintained
640 F: Documentation/devicetree/bindings/eeprom/at24.txt
641 F: drivers/misc/eeprom/at24.c
642-F: include/linux/platform_data/at24.h
643
644 ATA OVER ETHERNET (AOE) DRIVER
645-M: "Ed L. Cashin" <ed.cashin@acm.org>
646+M: "Justin Sanders" <justin@coraid.com>
647 W: http://www.openaoe.org/
648 S: Supported
649 F: Documentation/aoe/
650@@ -2602,13 +2734,14 @@ S: Maintained
651 F: drivers/net/wireless/atmel/atmel*
652
653 ATOMIC INFRASTRUCTURE
654-M: Will Deacon <will.deacon@arm.com>
655+M: Will Deacon <will@kernel.org>
656 M: Peter Zijlstra <peterz@infradead.org>
657 R: Boqun Feng <boqun.feng@gmail.com>
658 L: linux-kernel@vger.kernel.org
659 S: Maintained
660 F: arch/*/include/asm/atomic*.h
661 F: include/*/atomic*.h
662+F: scripts/atomic/
663
664 ATTO EXPRESSSAS SAS/SATA RAID SCSI DRIVER
665 M: Bradley Grove <linuxdrivers@attotech.com>
666@@ -2646,7 +2779,7 @@ AVIA HX711 ANALOG DIGITAL CONVERTER IIO DRIVER
667 M: Andreas Klinger <ak@it-klinger.de>
668 L: linux-iio@vger.kernel.org
669 S: Maintained
670-F: Documentation/devicetree/bindings/iio/adc/avia-hx711.txt
671+F: Documentation/devicetree/bindings/iio/adc/avia-hx711.yaml
672 F: drivers/iio/adc/hx711.c
673
674 AX.25 NETWORK LAYER
675@@ -2731,10 +2864,13 @@ M: Simon Wunderlich <sw@simonwunderlich.de>
676 M: Antonio Quartulli <a@unstable.cc>
677 L: b.a.t.m.a.n@lists.open-mesh.org (moderated for non-subscribers)
678 W: https://www.open-mesh.org/
679+B: https://www.open-mesh.org/projects/batman-adv/issues
680+C: irc://chat.freenode.net/batman
681 Q: https://patchwork.open-mesh.org/project/batman/list/
682+T: git https://git.open-mesh.org/linux-merge.git
683 S: Maintained
684-F: Documentation/ABI/testing/sysfs-class-net-batman-adv
685-F: Documentation/ABI/testing/sysfs-class-net-mesh
686+F: Documentation/ABI/obsolete/sysfs-class-net-batman-adv
687+F: Documentation/ABI/obsolete/sysfs-class-net-mesh
688 F: Documentation/networking/batman-adv.rst
689 F: include/uapi/linux/batadv_packet.h
690 F: include/uapi/linux/batman_adv.h
691@@ -2848,8 +2984,11 @@ F: include/uapi/linux/if_bonding.h
692 BPF (Safe dynamic programs and tools)
693 M: Alexei Starovoitov <ast@kernel.org>
694 M: Daniel Borkmann <daniel@iogearbox.net>
695+R: Martin KaFai Lau <kafai@fb.com>
696+R: Song Liu <songliubraving@fb.com>
697+R: Yonghong Song <yhs@fb.com>
698 L: netdev@vger.kernel.org
699-L: linux-kernel@vger.kernel.org
700+L: bpf@vger.kernel.org
701 T: git git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git
702 T: git git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
703 Q: https://patchwork.ozlabs.org/project/netdev/list/?delegate=77147
704@@ -2873,10 +3012,13 @@ F: samples/bpf/
705 F: tools/bpf/
706 F: tools/lib/bpf/
707 F: tools/testing/selftests/bpf/
708+K: bpf
709+N: bpf
710
711 BPF JIT for ARM
712 M: Shubham Bansal <illusionist.neo@gmail.com>
713 L: netdev@vger.kernel.org
714+L: bpf@vger.kernel.org
715 S: Maintained
716 F: arch/arm/net/
717
718@@ -2885,18 +3027,21 @@ M: Daniel Borkmann <daniel@iogearbox.net>
719 M: Alexei Starovoitov <ast@kernel.org>
720 M: Zi Shen Lim <zlim.lnx@gmail.com>
721 L: netdev@vger.kernel.org
722+L: bpf@vger.kernel.org
723 S: Supported
724 F: arch/arm64/net/
725
726 BPF JIT for MIPS (32-BIT AND 64-BIT)
727 M: Paul Burton <paul.burton@mips.com>
728 L: netdev@vger.kernel.org
729+L: bpf@vger.kernel.org
730 S: Maintained
731 F: arch/mips/net/
732
733 BPF JIT for NFP NICs
734 M: Jakub Kicinski <jakub.kicinski@netronome.com>
735 L: netdev@vger.kernel.org
736+L: bpf@vger.kernel.org
737 S: Supported
738 F: drivers/net/ethernet/netronome/nfp/bpf/
739
740@@ -2904,13 +3049,22 @@ BPF JIT for POWERPC (32-BIT AND 64-BIT)
741 M: Naveen N. Rao <naveen.n.rao@linux.ibm.com>
742 M: Sandipan Das <sandipan@linux.ibm.com>
743 L: netdev@vger.kernel.org
744+L: bpf@vger.kernel.org
745 S: Maintained
746 F: arch/powerpc/net/
747
748+BPF JIT for RISC-V (RV64G)
749+M: Björn Töpel <bjorn.topel@gmail.com>
750+L: netdev@vger.kernel.org
751+S: Maintained
752+F: arch/riscv/net/
753+
754 BPF JIT for S390
755-M: Martin Schwidefsky <schwidefsky@de.ibm.com>
756 M: Heiko Carstens <heiko.carstens@de.ibm.com>
757+M: Vasily Gorbik <gor@linux.ibm.com>
758+M: Christian Borntraeger <borntraeger@de.ibm.com>
759 L: netdev@vger.kernel.org
760+L: bpf@vger.kernel.org
761 S: Maintained
762 F: arch/s390/net/
763 X: arch/s390/net/pnet.c
764@@ -2918,12 +3072,14 @@ X: arch/s390/net/pnet.c
765 BPF JIT for SPARC (32-BIT AND 64-BIT)
766 M: David S. Miller <davem@davemloft.net>
767 L: netdev@vger.kernel.org
768+L: bpf@vger.kernel.org
769 S: Maintained
770 F: arch/sparc/net/
771
772 BPF JIT for X86 32-BIT
773 M: Wang YanQing <udknight@gmail.com>
774 L: netdev@vger.kernel.org
775+L: bpf@vger.kernel.org
776 S: Maintained
777 F: arch/x86/net/bpf_jit_comp32.c
778
779@@ -2931,6 +3087,7 @@ BPF JIT for X86 64-BIT
780 M: Alexei Starovoitov <ast@kernel.org>
781 M: Daniel Borkmann <daniel@iogearbox.net>
782 L: netdev@vger.kernel.org
783+L: bpf@vger.kernel.org
784 S: Supported
785 F: arch/x86/net/
786 X: arch/x86/net/bpf_jit_comp32.c
787@@ -2964,7 +3121,8 @@ F: arch/arm/mach-bcm/
788
789 BROADCOM BCM2835 ARM ARCHITECTURE
790 M: Eric Anholt <eric@anholt.net>
791-M: Stefan Wahren <stefan.wahren@i2se.com>
792+M: Stefan Wahren <wahrenst@gmx.net>
793+L: bcm-kernel-feedback-list@broadcom.com
794 L: linux-rpi-kernel@lists.infradead.org (moderated for non-subscribers)
795 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
796 T: git git://github.com/anholt/linux
797@@ -2994,6 +3152,7 @@ F: arch/arm/boot/dts/bcm953012*
798
799 BROADCOM BCM53573 ARM ARCHITECTURE
800 M: Rafał Miłecki <rafal@milecki.pl>
801+L: bcm-kernel-feedback-list@broadcom.com
802 L: linux-arm-kernel@lists.infradead.org
803 S: Maintained
804 F: arch/arm/boot/dts/bcm53573*
805@@ -3038,6 +3197,7 @@ F: drivers/cpufreq/bmips-cpufreq.c
806 BROADCOM BMIPS MIPS ARCHITECTURE
807 M: Kevin Cernekee <cernekee@gmail.com>
808 M: Florian Fainelli <f.fainelli@gmail.com>
809+L: bcm-kernel-feedback-list@broadcom.com
810 L: linux-mips@vger.kernel.org
811 T: git git://github.com/broadcom/stblinux.git
812 S: Maintained
813@@ -3052,8 +3212,8 @@ F: include/linux/bcm963xx_nvram.h
814 F: include/linux/bcm963xx_tag.h
815
816 BROADCOM BNX2 GIGABIT ETHERNET DRIVER
817-M: Rasesh Mody <rasesh.mody@cavium.com>
818-M: Dept-GELinuxNICDev@cavium.com
819+M: Rasesh Mody <rmody@marvell.com>
820+M: GR-Linux-NIC-Dev@marvell.com
821 L: netdev@vger.kernel.org
822 S: Supported
823 F: drivers/net/ethernet/broadcom/bnx2.*
824@@ -3072,9 +3232,9 @@ S: Supported
825 F: drivers/scsi/bnx2i/
826
827 BROADCOM BNX2X 10 GIGABIT ETHERNET DRIVER
828-M: Ariel Elior <ariel.elior@cavium.com>
829-M: Sudarsana Kalluru <sudarsana.kalluru@cavium.com>
830-M: everest-linux-l2@cavium.com
831+M: Ariel Elior <aelior@marvell.com>
832+M: Sudarsana Kalluru <skalluru@marvell.com>
833+M: GR-everest-linux-l2@marvell.com
834 L: netdev@vger.kernel.org
835 S: Supported
836 F: drivers/net/ethernet/broadcom/bnx2x/
837@@ -3122,6 +3282,7 @@ F: drivers/phy/broadcom/phy-brcm-usb*
838 BROADCOM GENET ETHERNET DRIVER
839 M: Doug Berger <opendmb@gmail.com>
840 M: Florian Fainelli <f.fainelli@gmail.com>
841+L: bcm-kernel-feedback-list@broadcom.com
842 L: netdev@vger.kernel.org
843 S: Supported
844 F: drivers/net/ethernet/broadcom/genet/
845@@ -3229,6 +3390,7 @@ F: drivers/spi/spi-iproc-qspi.c
846
847 BROADCOM SYSTEMPORT ETHERNET DRIVER
848 M: Florian Fainelli <f.fainelli@gmail.com>
849+L: bcm-kernel-feedback-list@broadcom.com
850 L: netdev@vger.kernel.org
851 S: Supported
852 F: drivers/net/ethernet/broadcom/bcmsysport.*
853@@ -3249,9 +3411,9 @@ S: Supported
854 F: drivers/scsi/bfa/
855
856 BROCADE BNA 10 GIGABIT ETHERNET DRIVER
857-M: Rasesh Mody <rasesh.mody@cavium.com>
858-M: Sudarsana Kalluru <sudarsana.kalluru@cavium.com>
859-M: Dept-GELinuxNICDev@cavium.com
860+M: Rasesh Mody <rmody@marvell.com>
861+M: Sudarsana Kalluru <skalluru@marvell.com>
862+M: GR-Linux-NIC-Dev@marvell.com
863 L: netdev@vger.kernel.org
864 S: Supported
865 F: drivers/net/ethernet/brocade/bna/
866@@ -3267,7 +3429,7 @@ F: include/uapi/linux/bsg.h
867 BT87X AUDIO DRIVER
868 M: Clemens Ladisch <clemens@ladisch.de>
869 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
870-T: git git://git.alsa-project.org/alsa-kernel.git
871+T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
872 S: Maintained
873 F: Documentation/sound/cards/bt87x.rst
874 F: sound/pci/bt87x.c
875@@ -3320,7 +3482,7 @@ F: drivers/scsi/FlashPoint.*
876 C-MEDIA CMI8788 DRIVER
877 M: Clemens Ladisch <clemens@ladisch.de>
878 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
879-T: git git://git.alsa-project.org/alsa-kernel.git
880+T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
881 S: Maintained
882 F: sound/pci/oxygen/
883
884@@ -3385,9 +3547,8 @@ F: Documentation/media/v4l-drivers/cafe_ccic*
885 F: drivers/media/platform/marvell-ccic/
886
887 CAIF NETWORK LAYER
888-M: Dmitry Tarnyagin <dmitry.tarnyagin@lockless.no>
889 L: netdev@vger.kernel.org
890-S: Supported
891+S: Orphan
892 F: Documentation/networking/caif/
893 F: drivers/net/caif/
894 F: include/uapi/linux/caif/
895@@ -3471,10 +3632,9 @@ F: drivers/i2c/busses/i2c-octeon*
896 F: drivers/i2c/busses/i2c-thunderx*
897
898 CAVIUM LIQUIDIO NETWORK DRIVER
899-M: Derek Chickles <derek.chickles@caviumnetworks.com>
900-M: Satanand Burla <satananda.burla@caviumnetworks.com>
901-M: Felix Manlunas <felix.manlunas@caviumnetworks.com>
902-M: Raghu Vatsavayi <raghu.vatsavayi@caviumnetworks.com>
903+M: Derek Chickles <dchickles@marvell.com>
904+M: Satanand Burla <sburla@marvell.com>
905+M: Felix Manlunas <fmanlunas@marvell.com>
906 L: netdev@vger.kernel.org
907 W: http://www.cavium.com
908 S: Supported
909@@ -3512,7 +3672,6 @@ F: include/linux/spi/cc2520.h
910 F: Documentation/devicetree/bindings/net/ieee802154/cc2520.txt
911
912 CCREE ARM TRUSTZONE CRYPTOCELL REE DRIVER
913-M: Yael Chemla <yael.chemla@foss.arm.com>
914 M: Gilad Ben-Yossef <gilad@benyossef.com>
915 L: linux-crypto@vger.kernel.org
916 S: Supported
917@@ -3647,8 +3806,8 @@ F: scripts/checkpatch.pl
918
919 CHINESE DOCUMENTATION
920 M: Harry Wei <harryxiyou@gmail.com>
921+M: Alex Shi <alex.shi@linux.alibaba.com>
922 L: xiyoulinuxkernelgroup@googlegroups.com (subscribers-only)
923-L: linux-kernel@zh-kernel.org (moderated for non-subscribers)
924 S: Maintained
925 F: Documentation/translations/zh_CN/
926
927@@ -3676,7 +3835,7 @@ CHROME HARDWARE PLATFORM SUPPORT
928 M: Benson Leung <bleung@chromium.org>
929 M: Enric Balletbo i Serra <enric.balletbo@collabora.com>
930 S: Maintained
931-T: git git://git.kernel.org/pub/scm/linux/kernel/git/bleung/chrome-platform.git
932+T: git git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux.git
933 F: drivers/platform/chrome/
934
935 CHROMEOS EC SUBDRIVERS
936@@ -3688,6 +3847,14 @@ N: cros_ec
937 N: cros-ec
938 F: drivers/power/supply/cros_usbpd-charger.c
939
940+CHROMEOS EC CODEC DRIVER
941+M: Cheng-Yi Chiang <cychiang@chromium.org>
942+S: Maintained
943+R: Enric Balletbo i Serra <enric.balletbo@collabora.com>
944+R: Guenter Roeck <groeck@chromium.org>
945+F: Documentation/devicetree/bindings/sound/google,cros-ec-codec.txt
946+F: sound/soc/codecs/cros_ec_codec.*
947+
948 CIRRUS LOGIC AUDIO CODEC DRIVERS
949 M: Brian Austin <brian.austin@cirrus.com>
950 M: Paul Handrigan <Paul.Handrigan@cirrus.com>
951@@ -3701,6 +3868,28 @@ L: netdev@vger.kernel.org
952 S: Maintained
953 F: drivers/net/ethernet/cirrus/ep93xx_eth.c
954
955+CIRRUS LOGIC LOCHNAGAR DRIVER
956+M: Charles Keepax <ckeepax@opensource.cirrus.com>
957+M: Richard Fitzgerald <rf@opensource.cirrus.com>
958+L: patches@opensource.cirrus.com
959+S: Supported
960+F: drivers/clk/clk-lochnagar.c
961+F: drivers/hwmon/lochnagar-hwmon.c
962+F: drivers/mfd/lochnagar-i2c.c
963+F: drivers/pinctrl/cirrus/pinctrl-lochnagar.c
964+F: drivers/regulator/lochnagar-regulator.c
965+F: sound/soc/codecs/lochnagar-sc.c
966+F: include/dt-bindings/clk/lochnagar.h
967+F: include/dt-bindings/pinctrl/lochnagar.h
968+F: include/linux/mfd/lochnagar*
969+F: Documentation/devicetree/bindings/mfd/cirrus,lochnagar.txt
970+F: Documentation/devicetree/bindings/clock/cirrus,lochnagar.txt
971+F: Documentation/devicetree/bindings/hwmon/cirrus,lochnagar.txt
972+F: Documentation/devicetree/bindings/pinctrl/cirrus,lochnagar.txt
973+F: Documentation/devicetree/bindings/regulator/cirrus,lochnagar.txt
974+F: Documentation/devicetree/bindings/sound/cirrus,lochnagar.txt
975+F: Documentation/hwmon/lochnagar
976+
977 CISCO FCOE HBA DRIVER
978 M: Satish Kharat <satishkh@cisco.com>
979 M: Sesidhar Baddela <sebaddel@cisco.com>
980@@ -3753,6 +3942,14 @@ M: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
981 S: Maintained
982 F: .clang-format
983
984+CLANG/LLVM BUILD SUPPORT
985+L: clang-built-linux@googlegroups.com
986+W: https://clangbuiltlinux.github.io/
987+B: https://github.com/ClangBuiltLinux/linux/issues
988+C: irc://chat.freenode.net/clangbuiltlinux
989+S: Supported
990+K: \b(?i:clang|llvm)\b
991+
992 CLEANCACHE API
993 M: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
994 L: linux-kernel@vger.kernel.org
995@@ -3907,9 +4104,10 @@ M: Johannes Weiner <hannes@cmpxchg.org>
996 L: cgroups@vger.kernel.org
997 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git
998 S: Maintained
999-F: Documentation/cgroup*
1000+F: Documentation/admin-guide/cgroup-v2.rst
1001+F: Documentation/cgroup-v1/
1002 F: include/linux/cgroup*
1003-F: kernel/cgroup*
1004+F: kernel/cgroup/
1005
1006 CONTROL GROUP - CPUSET
1007 M: Li Zefan <lizefan@huawei.com>
1008@@ -3936,7 +4134,7 @@ CORETEMP HARDWARE MONITORING DRIVER
1009 M: Fenghua Yu <fenghua.yu@intel.com>
1010 L: linux-hwmon@vger.kernel.org
1011 S: Maintained
1012-F: Documentation/hwmon/coretemp
1013+F: Documentation/hwmon/coretemp.rst
1014 F: drivers/hwmon/coretemp.c
1015
1016 COSA/SRP SYNC SERIAL DRIVER
1017@@ -3945,24 +4143,38 @@ W: http://www.fi.muni.cz/~kas/cosa/
1018 S: Maintained
1019 F: drivers/net/wan/cosa*
1020
1021+COUNTER SUBSYSTEM
1022+M: William Breathitt Gray <vilhelm.gray@gmail.com>
1023+L: linux-iio@vger.kernel.org
1024+S: Maintained
1025+F: Documentation/ABI/testing/sysfs-bus-counter*
1026+F: Documentation/driver-api/generic-counter.rst
1027+F: drivers/counter/
1028+F: include/linux/counter.h
1029+F: include/linux/counter_enum.h
1030+
1031 CPMAC ETHERNET DRIVER
1032 M: Florian Fainelli <f.fainelli@gmail.com>
1033 L: netdev@vger.kernel.org
1034 S: Maintained
1035 F: drivers/net/ethernet/ti/cpmac.c
1036
1037-CPU FREQUENCY DRIVERS
1038+CPU FREQUENCY SCALING FRAMEWORK
1039 M: "Rafael J. Wysocki" <rjw@rjwysocki.net>
1040 M: Viresh Kumar <viresh.kumar@linaro.org>
1041 L: linux-pm@vger.kernel.org
1042 S: Maintained
1043 T: git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git
1044-T: git git://git.linaro.org/people/vireshk/linux.git (For ARM Updates)
1045+T: git git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm.git (For ARM Updates)
1046 B: https://bugzilla.kernel.org
1047+F: Documentation/admin-guide/pm/cpufreq.rst
1048+F: Documentation/admin-guide/pm/intel_pstate.rst
1049 F: Documentation/cpu-freq/
1050 F: Documentation/devicetree/bindings/cpufreq/
1051 F: drivers/cpufreq/
1052+F: kernel/sched/cpufreq*.c
1053 F: include/linux/cpufreq.h
1054+F: include/linux/sched/cpufreq.h
1055 F: tools/testing/selftests/cpufreq/
1056
1057 CPU FREQUENCY DRIVERS - ARM BIG LITTLE
1058@@ -3977,6 +4189,7 @@ F: drivers/cpufreq/arm_big_little.c
1059 CPU POWER MONITORING SUBSYSTEM
1060 M: Thomas Renninger <trenn@suse.com>
1061 M: Shuah Khan <shuah@kernel.org>
1062+M: Shuah Khan <skhan@linuxfoundation.org>
1063 L: linux-pm@vger.kernel.org
1064 S: Maintained
1065 F: tools/power/cpupower/
1066@@ -4006,18 +4219,20 @@ S: Supported
1067 F: drivers/cpuidle/cpuidle-exynos.c
1068 F: arch/arm/mach-exynos/pm.c
1069
1070-CPUIDLE DRIVERS
1071+CPU IDLE TIME MANAGEMENT FRAMEWORK
1072 M: "Rafael J. Wysocki" <rjw@rjwysocki.net>
1073 M: Daniel Lezcano <daniel.lezcano@linaro.org>
1074 L: linux-pm@vger.kernel.org
1075 S: Maintained
1076 T: git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git
1077 B: https://bugzilla.kernel.org
1078+F: Documentation/admin-guide/pm/cpuidle.rst
1079+F: Documentation/driver-api/pm/cpuidle.rst
1080 F: drivers/cpuidle/*
1081 F: include/linux/cpuidle.h
1082
1083 CRAMFS FILESYSTEM
1084-M: Nicolas Pitre <nico@linaro.org>
1085+M: Nicolas Pitre <nico@fluxnic.net>
1086 S: Maintained
1087 F: Documentation/filesystems/cramfs.txt
1088 F: fs/cramfs/
1089@@ -4120,7 +4335,7 @@ S: Maintained
1090 F: drivers/media/dvb-frontends/cxd2820r*
1091
1092 CXGB3 ETHERNET DRIVER (CXGB3)
1093-M: Arjun Vynipadath <arjun@chelsio.com>
1094+M: Vishal Kulkarni <vishal@chelsio.com>
1095 L: netdev@vger.kernel.org
1096 W: http://www.chelsio.com
1097 S: Supported
1098@@ -4134,7 +4349,7 @@ S: Supported
1099 F: drivers/scsi/cxgbi/cxgb3i
1100
1101 CXGB3 IWARP RNIC DRIVER (IW_CXGB3)
1102-M: Steve Wise <swise@chelsio.com>
1103+M: Potnuri Bharat Teja <bharat@chelsio.com>
1104 L: linux-rdma@vger.kernel.org
1105 W: http://www.openfabrics.org
1106 S: Supported
1107@@ -4142,14 +4357,14 @@ F: drivers/infiniband/hw/cxgb3/
1108 F: include/uapi/rdma/cxgb3-abi.h
1109
1110 CXGB4 CRYPTO DRIVER (chcr)
1111-M: Harsh Jain <harsh@chelsio.com>
1112+M: Atul Gupta <atul.gupta@chelsio.com>
1113 L: linux-crypto@vger.kernel.org
1114 W: http://www.chelsio.com
1115 S: Supported
1116 F: drivers/crypto/chelsio
1117
1118 CXGB4 ETHERNET DRIVER (CXGB4)
1119-M: Arjun Vynipadath <arjun@chelsio.com>
1120+M: Vishal Kulkarni <vishal@chelsio.com>
1121 L: netdev@vger.kernel.org
1122 W: http://www.chelsio.com
1123 S: Supported
1124@@ -4163,7 +4378,7 @@ S: Supported
1125 F: drivers/scsi/cxgbi/cxgb4i
1126
1127 CXGB4 IWARP RNIC DRIVER (IW_CXGB4)
1128-M: Steve Wise <swise@chelsio.com>
1129+M: Potnuri Bharat Teja <bharat@chelsio.com>
1130 L: linux-rdma@vger.kernel.org
1131 W: http://www.openfabrics.org
1132 S: Supported
1133@@ -4179,7 +4394,7 @@ F: drivers/net/ethernet/chelsio/cxgb4vf/
1134
1135 CXL (IBM Coherent Accelerator Processor Interface CAPI) DRIVER
1136 M: Frederic Barrat <fbarrat@linux.ibm.com>
1137-M: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
1138+M: Andrew Donnellan <ajd@linux.ibm.com>
1139 L: linuxppc-dev@lists.ozlabs.org
1140 S: Supported
1141 F: arch/powerpc/platforms/powernv/pci-cxl.c
1142@@ -4439,6 +4654,7 @@ S: Maintained
1143 F: drivers/devfreq/
1144 F: include/linux/devfreq.h
1145 F: Documentation/devicetree/bindings/devfreq/
1146+F: include/trace/events/devfreq.h
1147
1148 DEVICE FREQUENCY EVENT (DEVFREQ-EVENT)
1149 M: Chanwoo Choi <cw00.choi@samsung.com>
1150@@ -4486,7 +4702,7 @@ DIALOG SEMICONDUCTOR DRIVERS
1151 M: Support Opensource <support.opensource@diasemi.com>
1152 W: http://www.dialog-semiconductor.com/products
1153 S: Supported
1154-F: Documentation/hwmon/da90??
1155+F: Documentation/hwmon/da90??.rst
1156 F: Documentation/devicetree/bindings/mfd/da90*.txt
1157 F: Documentation/devicetree/bindings/input/da90??-onkey.txt
1158 F: Documentation/devicetree/bindings/thermal/da90??-thermal.txt
1159@@ -4533,10 +4749,11 @@ S: Maintained
1160 F: drivers/i2c/busses/i2c-diolan-u2c.c
1161
1162 FILESYSTEM DIRECT ACCESS (DAX)
1163-M: Matthew Wilcox <willy@infradead.org>
1164-M: Ross Zwisler <zwisler@kernel.org>
1165-M: Jan Kara <jack@suse.cz>
1166+M: Dan Williams <dan.j.williams@intel.com>
1167+R: Matthew Wilcox <willy@infradead.org>
1168+R: Jan Kara <jack@suse.cz>
1169 L: linux-fsdevel@vger.kernel.org
1170+L: linux-nvdimm@lists.01.org
1171 S: Supported
1172 F: fs/dax.c
1173 F: include/linux/dax.h
1174@@ -4544,9 +4761,9 @@ F: include/trace/events/fs_dax.h
1175
1176 DEVICE DIRECT ACCESS (DAX)
1177 M: Dan Williams <dan.j.williams@intel.com>
1178-M: Dave Jiang <dave.jiang@intel.com>
1179-M: Ross Zwisler <zwisler@kernel.org>
1180 M: Vishal Verma <vishal.l.verma@intel.com>
1181+M: Keith Busch <keith.busch@intel.com>
1182+M: Dave Jiang <dave.jiang@intel.com>
1183 L: linux-nvdimm@lists.01.org
1184 S: Supported
1185 F: drivers/dax/
1186@@ -4636,7 +4853,7 @@ DME1737 HARDWARE MONITOR DRIVER
1187 M: Juerg Haefliger <juergh@gmail.com>
1188 L: linux-hwmon@vger.kernel.org
1189 S: Maintained
1190-F: Documentation/hwmon/dme1737
1191+F: Documentation/hwmon/dme1737.rst
1192 F: drivers/hwmon/dme1737.c
1193
1194 DMI/SMBIOS SUPPORT
1195@@ -4781,6 +4998,14 @@ M: Dave Airlie <airlied@redhat.com>
1196 S: Odd Fixes
1197 F: drivers/gpu/drm/ast/
1198
1199+DRM DRIVER FOR ASPEED BMC GFX
1200+M: Joel Stanley <joel@jms.id.au>
1201+L: linux-aspeed@lists.ozlabs.org
1202+T: git git://anongit.freedesktop.org/drm/drm-misc
1203+S: Supported
1204+F: drivers/gpu/drm/aspeed/
1205+F: Documentation/devicetree/bindings/gpu/aspeed-gfx.txt
1206+
1207 DRM DRIVER FOR BOCHS VIRTUAL GPU
1208 M: Gerd Hoffmann <kraxel@redhat.com>
1209 L: virtualization@lists.linux-foundation.org
1210@@ -4794,6 +5019,12 @@ T: git git://anongit.freedesktop.org/drm/drm-misc
1211 S: Maintained
1212 F: drivers/gpu/drm/tve200/
1213
1214+DRM DRIVER FOR FEIYANG FY07024DI26A30-D MIPI-DSI LCD PANELS
1215+M: Jagan Teki <jagan@amarulasolutions.com>
1216+S: Maintained
1217+F: drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
1218+F: Documentation/devicetree/bindings/display/panel/feiyang,fy07024di26a30d.txt
1219+
1220 DRM DRIVER FOR ILITEK ILI9225 PANELS
1221 M: David Lechner <david@lechnology.com>
1222 S: Maintained
1223@@ -4830,10 +5061,11 @@ F: Documentation/devicetree/bindings/display/multi-inno,mi0283qt.txt
1224
1225 DRM DRIVER FOR MSM ADRENO GPU
1226 M: Rob Clark <robdclark@gmail.com>
1227+M: Sean Paul <sean@poorly.run>
1228 L: linux-arm-msm@vger.kernel.org
1229 L: dri-devel@lists.freedesktop.org
1230 L: freedreno@lists.freedesktop.org
1231-T: git git://people.freedesktop.org/~robclark/linux
1232+T: git https://gitlab.freedesktop.org/drm/msm.git
1233 S: Maintained
1234 F: drivers/gpu/drm/msm/
1235 F: include/uapi/drm/msm_drm.h
1236@@ -4873,6 +5105,7 @@ DRM DRIVER FOR QXL VIRTUAL GPU
1237 M: Dave Airlie <airlied@redhat.com>
1238 M: Gerd Hoffmann <kraxel@redhat.com>
1239 L: virtualization@lists.linux-foundation.org
1240+L: spice-devel@lists.freedesktop.org
1241 T: git git://anongit.freedesktop.org/drm/drm-misc
1242 S: Maintained
1243 F: drivers/gpu/drm/qxl/
1244@@ -4883,6 +5116,12 @@ S: Orphan / Obsolete
1245 F: drivers/gpu/drm/r128/
1246 F: include/uapi/drm/r128_drm.h
1247
1248+DRM DRIVER FOR ROCKTECH JH057N00900 PANELS
1249+M: Guido Günther <agx@sigxcpu.org>
1250+S: Maintained
1251+F: drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
1252+F: Documentation/devicetree/bindings/display/panel/rocktech,jh057n00900.txt
1253+
1254 DRM DRIVER FOR SAVAGE VIDEO CARDS
1255 S: Orphan / Obsolete
1256 F: drivers/gpu/drm/savage/
1257@@ -4893,6 +5132,12 @@ S: Orphan / Obsolete
1258 F: drivers/gpu/drm/sis/
1259 F: include/uapi/drm/sis_drm.h
1260
1261+DRM DRIVER FOR SITRONIX ST7701 PANELS
1262+M: Jagan Teki <jagan@amarulasolutions.com>
1263+S: Maintained
1264+F: drivers/gpu/drm/panel/panel-sitronix-st7701.c
1265+F: Documentation/devicetree/bindings/display/panel/sitronix,st7701.txt
1266+
1267 DRM DRIVER FOR SITRONIX ST7586 PANELS
1268 M: David Lechner <david@lechnology.com>
1269 S: Maintained
1270@@ -4909,6 +5154,13 @@ DRM DRIVER FOR TDFX VIDEO CARDS
1271 S: Orphan / Obsolete
1272 F: drivers/gpu/drm/tdfx/
1273
1274+DRM DRIVER FOR TPO TPG110 PANELS
1275+M: Linus Walleij <linus.walleij@linaro.org>
1276+T: git git://anongit.freedesktop.org/drm/drm-misc
1277+S: Maintained
1278+F: drivers/gpu/drm/panel/panel-tpo-tpg110.c
1279+F: Documentation/devicetree/bindings/display/panel/tpo,tpg110.txt
1280+
1281 DRM DRIVER FOR USB DISPLAYLINK VIDEO ADAPTERS
1282 M: Dave Airlie <airlied@redhat.com>
1283 R: Sean Paul <sean@poorly.run>
1284@@ -4917,6 +5169,23 @@ S: Odd Fixes
1285 F: drivers/gpu/drm/udl/
1286 T: git git://anongit.freedesktop.org/drm/drm-misc
1287
1288+DRM DRIVER FOR VIRTUALBOX VIRTUAL GPU
1289+M: Hans de Goede <hdegoede@redhat.com>
1290+L: dri-devel@lists.freedesktop.org
1291+S: Maintained
1292+F: drivers/gpu/drm/vboxvideo/
1293+T: git git://anongit.freedesktop.org/drm/drm-misc
1294+
1295+DRM DRIVER FOR VIRTUAL KERNEL MODESETTING (VKMS)
1296+M: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
1297+R: Haneen Mohammed <hamohammed.sa@gmail.com>
1298+R: Daniel Vetter <daniel@ffwll.ch>
1299+T: git git://anongit.freedesktop.org/drm/drm-misc
1300+S: Maintained
1301+L: dri-devel@lists.freedesktop.org
1302+F: drivers/gpu/drm/vkms/
1303+F: Documentation/gpu/vkms.rst
1304+
1305 DRM DRIVER FOR VMWARE VIRTUAL GPU
1306 M: "VMware Graphics" <linux-graphics-maintainer@vmware.com>
1307 M: Thomas Hellstrom <thellstrom@vmware.com>
1308@@ -4986,7 +5255,6 @@ F: Documentation/devicetree/bindings/display/atmel/
1309 T: git git://anongit.freedesktop.org/drm/drm-misc
1310
1311 DRM DRIVERS FOR BRIDGE CHIPS
1312-M: Archit Taneja <architt@codeaurora.org>
1313 M: Andrzej Hajda <a.hajda@samsung.com>
1314 R: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
1315 S: Maintained
1316@@ -5042,6 +5310,15 @@ S: Maintained
1317 F: drivers/gpu/drm/hisilicon/
1318 F: Documentation/devicetree/bindings/display/hisilicon/
1319
1320+DRM DRIVERS FOR LIMA
1321+M: Qiang Yu <yuq825@gmail.com>
1322+L: dri-devel@lists.freedesktop.org
1323+L: lima@lists.freedesktop.org (moderated for non-subscribers)
1324+S: Maintained
1325+F: drivers/gpu/drm/lima/
1326+F: include/uapi/drm/lima_drm.h
1327+T: git git://anongit.freedesktop.org/drm/drm-misc
1328+
1329 DRM DRIVERS FOR MEDIATEK
1330 M: CK Hu <ck.hu@mediatek.com>
1331 M: Philipp Zabel <p.zabel@pengutronix.de>
1332@@ -5141,7 +5418,7 @@ DRM DRIVERS FOR VIVANTE GPU IP
1333 M: Lucas Stach <l.stach@pengutronix.de>
1334 R: Russell King <linux+etnaviv@armlinux.org.uk>
1335 R: Christian Gmeiner <christian.gmeiner@gmail.com>
1336-L: etnaviv@lists.freedesktop.org
1337+L: etnaviv@lists.freedesktop.org (moderated for non-subscribers)
1338 L: dri-devel@lists.freedesktop.org
1339 S: Maintained
1340 F: drivers/gpu/drm/etnaviv/
1341@@ -5178,7 +5455,7 @@ DRM DRIVERS FOR XEN
1342 M: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
1343 T: git git://anongit.freedesktop.org/drm/drm-misc
1344 L: dri-devel@lists.freedesktop.org
1345-L: xen-devel@lists.xen.org
1346+L: xen-devel@lists.xenproject.org (moderated for non-subscribers)
1347 S: Supported
1348 F: drivers/gpu/drm/xen/
1349 F: Documentation/gpu/xen-front.rst
1350@@ -5396,6 +5673,12 @@ L: linux-edac@vger.kernel.org
1351 S: Maintained
1352 F: drivers/edac/amd64_edac*
1353
1354+EDAC-AST2500
1355+M: Stefan Schaeckeler <sschaeck@cisco.com>
1356+S: Supported
1357+F: drivers/edac/aspeed_edac.c
1358+F: Documentation/devicetree/bindings/edac/aspeed-sdram-edac.txt
1359+
1360 EDAC-CALXEDA
1361 M: Robert Richter <rric@kernel.org>
1362 L: linux-edac@vger.kernel.org
1363@@ -5420,6 +5703,7 @@ F: drivers/edac/thunderx_edac*
1364 EDAC-CORE
1365 M: Borislav Petkov <bp@alien8.de>
1366 M: Mauro Carvalho Chehab <mchehab@kernel.org>
1367+R: James Morse <james.morse@arm.com>
1368 L: linux-edac@vger.kernel.org
1369 T: git git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp.git for-next
1370 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac.git linux_next
1371@@ -5452,6 +5736,12 @@ L: linux-edac@vger.kernel.org
1372 S: Maintained
1373 F: drivers/edac/ghes_edac.c
1374
1375+EDAC-I10NM
1376+M: Tony Luck <tony.luck@intel.com>
1377+L: linux-edac@vger.kernel.org
1378+S: Maintained
1379+F: drivers/edac/i10nm_base.c
1380+
1381 EDAC-I3000
1382 L: linux-edac@vger.kernel.org
1383 S: Orphan
1384@@ -5533,7 +5823,7 @@ EDAC-SKYLAKE
1385 M: Tony Luck <tony.luck@intel.com>
1386 L: linux-edac@vger.kernel.org
1387 S: Maintained
1388-F: drivers/edac/skx_edac.c
1389+F: drivers/edac/skx_*.c
1390
1391 EDAC-TI
1392 M: Tero Kristo <t-kristo@ti.com>
1393@@ -5552,7 +5842,7 @@ F: drivers/edac/qcom_edac.c
1394 EDIROL UA-101/UA-1000 DRIVER
1395 M: Clemens Ladisch <clemens@ladisch.de>
1396 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
1397-T: git git://git.alsa-project.org/alsa-kernel.git
1398+T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
1399 S: Maintained
1400 F: sound/usb/misc/ua101.c
1401
1402@@ -5689,7 +5979,7 @@ L: netdev@vger.kernel.org
1403 S: Maintained
1404 F: Documentation/ABI/testing/sysfs-bus-mdio
1405 F: Documentation/devicetree/bindings/net/mdio*
1406-F: Documentation/networking/phy.txt
1407+F: Documentation/networking/phy.rst
1408 F: drivers/net/phy/
1409 F: drivers/of/of_mdio.c
1410 F: drivers/of/of_net.c
1411@@ -5791,7 +6081,7 @@ F71805F HARDWARE MONITORING DRIVER
1412 M: Jean Delvare <jdelvare@suse.com>
1413 L: linux-hwmon@vger.kernel.org
1414 S: Maintained
1415-F: Documentation/hwmon/f71805f
1416+F: Documentation/hwmon/f71805f.rst
1417 F: drivers/hwmon/f71805f.c
1418
1419 FADDR2LINE
1420@@ -5852,7 +6142,7 @@ S: Maintained
1421 F: drivers/media/tuners/fc2580*
1422
1423 FCOE SUBSYSTEM (libfc, libfcoe, fcoe)
1424-M: Johannes Thumshirn <jth@kernel.org>
1425+M: Hannes Reinecke <hare@suse.de>
1426 L: linux-scsi@vger.kernel.org
1427 W: www.Open-FCoE.org
1428 S: Supported
1429@@ -5879,6 +6169,7 @@ L: linux-fsdevel@vger.kernel.org
1430 S: Maintained
1431 F: fs/*
1432 F: include/linux/fs.h
1433+F: include/linux/fs_types.h
1434 F: include/uapi/linux/fs.h
1435
1436 FINTEK F75375S HARDWARE MONITOR AND FAN CONTROLLER DRIVER
1437@@ -5891,7 +6182,7 @@ F: include/linux/f75375s.h
1438 FIREWIRE AUDIO DRIVERS
1439 M: Clemens Ladisch <clemens@ladisch.de>
1440 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
1441-T: git git://git.alsa-project.org/alsa-kernel.git
1442+T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
1443 S: Maintained
1444 F: sound/firewire/
1445
1446@@ -5953,7 +6244,6 @@ F: include/linux/ipmi-fru.h
1447 K: fmc_d.*register
1448
1449 FPGA MANAGER FRAMEWORK
1450-M: Alan Tull <atull@kernel.org>
1451 M: Moritz Fischer <mdf@kernel.org>
1452 L: linux-fpga@vger.kernel.org
1453 S: Maintained
1454@@ -6021,6 +6311,12 @@ L: linuxppc-dev@lists.ozlabs.org
1455 S: Maintained
1456 F: drivers/dma/fsldma.*
1457
1458+FREESCALE ENETC ETHERNET DRIVERS
1459+M: Claudiu Manoil <claudiu.manoil@nxp.com>
1460+L: netdev@vger.kernel.org
1461+S: Maintained
1462+F: drivers/net/ethernet/freescale/enetc/
1463+
1464 FREESCALE eTSEC ETHERNET DRIVER (GIANFAR)
1465 M: Claudiu Manoil <claudiu.manoil@nxp.com>
1466 L: netdev@vger.kernel.org
1467@@ -6084,15 +6380,17 @@ FREESCALE QORIQ PTP CLOCK DRIVER
1468 M: Yangbo Lu <yangbo.lu@nxp.com>
1469 L: netdev@vger.kernel.org
1470 S: Maintained
1471+F: drivers/net/ethernet/freescale/enetc/enetc_ptp.c
1472 F: drivers/ptp/ptp_qoriq.c
1473+F: drivers/ptp/ptp_qoriq_debugfs.c
1474 F: include/linux/fsl/ptp_qoriq.h
1475 F: Documentation/devicetree/bindings/ptp/ptp-qoriq.txt
1476
1477 FREESCALE QUAD SPI DRIVER
1478 M: Han Xu <han.xu@nxp.com>
1479-L: linux-mtd@lists.infradead.org
1480+L: linux-spi@vger.kernel.org
1481 S: Maintained
1482-F: drivers/mtd/spi-nor/fsl-quadspi.c
1483+F: drivers/spi/spi-fsl-qspi.c
1484
1485 FREESCALE QUICC ENGINE LIBRARY
1486 M: Qiang Zhao <qiang.zhao@nxp.com>
1487@@ -6143,7 +6441,7 @@ FREESCALE SOC SOUND DRIVERS
1488 M: Timur Tabi <timur@kernel.org>
1489 M: Nicolin Chen <nicoleotsuka@gmail.com>
1490 M: Xiubo Li <Xiubo.Lee@gmail.com>
1491-R: Fabio Estevam <fabio.estevam@nxp.com>
1492+R: Fabio Estevam <festevam@gmail.com>
1493 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
1494 L: linuxppc-dev@lists.ozlabs.org
1495 S: Maintained
1496@@ -6191,9 +6489,10 @@ F: include/linux/fscache*.h
1497 FSCRYPT: FILE SYSTEM LEVEL ENCRYPTION SUPPORT
1498 M: Theodore Y. Ts'o <tytso@mit.edu>
1499 M: Jaegeuk Kim <jaegeuk@kernel.org>
1500+M: Eric Biggers <ebiggers@kernel.org>
1501 L: linux-fscrypt@vger.kernel.org
1502 Q: https://patchwork.kernel.org/project/linux-fscrypt/list/
1503-T: git git://git.kernel.org/pub/scm/linux/kernel/git/tytso/fscrypt.git
1504+T: git git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt.git
1505 S: Supported
1506 F: fs/crypto/
1507 F: include/linux/fscrypt*.h
1508@@ -6254,7 +6553,6 @@ L: linux-kernel@vger.kernel.org
1509 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking/core
1510 S: Maintained
1511 F: kernel/futex.c
1512-F: kernel/futex_compat.c
1513 F: include/asm-generic/futex.h
1514 F: include/linux/futex.h
1515 F: include/uapi/linux/futex.h
1516@@ -6307,7 +6605,7 @@ S: Maintained
1517 F: drivers/media/radio/radio-gemtek*
1518
1519 GENERIC GPIO I2C DRIVER
1520-M: Haavard Skinnemoen <hskinnemoen@gmail.com>
1521+M: Wolfram Sang <wsa+renesas@sang-engineering.com>
1522 S: Supported
1523 F: drivers/i2c/busses/i2c-gpio.c
1524 F: include/linux/platform_data/i2c-gpio.h
1525@@ -6439,7 +6737,7 @@ M: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
1526 L: linux-gpio@vger.kernel.org
1527 L: linux-acpi@vger.kernel.org
1528 S: Maintained
1529-F: Documentation/acpi/gpio-properties.txt
1530+F: Documentation/firmware-guide/acpi/gpio-properties.rst
1531 F: drivers/gpio/gpiolib-acpi.c
1532
1533 GPIO IR Transmitter
1534@@ -6639,6 +6937,15 @@ F: drivers/clocksource/h8300_*.c
1535 F: drivers/clk/h8300/
1536 F: drivers/irqchip/irq-renesas-h8*.c
1537
1538+HABANALABS PCI DRIVER
1539+M: Oded Gabbay <oded.gabbay@gmail.com>
1540+T: git https://github.com/HabanaAI/linux.git
1541+S: Supported
1542+F: drivers/misc/habanalabs/
1543+F: include/uapi/misc/habanalabs.h
1544+F: Documentation/ABI/testing/sysfs-driver-habanalabs
1545+F: Documentation/ABI/testing/debugfs-driver-habanalabs
1546+
1547 HACKRF MEDIA DRIVER
1548 M: Antti Palosaari <crope@iki.fi>
1549 L: linux-media@vger.kernel.org
1550@@ -6996,7 +7303,7 @@ M: Haiyang Zhang <haiyangz@microsoft.com>
1551 M: Stephen Hemminger <sthemmin@microsoft.com>
1552 M: Sasha Levin <sashal@kernel.org>
1553 T: git git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git
1554-L: devel@linuxdriverproject.org
1555+L: linux-hyperv@vger.kernel.org
1556 S: Supported
1557 F: Documentation/networking/device_drivers/microsoft/netvsc.txt
1558 F: arch/x86/include/asm/mshyperv.h
1559@@ -7012,6 +7319,7 @@ F: drivers/net/hyperv/
1560 F: drivers/scsi/storvsc_drv.c
1561 F: drivers/uio/uio_hv_generic.c
1562 F: drivers/video/fbdev/hyperv_fb.c
1563+F: drivers/iommu/hyperv_iommu.c
1564 F: net/vmw_vsock/hyperv_transport.c
1565 F: include/linux/hyperv.h
1566 F: include/uapi/linux/hyperv.h
1567@@ -7054,6 +7362,7 @@ I2C MV64XXX MARVELL AND ALLWINNER DRIVER
1568 M: Gregory CLEMENT <gregory.clement@bootlin.com>
1569 L: linux-i2c@vger.kernel.org
1570 S: Maintained
1571+F: Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
1572 F: drivers/i2c/busses/i2c-mv64xxx.c
1573
1574 I2C OVER PARALLEL PORT
1575@@ -7161,6 +7470,7 @@ F: drivers/i2c/i2c-stub.c
1576 I3C SUBSYSTEM
1577 M: Boris Brezillon <bbrezillon@kernel.org>
1578 L: linux-i3c@lists.infradead.org
1579+C: irc://chat.freenode.net/linux-i3c
1580 T: git git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux.git
1581 S: Maintained
1582 F: Documentation/ABI/testing/sysfs-bus-i3c
1583@@ -7168,7 +7478,6 @@ F: Documentation/devicetree/bindings/i3c/
1584 F: Documentation/driver-api/i3c
1585 F: drivers/i3c/
1586 F: include/linux/i3c/
1587-F: include/dt-bindings/i3c/
1588
1589 I3C DRIVER FOR SYNOPSYS DESIGNWARE
1590 M: Vitor Soares <vitor.soares@synopsys.com>
1591@@ -7221,13 +7530,12 @@ S: Supported
1592 F: drivers/net/ethernet/ibm/ibmvnic.*
1593
1594 IBM Power Virtual Accelerator Switchboard
1595-M: Sukadev Bhattiprolu
1596+M: Sukadev Bhattiprolu <sukadev@linux.ibm.com>
1597 L: linuxppc-dev@lists.ozlabs.org
1598 S: Supported
1599 F: arch/powerpc/platforms/powernv/vas*
1600 F: arch/powerpc/platforms/powernv/copy-paste.h
1601 F: arch/powerpc/include/asm/vas.h
1602-F: arch/powerpc/include/uapi/asm/vas.h
1603
1604 IBM Power Virtual Ethernet Device Driver
1605 M: Thomas Falcon <tlfalcon@linux.ibm.com>
1606@@ -7274,14 +7582,14 @@ F: drivers/crypto/vmx/ghash*
1607 F: drivers/crypto/vmx/ppc-xlate.pl
1608
1609 IBM Power PCI Hotplug Driver for RPA-compliant PPC64 platform
1610-M: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
1611+M: Tyrel Datwyler <tyreld@linux.ibm.com>
1612 L: linux-pci@vger.kernel.org
1613 L: linuxppc-dev@lists.ozlabs.org
1614 S: Supported
1615 F: drivers/pci/hotplug/rpaphp*
1616
1617 IBM Power IO DLPAR Driver for RPA-compliant PPC64 platform
1618-M: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
1619+M: Tyrel Datwyler <tyreld@linux.ibm.com>
1620 L: linux-pci@vger.kernel.org
1621 L: linuxppc-dev@lists.ozlabs.org
1622 S: Supported
1623@@ -7351,7 +7659,7 @@ F: include/net/mac802154.h
1624 F: include/net/af_ieee802154.h
1625 F: include/net/cfg802154.h
1626 F: include/net/ieee802154_netdev.h
1627-F: Documentation/networking/ieee802154.txt
1628+F: Documentation/networking/ieee802154.rst
1629
1630 IFE PROTOCOL
1631 M: Yotam Gigi <yotam.gi@gmail.com>
1632@@ -7453,7 +7761,7 @@ INA209 HARDWARE MONITOR DRIVER
1633 M: Guenter Roeck <linux@roeck-us.net>
1634 L: linux-hwmon@vger.kernel.org
1635 S: Maintained
1636-F: Documentation/hwmon/ina209
1637+F: Documentation/hwmon/ina209.rst
1638 F: Documentation/devicetree/bindings/hwmon/ina2xx.txt
1639 F: drivers/hwmon/ina209.c
1640
1641@@ -7461,7 +7769,7 @@ INA2XX HARDWARE MONITOR DRIVER
1642 M: Guenter Roeck <linux@roeck-us.net>
1643 L: linux-hwmon@vger.kernel.org
1644 S: Maintained
1645-F: Documentation/hwmon/ina2xx
1646+F: Documentation/hwmon/ina2xx.rst
1647 F: drivers/hwmon/ina2xx.c
1648 F: include/linux/platform_data/ina2xx.h
1649
1650@@ -7488,6 +7796,10 @@ F: drivers/infiniband/
1651 F: include/uapi/linux/if_infiniband.h
1652 F: include/uapi/rdma/
1653 F: include/rdma/
1654+F: include/trace/events/ib_mad.h
1655+F: include/trace/events/ib_umad.h
1656+F: samples/bpf/ibumad_kern.c
1657+F: samples/bpf/ibumad_user.c
1658
1659 INGENIC JZ4780 DMA Driver
1660 M: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com>
1661@@ -7498,7 +7810,7 @@ INGENIC JZ4780 NAND DRIVER
1662 M: Harvey Hunt <harveyhuntnexus@gmail.com>
1663 L: linux-mtd@lists.infradead.org
1664 S: Maintained
1665-F: drivers/mtd/nand/raw/jz4780_*
1666+F: drivers/mtd/nand/raw/ingenic/
1667
1668 INOTIFY
1669 M: Jan Kara <jack@suse.cz>
1670@@ -7695,7 +8007,6 @@ M: Yong Zhi <yong.zhi@intel.com>
1671 M: Sakari Ailus <sakari.ailus@linux.intel.com>
1672 M: Bingbu Cao <bingbu.cao@intel.com>
1673 R: Tian Shu Qiu <tian.shu.qiu@intel.com>
1674-R: Jian Xu Zheng <jian.xu.zheng@intel.com>
1675 L: linux-media@vger.kernel.org
1676 S: Maintained
1677 F: drivers/media/pci/intel/ipu3/
1678@@ -7712,10 +8023,10 @@ F: Documentation/media/v4l-drivers/ipu3.rst
1679 INTEL IXP4XX QMGR, NPE, ETHERNET and HSS SUPPORT
1680 M: Krzysztof Halasa <khalasa@piap.pl>
1681 S: Maintained
1682-F: arch/arm/mach-ixp4xx/include/mach/qmgr.h
1683-F: arch/arm/mach-ixp4xx/include/mach/npe.h
1684-F: arch/arm/mach-ixp4xx/ixp4xx_qmgr.c
1685-F: arch/arm/mach-ixp4xx/ixp4xx_npe.c
1686+F: include/linux/soc/ixp4xx/qmgr.h
1687+F: include/linux/soc/ixp4xx/npe.h
1688+F: drivers/soc/ixp4xx/ixp4xx-qmgr.c
1689+F: drivers/soc/ixp4xx/ixp4xx-npe.c
1690 F: drivers/net/ethernet/xscale/ixp4xx_eth.c
1691 F: drivers/net/wan/ixp4xx_hss.c
1692
1693@@ -7880,6 +8191,17 @@ L: linux-gpio@vger.kernel.org
1694 S: Maintained
1695 F: drivers/gpio/gpio-intel-mid.c
1696
1697+INTERCONNECT API
1698+M: Georgi Djakov <georgi.djakov@linaro.org>
1699+L: linux-pm@vger.kernel.org
1700+S: Maintained
1701+F: Documentation/interconnect/
1702+F: Documentation/devicetree/bindings/interconnect/
1703+F: drivers/interconnect/
1704+F: include/dt-bindings/interconnect/
1705+F: include/linux/interconnect-provider.h
1706+F: include/linux/interconnect.h
1707+
1708 INVENSENSE MPU-3050 GYROSCOPE DRIVER
1709 M: Linus Walleij <linus.walleij@linaro.org>
1710 L: linux-iio@vger.kernel.org
1711@@ -7922,6 +8244,16 @@ F: include/linux/iommu.h
1712 F: include/linux/of_iommu.h
1713 F: include/linux/iova.h
1714
1715+IO_URING
1716+M: Jens Axboe <axboe@kernel.dk>
1717+L: linux-block@vger.kernel.org
1718+L: linux-fsdevel@vger.kernel.org
1719+T: git git://git.kernel.dk/linux-block
1720+T: git git://git.kernel.dk/liburing
1721+S: Maintained
1722+F: fs/io_uring.c
1723+F: include/uapi/linux/io_uring.h
1724+
1725 IP MASQUERADING
1726 M: Juanjo Ciarlante <jjciarla@raiz.uncu.edu.ar>
1727 S: Maintained
1728@@ -8070,7 +8402,7 @@ IT87 HARDWARE MONITORING DRIVER
1729 M: Jean Delvare <jdelvare@suse.com>
1730 L: linux-hwmon@vger.kernel.org
1731 S: Maintained
1732-F: Documentation/hwmon/it87
1733+F: Documentation/hwmon/it87.rst
1734 F: drivers/hwmon/it87.c
1735
1736 IT913X MEDIA DRIVER
1737@@ -8114,7 +8446,7 @@ M: Guenter Roeck <linux@roeck-us.net>
1738 L: linux-hwmon@vger.kernel.org
1739 S: Maintained
1740 F: drivers/hwmon/jc42.c
1741-F: Documentation/hwmon/jc42
1742+F: Documentation/hwmon/jc42.rst
1743
1744 JFS FILESYSTEM
1745 M: Dave Kleikamp <shaggy@kernel.org>
1746@@ -8133,9 +8465,11 @@ F: drivers/net/ethernet/jme.*
1747
1748 JOURNALLING FLASH FILE SYSTEM V2 (JFFS2)
1749 M: David Woodhouse <dwmw2@infradead.org>
1750+M: Richard Weinberger <richard@nod.at>
1751 L: linux-mtd@lists.infradead.org
1752 W: http://www.linux-mtd.infradead.org/doc/jffs2.html
1753-S: Maintained
1754+T: git git://git.infradead.org/ubifs-2.6.git
1755+S: Odd Fixes
1756 F: fs/jffs2/
1757 F: include/uapi/linux/jffs2.h
1758
1759@@ -8162,14 +8496,14 @@ K10TEMP HARDWARE MONITORING DRIVER
1760 M: Clemens Ladisch <clemens@ladisch.de>
1761 L: linux-hwmon@vger.kernel.org
1762 S: Maintained
1763-F: Documentation/hwmon/k10temp
1764+F: Documentation/hwmon/k10temp.rst
1765 F: drivers/hwmon/k10temp.c
1766
1767 K8TEMP HARDWARE MONITORING DRIVER
1768 M: Rudolf Marek <r.marek@assembler.cz>
1769 L: linux-hwmon@vger.kernel.org
1770 S: Maintained
1771-F: Documentation/hwmon/k8temp
1772+F: Documentation/hwmon/k8temp.rst
1773 F: drivers/hwmon/k8temp.c
1774
1775 KASAN
1776@@ -8230,6 +8564,7 @@ F: scripts/Kbuild*
1777 F: scripts/Makefile*
1778 F: scripts/basic/
1779 F: scripts/mk*
1780+F: scripts/*vmlinux*
1781 F: scripts/mod/
1782 F: scripts/package/
1783
1784@@ -8240,7 +8575,7 @@ S: Odd Fixes
1785
1786 KERNEL NFSD, SUNRPC, AND LOCKD SERVERS
1787 M: "J. Bruce Fields" <bfields@fieldses.org>
1788-M: Jeff Layton <jlayton@kernel.org>
1789+M: Chuck Lever <chuck.lever@oracle.com>
1790 L: linux-nfs@vger.kernel.org
1791 W: http://nfs.sourceforge.net/
1792 T: git git://linux-nfs.org/~bfields/linux.git
1793@@ -8256,6 +8591,7 @@ F: include/uapi/linux/sunrpc/
1794
1795 KERNEL SELFTEST FRAMEWORK
1796 M: Shuah Khan <shuah@kernel.org>
1797+M: Shuah Khan <skhan@linuxfoundation.org>
1798 L: linux-kselftest@vger.kernel.org
1799 T: git git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git
1800 Q: https://patchwork.kernel.org/project/linux-kselftest/list/
1801@@ -8286,6 +8622,7 @@ F: include/linux/kvm*
1802 F: include/kvm/iodev.h
1803 F: virt/kvm/*
1804 F: tools/kvm/
1805+F: tools/testing/selftests/kvm/
1806
1807 KERNEL VIRTUAL MACHINE FOR AMD-V (KVM/amd)
1808 M: Joerg Roedel <joro@8bytes.org>
1809@@ -8295,29 +8632,23 @@ S: Maintained
1810 F: arch/x86/include/asm/svm.h
1811 F: arch/x86/kvm/svm.c
1812
1813-KERNEL VIRTUAL MACHINE FOR ARM (KVM/arm)
1814-M: Christoffer Dall <christoffer.dall@arm.com>
1815+KERNEL VIRTUAL MACHINE FOR ARM/ARM64 (KVM/arm, KVM/arm64)
1816 M: Marc Zyngier <marc.zyngier@arm.com>
1817+R: James Morse <james.morse@arm.com>
1818+R: Julien Thierry <julien.thierry@arm.com>
1819+R: Suzuki K Pouloze <suzuki.poulose@arm.com>
1820 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
1821 L: kvmarm@lists.cs.columbia.edu
1822-W: http://systems.cs.columbia.edu/projects/kvm-arm
1823 T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git
1824-S: Supported
1825+S: Maintained
1826 F: arch/arm/include/uapi/asm/kvm*
1827 F: arch/arm/include/asm/kvm*
1828 F: arch/arm/kvm/
1829-F: virt/kvm/arm/
1830-F: include/kvm/arm_*
1831-
1832-KERNEL VIRTUAL MACHINE FOR ARM64 (KVM/arm64)
1833-M: Christoffer Dall <christoffer.dall@arm.com>
1834-M: Marc Zyngier <marc.zyngier@arm.com>
1835-L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
1836-L: kvmarm@lists.cs.columbia.edu
1837-S: Maintained
1838 F: arch/arm64/include/uapi/asm/kvm*
1839 F: arch/arm64/include/asm/kvm*
1840 F: arch/arm64/kvm/
1841+F: virt/kvm/arm/
1842+F: include/kvm/arm_*
1843
1844 KERNEL VIRTUAL MACHINE FOR MIPS (KVM/mips)
1845 M: James Hogan <jhogan@kernel.org>
1846@@ -8397,7 +8728,7 @@ F: security/keys/encrypted-keys/
1847 KEYS-TRUSTED
1848 M: James Bottomley <jejb@linux.ibm.com>
1849 M: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
1850-M: Mimi Zohar <zohar@linuxibm.com>
1851+M: Mimi Zohar <zohar@linux.ibm.com>
1852 L: linux-integrity@vger.kernel.org
1853 L: keyrings@vger.kernel.org
1854 S: Supported
1855@@ -8478,6 +8809,7 @@ L7 BPF FRAMEWORK
1856 M: John Fastabend <john.fastabend@gmail.com>
1857 M: Daniel Borkmann <daniel@iogearbox.net>
1858 L: netdev@vger.kernel.org
1859+L: bpf@vger.kernel.org
1860 S: Maintained
1861 F: include/linux/skmsg.h
1862 F: net/core/skmsg.c
1863@@ -8525,6 +8857,7 @@ F: scripts/leaking_addresses.pl
1864 LED SUBSYSTEM
1865 M: Jacek Anaszewski <jacek.anaszewski@gmail.com>
1866 M: Pavel Machek <pavel@ucw.cz>
1867+R: Dan Murphy <dmurphy@ti.com>
1868 L: linux-leds@vger.kernel.org
1869 T: git git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds.git
1870 S: Maintained
1871@@ -8639,7 +8972,6 @@ S: Maintained
1872 F: tools/lib/lockdep/
1873
1874 LIBNVDIMM BLK: MMIO-APERTURE DRIVER
1875-M: Ross Zwisler <zwisler@kernel.org>
1876 M: Dan Williams <dan.j.williams@intel.com>
1877 M: Vishal Verma <vishal.l.verma@intel.com>
1878 M: Dave Jiang <dave.jiang@intel.com>
1879@@ -8652,7 +8984,6 @@ F: drivers/nvdimm/region_devs.c
1880 LIBNVDIMM BTT: BLOCK TRANSLATION TABLE
1881 M: Vishal Verma <vishal.l.verma@intel.com>
1882 M: Dan Williams <dan.j.williams@intel.com>
1883-M: Ross Zwisler <zwisler@kernel.org>
1884 M: Dave Jiang <dave.jiang@intel.com>
1885 L: linux-nvdimm@lists.01.org
1886 Q: https://patchwork.kernel.org/project/linux-nvdimm/list/
1887@@ -8660,7 +8991,6 @@ S: Supported
1888 F: drivers/nvdimm/btt*
1889
1890 LIBNVDIMM PMEM: PERSISTENT MEMORY DRIVER
1891-M: Ross Zwisler <zwisler@kernel.org>
1892 M: Dan Williams <dan.j.williams@intel.com>
1893 M: Vishal Verma <vishal.l.verma@intel.com>
1894 M: Dave Jiang <dave.jiang@intel.com>
1895@@ -8679,9 +9009,10 @@ F: Documentation/devicetree/bindings/pmem/pmem-region.txt
1896
1897 LIBNVDIMM: NON-VOLATILE MEMORY DEVICE SUBSYSTEM
1898 M: Dan Williams <dan.j.williams@intel.com>
1899-M: Ross Zwisler <zwisler@kernel.org>
1900 M: Vishal Verma <vishal.l.verma@intel.com>
1901 M: Dave Jiang <dave.jiang@intel.com>
1902+M: Keith Busch <keith.busch@intel.com>
1903+M: Ira Weiny <ira.weiny@intel.com>
1904 L: linux-nvdimm@lists.01.org
1905 Q: https://patchwork.kernel.org/project/linux-nvdimm/list/
1906 T: git git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm.git
1907@@ -8799,7 +9130,7 @@ F: drivers/misc/lkdtm/*
1908 LINUX KERNEL MEMORY CONSISTENCY MODEL (LKMM)
1909 M: Alan Stern <stern@rowland.harvard.edu>
1910 M: Andrea Parri <andrea.parri@amarulasolutions.com>
1911-M: Will Deacon <will.deacon@arm.com>
1912+M: Will Deacon <will@kernel.org>
1913 M: Peter Zijlstra <peterz@infradead.org>
1914 M: Boqun Feng <boqun.feng@gmail.com>
1915 M: Nicholas Piggin <npiggin@gmail.com>
1916@@ -8812,7 +9143,7 @@ R: Daniel Lustig <dlustig@nvidia.com>
1917 L: linux-kernel@vger.kernel.org
1918 L: linux-arch@vger.kernel.org
1919 S: Supported
1920-T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
1921+T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
1922 F: tools/memory-model/
1923 F: Documentation/atomic_bitops.txt
1924 F: Documentation/atomic_t.txt
1925@@ -8829,10 +9160,10 @@ F: drivers/platform/x86/hp_accel.c
1926
1927 LIVE PATCHING
1928 M: Josh Poimboeuf <jpoimboe@redhat.com>
1929-M: Jessica Yu <jeyu@kernel.org>
1930 M: Jiri Kosina <jikos@kernel.org>
1931 M: Miroslav Benes <mbenes@suse.cz>
1932-R: Petr Mladek <pmladek@suse.com>
1933+M: Petr Mladek <pmladek@suse.com>
1934+R: Joe Lawrence <joe.lawrence@redhat.com>
1935 S: Maintained
1936 F: kernel/livepatch/
1937 F: include/linux/livepatch.h
1938@@ -8841,8 +9172,9 @@ F: arch/x86/kernel/livepatch.c
1939 F: Documentation/livepatch/
1940 F: Documentation/ABI/testing/sysfs-kernel-livepatch
1941 F: samples/livepatch/
1942+F: tools/testing/selftests/livepatch/
1943 L: live-patching@vger.kernel.org
1944-T: git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching.git
1945+T: git git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching.git
1946
1947 LLC (802.2)
1948 L: netdev@vger.kernel.org
1949@@ -8862,21 +9194,21 @@ LM78 HARDWARE MONITOR DRIVER
1950 M: Jean Delvare <jdelvare@suse.com>
1951 L: linux-hwmon@vger.kernel.org
1952 S: Maintained
1953-F: Documentation/hwmon/lm78
1954+F: Documentation/hwmon/lm78.rst
1955 F: drivers/hwmon/lm78.c
1956
1957 LM83 HARDWARE MONITOR DRIVER
1958 M: Jean Delvare <jdelvare@suse.com>
1959 L: linux-hwmon@vger.kernel.org
1960 S: Maintained
1961-F: Documentation/hwmon/lm83
1962+F: Documentation/hwmon/lm83.rst
1963 F: drivers/hwmon/lm83.c
1964
1965 LM90 HARDWARE MONITOR DRIVER
1966 M: Jean Delvare <jdelvare@suse.com>
1967 L: linux-hwmon@vger.kernel.org
1968 S: Maintained
1969-F: Documentation/hwmon/lm90
1970+F: Documentation/hwmon/lm90.rst
1971 F: Documentation/devicetree/bindings/hwmon/lm90.txt
1972 F: drivers/hwmon/lm90.c
1973 F: include/dt-bindings/thermal/lm90.h
1974@@ -8885,7 +9217,7 @@ LM95234 HARDWARE MONITOR DRIVER
1975 M: Guenter Roeck <linux@roeck-us.net>
1976 L: linux-hwmon@vger.kernel.org
1977 S: Maintained
1978-F: Documentation/hwmon/lm95234
1979+F: Documentation/hwmon/lm95234.rst
1980 F: drivers/hwmon/lm95234.c
1981
1982 LME2510 MEDIA DRIVER
1983@@ -8906,7 +9238,7 @@ F: Documentation/admin-guide/LSM/LoadPin.rst
1984 LOCKING PRIMITIVES
1985 M: Peter Zijlstra <peterz@infradead.org>
1986 M: Ingo Molnar <mingo@redhat.com>
1987-M: Will Deacon <will.deacon@arm.com>
1988+M: Will Deacon <will@kernel.org>
1989 L: linux-kernel@vger.kernel.org
1990 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git locking/core
1991 S: Maintained
1992@@ -8917,7 +9249,6 @@ F: arch/*/include/asm/spinlock*.h
1993 F: include/linux/rwlock*.h
1994 F: include/linux/mutex*.h
1995 F: include/linux/rwsem*.h
1996-F: arch/*/include/asm/rwsem.h
1997 F: include/linux/seqlock.h
1998 F: lib/locking*.[ch]
1999 F: kernel/locking/
2000@@ -8959,7 +9290,7 @@ LTC4261 HARDWARE MONITOR DRIVER
2001 M: Guenter Roeck <linux@roeck-us.net>
2002 L: linux-hwmon@vger.kernel.org
2003 S: Maintained
2004-F: Documentation/hwmon/ltc4261
2005+F: Documentation/hwmon/ltc4261.rst
2006 F: drivers/hwmon/ltc4261.c
2007
2008 LTC4306 I2C MULTIPLEXER DRIVER
2009@@ -9080,6 +9411,14 @@ F: drivers/gpu/drm/armada/
2010 F: include/uapi/drm/armada_drm.h
2011 F: Documentation/devicetree/bindings/display/armada/
2012
2013+MARVELL ARMADA 3700 PHY DRIVERS
2014+M: Miquel Raynal <miquel.raynal@bootlin.com>
2015+S: Maintained
2016+F: drivers/phy/marvell/phy-mvebu-a3700-comphy.c
2017+F: drivers/phy/marvell/phy-mvebu-a3700-utmi.c
2018+F: Documentation/devicetree/bindings/phy/phy-mvebu-comphy.txt
2019+F: Documentation/devicetree/bindings/phy/phy-mvebu-utmi.txt
2020+
2021 MARVELL CRYPTO DRIVER
2022 M: Boris Brezillon <bbrezillon@kernel.org>
2023 M: Arnaud Ebalard <arno@natisbad.org>
2024@@ -9182,7 +9521,7 @@ MAX16065 HARDWARE MONITOR DRIVER
2025 M: Guenter Roeck <linux@roeck-us.net>
2026 L: linux-hwmon@vger.kernel.org
2027 S: Maintained
2028-F: Documentation/hwmon/max16065
2029+F: Documentation/hwmon/max16065.rst
2030 F: drivers/hwmon/max16065.c
2031
2032 MAX2175 SDR TUNER DRIVER
2033@@ -9198,14 +9537,14 @@ F: include/uapi/linux/max2175.h
2034 MAX6650 HARDWARE MONITOR AND FAN CONTROLLER DRIVER
2035 L: linux-hwmon@vger.kernel.org
2036 S: Orphan
2037-F: Documentation/hwmon/max6650
2038+F: Documentation/hwmon/max6650.rst
2039 F: drivers/hwmon/max6650.c
2040
2041 MAX6697 HARDWARE MONITOR DRIVER
2042 M: Guenter Roeck <linux@roeck-us.net>
2043 L: linux-hwmon@vger.kernel.org
2044 S: Maintained
2045-F: Documentation/hwmon/max6697
2046+F: Documentation/hwmon/max6697.rst
2047 F: Documentation/devicetree/bindings/hwmon/max6697.txt
2048 F: drivers/hwmon/max6697.c
2049 F: include/linux/platform_data/max6697.h
2050@@ -9217,6 +9556,27 @@ S: Maintained
2051 F: Documentation/devicetree/bindings/sound/max9860.txt
2052 F: sound/soc/codecs/max9860.*
2053
2054+MAXBOTIX ULTRASONIC RANGER IIO DRIVER
2055+M: Andreas Klinger <ak@it-klinger.de>
2056+L: linux-iio@vger.kernel.org
2057+S: Maintained
2058+F: Documentation/devicetree/bindings/iio/proximity/maxbotix,mb1232.txt
2059+F: drivers/iio/proximity/mb1232.c
2060+
2061+MAXIM MAX77650 PMIC MFD DRIVER
2062+M: Bartosz Golaszewski <bgolaszewski@baylibre.com>
2063+L: linux-kernel@vger.kernel.org
2064+S: Maintained
2065+F: Documentation/devicetree/bindings/*/*max77650.txt
2066+F: Documentation/devicetree/bindings/*/max77650*.txt
2067+F: include/linux/mfd/max77650.h
2068+F: drivers/mfd/max77650.c
2069+F: drivers/regulator/max77650-regulator.c
2070+F: drivers/power/supply/max77650-charger.c
2071+F: drivers/input/misc/max77650-onkey.c
2072+F: drivers/leds/leds-max77650.c
2073+F: drivers/gpio/gpio-max77650.c
2074+
2075 MAXIM MAX77802 PMIC REGULATOR DEVICE DRIVER
2076 M: Javier Martinez Canillas <javier@dowhile0.org>
2077 L: linux-kernel@vger.kernel.org
2078@@ -9348,6 +9708,17 @@ T: git git://linuxtv.org/media_tree.git
2079 S: Maintained
2080 F: drivers/media/platform/imx-pxp.[ch]
2081
2082+MEDIA DRIVERS FOR FREESCALE IMX7
2083+M: Rui Miguel Silva <rmfrfs@gmail.com>
2084+L: linux-media@vger.kernel.org
2085+T: git git://linuxtv.org/media_tree.git
2086+S: Maintained
2087+F: Documentation/devicetree/bindings/media/imx7-csi.txt
2088+F: Documentation/devicetree/bindings/media/imx7-mipi-csi2.txt
2089+F: Documentation/media/v4l-drivers/imx7.rst
2090+F: drivers/staging/media/imx/imx7-media-csi.c
2091+F: drivers/staging/media/imx/imx7-mipi-csis.c
2092+
2093 MEDIA DRIVERS FOR HELENE
2094 M: Abylay Ospan <aospan@netup.ru>
2095 L: linux-media@vger.kernel.org
2096@@ -9574,9 +9945,17 @@ F: drivers/media/platform/mtk-vpu/
2097 F: Documentation/devicetree/bindings/media/mediatek-vcodec.txt
2098 F: Documentation/devicetree/bindings/media/mediatek-vpu.txt
2099
2100+MEDIATEK MMC/SD/SDIO DRIVER
2101+M: Chaotian Jing <chaotian.jing@mediatek.com>
2102+S: Maintained
2103+F: drivers/mmc/host/mtk-sd.c
2104+F: Documentation/devicetree/bindings/mmc/mtk-sd.txt
2105+
2106 MEDIATEK MT76 WIRELESS LAN DRIVER
2107 M: Felix Fietkau <nbd@nbd.name>
2108 M: Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
2109+R: Ryder Lee <ryder.lee@mediatek.com>
2110+R: Roy Luo <royluo@google.com>
2111 L: linux-wireless@vger.kernel.org
2112 S: Maintained
2113 F: drivers/net/wireless/mediatek/mt76/
2114@@ -9675,15 +10054,6 @@ F: drivers/net/ethernet/mellanox/mlx5/core/accel/*
2115 F: drivers/net/ethernet/mellanox/mlx5/core/fpga/*
2116 F: include/linux/mlx5/mlx5_ifc_fpga.h
2117
2118-MELLANOX ETHERNET INNOVA IPSEC DRIVER
2119-R: Boris Pismenny <borisp@mellanox.com>
2120-L: netdev@vger.kernel.org
2121-S: Supported
2122-W: http://www.mellanox.com
2123-Q: http://patchwork.ozlabs.org/project/netdev/list/
2124-F: drivers/net/ethernet/mellanox/mlx5/core/en_ipsec/*
2125-F: drivers/net/ethernet/mellanox/mlx5/core/ipsec*
2126-
2127 MELLANOX ETHERNET SWITCH DRIVERS
2128 M: Jiri Pirko <jiri@mellanox.com>
2129 M: Ido Schimmel <idosch@mellanox.com>
2130@@ -9709,6 +10079,7 @@ M: Vadim Pasternak <vadimp@mellanox.com>
2131 L: platform-driver-x86@vger.kernel.org
2132 S: Supported
2133 F: drivers/platform/mellanox/
2134+F: include/linux/platform_data/mlxreg.h
2135
2136 MELLANOX MLX4 core VPI driver
2137 M: Tariq Toukan <tariqt@mellanox.com>
2138@@ -9783,6 +10154,14 @@ F: kernel/sched/membarrier.c
2139 F: include/uapi/linux/membarrier.h
2140 F: arch/powerpc/include/asm/membarrier.h
2141
2142+MEMBLOCK
2143+M: Mike Rapoport <rppt@linux.ibm.com>
2144+L: linux-mm@kvack.org
2145+S: Maintained
2146+F: include/linux/memblock.h
2147+F: mm/memblock.c
2148+F: Documentation/core-api/boot-time-mm.rst
2149+
2150 MEMORY MANAGEMENT
2151 L: linux-mm@kvack.org
2152 W: http://www.linux-mm.org
2153@@ -9797,14 +10176,15 @@ F: mm/
2154 MEMORY TECHNOLOGY DEVICES (MTD)
2155 M: David Woodhouse <dwmw2@infradead.org>
2156 M: Brian Norris <computersforpeace@gmail.com>
2157-M: Boris Brezillon <bbrezillon@kernel.org>
2158 M: Marek Vasut <marek.vasut@gmail.com>
2159+M: Miquel Raynal <miquel.raynal@bootlin.com>
2160 M: Richard Weinberger <richard@nod.at>
2161+M: Vignesh Raghavendra <vigneshr@ti.com>
2162 L: linux-mtd@lists.infradead.org
2163 W: http://www.linux-mtd.infradead.org/
2164 Q: http://patchwork.ozlabs.org/project/linux-mtd/list/
2165-T: git git://git.infradead.org/linux-mtd.git master
2166-T: git git://git.infradead.org/linux-mtd.git mtd/next
2167+T: git git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/fixes
2168+T: git git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/next
2169 S: Maintained
2170 F: Documentation/devicetree/bindings/mtd/
2171 F: drivers/mtd/
2172@@ -9831,7 +10211,7 @@ F: drivers/mfd/menf21bmc.c
2173 F: drivers/watchdog/menf21bmc_wdt.c
2174 F: drivers/leds/leds-menf21bmc.c
2175 F: drivers/hwmon/menf21bmc_hwmon.c
2176-F: Documentation/hwmon/menf21bmc
2177+F: Documentation/hwmon/menf21bmc.rst
2178
2179 MEN Z069 WATCHDOG DRIVER
2180 M: Johannes Thumshirn <jth@kernel.org>
2181@@ -9846,9 +10226,22 @@ L: linux-amlogic@lists.infradead.org
2182 W: http://linux-meson.com/
2183 S: Supported
2184 F: drivers/media/platform/meson/ao-cec.c
2185+F: drivers/media/platform/meson/ao-cec-g12a.c
2186 F: Documentation/devicetree/bindings/media/meson-ao-cec.txt
2187 T: git git://linuxtv.org/media_tree.git
2188
2189+MESON NAND CONTROLLER DRIVER FOR AMLOGIC SOCS
2190+M: Liang Yang <liang.yang@amlogic.com>
2191+L: linux-mtd@lists.infradead.org
2192+S: Maintained
2193+F: drivers/mtd/nand/raw/meson_*
2194+F: Documentation/devicetree/bindings/mtd/amlogic,meson-nand.txt
2195+
2196+METHODE UDPU SUPPORT
2197+M: Vladimir Vid <vladimir.vid@sartura.hr>
2198+S: Maintained
2199+F: arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
2200+
2201 MICROBLAZE ARCHITECTURE
2202 M: Michal Simek <monstr@monstr.eu>
2203 W: http://www.monstr.eu/fdt/
2204@@ -9890,7 +10283,8 @@ MICROCHIP I2C DRIVER
2205 M: Ludovic Desroches <ludovic.desroches@microchip.com>
2206 L: linux-i2c@vger.kernel.org
2207 S: Supported
2208-F: drivers/i2c/busses/i2c-at91.c
2209+F: drivers/i2c/busses/i2c-at91.h
2210+F: drivers/i2c/busses/i2c-at91-*.c
2211
2212 MICROCHIP ISC DRIVER
2213 M: Eugen Hristev <eugen.hristev@microchip.com>
2214@@ -9923,7 +10317,7 @@ F: drivers/spi/spi-at91-usart.c
2215 F: Documentation/devicetree/bindings/mfd/atmel-usart.txt
2216
2217 MICROCHIP KSZ SERIES ETHERNET SWITCH DRIVER
2218-M: Woojung Huh <Woojung.Huh@microchip.com>
2219+M: Woojung Huh <woojung.huh@microchip.com>
2220 M: Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
2221 L: netdev@vger.kernel.org
2222 S: Maintained
2223@@ -10165,8 +10559,8 @@ F: arch/arm/boot/dts/mmp*
2224 F: arch/arm/mach-mmp/
2225
2226 MMU GATHER AND TLB INVALIDATION
2227-M: Will Deacon <will.deacon@arm.com>
2228-M: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
2229+M: Will Deacon <will@kernel.org>
2230+M: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
2231 M: Andrew Morton <akpm@linux-foundation.org>
2232 M: Nick Piggin <npiggin@gmail.com>
2233 M: Peter Zijlstra <peterz@infradead.org>
2234@@ -10212,7 +10606,7 @@ F: include/uapi/linux/meye.h
2235 MOXA SMARTIO/INDUSTIO/INTELLIO SERIAL CARD
2236 M: Jiri Slaby <jirislaby@gmail.com>
2237 S: Maintained
2238-F: Documentation/serial/moxa-smartio
2239+F: Documentation/serial/moxa-smartio.rst
2240 F: drivers/tty/mxser.*
2241
2242 MR800 AVERMEDIA USB FM RADIO DRIVER
2243@@ -10399,14 +10793,12 @@ S: Supported
2244 F: drivers/net/ethernet/myricom/myri10ge/
2245
2246 NAND FLASH SUBSYSTEM
2247-M: Boris Brezillon <bbrezillon@kernel.org>
2248 M: Miquel Raynal <miquel.raynal@bootlin.com>
2249 R: Richard Weinberger <richard@nod.at>
2250 L: linux-mtd@lists.infradead.org
2251 W: http://www.linux-mtd.infradead.org/
2252 Q: http://patchwork.ozlabs.org/project/linux-mtd/list/
2253-T: git git://git.infradead.org/linux-mtd.git nand/fixes
2254-T: git git://git.infradead.org/linux-mtd.git nand/next
2255+T: git git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next
2256 S: Maintained
2257 F: drivers/mtd/nand/
2258 F: include/linux/mtd/*nand*.h
2259@@ -10447,7 +10839,7 @@ NCT6775 HARDWARE MONITOR DRIVER
2260 M: Guenter Roeck <linux@roeck-us.net>
2261 L: linux-hwmon@vger.kernel.org
2262 S: Maintained
2263-F: Documentation/hwmon/nct6775
2264+F: Documentation/hwmon/nct6775.rst
2265 F: drivers/hwmon/nct6775.c
2266
2267 NET_FAILOVER MODULE
2268@@ -10525,6 +10917,7 @@ L: linux-block@vger.kernel.org
2269 L: nbd@other.debian.org
2270 F: Documentation/blockdev/nbd.txt
2271 F: drivers/block/nbd.c
2272+F: include/trace/events/nbd.h
2273 F: include/uapi/linux/nbd.h
2274
2275 NETWORK DROP MONITOR
2276@@ -10573,6 +10966,7 @@ F: Documentation/devicetree/bindings/net/dsa/
2277 F: net/dsa/
2278 F: include/net/dsa.h
2279 F: include/linux/dsa/
2280+F: include/linux/platform_data/dsa.h
2281 F: drivers/net/dsa/
2282
2283 NETWORKING [GENERAL]
2284@@ -10686,18 +11080,16 @@ S: Maintained
2285 F: drivers/net/netdevsim/*
2286
2287 NETXEN (1/10) GbE SUPPORT
2288-M: Manish Chopra <manish.chopra@cavium.com>
2289-M: Rahul Verma <rahul.verma@cavium.com>
2290-M: Dept-GELinuxNICDev@cavium.com
2291+M: Manish Chopra <manishc@marvell.com>
2292+M: Rahul Verma <rahulv@marvell.com>
2293+M: GR-Linux-NIC-Dev@marvell.com
2294 L: netdev@vger.kernel.org
2295 S: Supported
2296 F: drivers/net/ethernet/qlogic/netxen/
2297
2298 NFC SUBSYSTEM
2299-M: Samuel Ortiz <sameo@linux.intel.com>
2300-L: linux-wireless@vger.kernel.org
2301-L: linux-nfc@lists.01.org (subscribers-only)
2302-S: Supported
2303+L: netdev@vger.kernel.org
2304+S: Orphan
2305 F: net/nfc/
2306 F: include/net/nfc/
2307 F: include/uapi/linux/nfc.h
2308@@ -10788,6 +11180,12 @@ F: drivers/power/supply/bq27xxx_battery_i2c.c
2309 F: drivers/power/supply/isp1704_charger.c
2310 F: drivers/power/supply/rx51_battery.c
2311
2312+NOLIBC HEADER FILE
2313+M: Willy Tarreau <w@1wt.eu>
2314+S: Maintained
2315+T: git git://git.kernel.org/pub/scm/linux/kernel/git/wtarreau/nolibc.git
2316+F: tools/include/nolibc/
2317+
2318 NTB AMD DRIVER
2319 M: Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
2320 L: linux-ntb@googlegroups.com
2321@@ -10848,7 +11246,7 @@ F: drivers/video/fbdev/riva/
2322 F: drivers/video/fbdev/nvidia/
2323
2324 NVM EXPRESS DRIVER
2325-M: Keith Busch <keith.busch@intel.com>
2326+M: Keith Busch <kbusch@kernel.org>
2327 M: Jens Axboe <axboe@fb.com>
2328 M: Christoph Hellwig <hch@lst.de>
2329 M: Sagi Grimberg <sagi@grimberg.me>
2330@@ -10888,13 +11286,29 @@ F: Documentation/ABI/stable/sysfs-bus-nvmem
2331 F: include/linux/nvmem-consumer.h
2332 F: include/linux/nvmem-provider.h
2333
2334+NXP FXAS21002C DRIVER
2335+M: Rui Miguel Silva <rmfrfs@gmail.com>
2336+L: linux-iio@vger.kernel.org
2337+S: Maintained
2338+F: Documentation/devicetree/bindings/iio/gyroscope/fxas21002c.txt
2339+F: drivers/iio/gyro/fxas21002c_core.c
2340+F: drivers/iio/gyro/fxas21002c.h
2341+F: drivers/iio/gyro/fxas21002c_i2c.c
2342+F: drivers/iio/gyro/fxas21002c_spi.c
2343+
2344 NXP SGTL5000 DRIVER
2345-M: Fabio Estevam <fabio.estevam@nxp.com>
2346+M: Fabio Estevam <festevam@gmail.com>
2347 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
2348 S: Maintained
2349 F: Documentation/devicetree/bindings/sound/sgtl5000.txt
2350 F: sound/soc/codecs/sgtl5000*
2351
2352+NXP SJA1105 ETHERNET SWITCH DRIVER
2353+M: Vladimir Oltean <olteanv@gmail.com>
2354+L: linux-kernel@vger.kernel.org
2355+S: Maintained
2356+F: drivers/net/dsa/sja1105
2357+
2358 NXP TDA998X DRM DRIVER
2359 M: Russell King <linux@armlinux.org.uk>
2360 S: Maintained
2361@@ -10927,6 +11341,14 @@ F: lib/objagg.c
2362 F: lib/test_objagg.c
2363 F: include/linux/objagg.h
2364
2365+NXP FSPI DRIVER
2366+R: Yogesh Gaur <yogeshgaur.83@gmail.com>
2367+M: Ashish Kumar <ashish.kumar@nxp.com>
2368+L: linux-spi@vger.kernel.org
2369+S: Maintained
2370+F: drivers/spi/spi-nxp-fspi.c
2371+F: Documentation/devicetree/bindings/spi/spi-nxp-fspi.txt
2372+
2373 OBJTOOL
2374 M: Josh Poimboeuf <jpoimboe@redhat.com>
2375 M: Peter Zijlstra <peterz@infradead.org>
2376@@ -10935,7 +11357,7 @@ F: tools/objtool/
2377
2378 OCXL (Open Coherent Accelerator Processor Interface OpenCAPI) DRIVER
2379 M: Frederic Barrat <fbarrat@linux.ibm.com>
2380-M: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
2381+M: Andrew Donnellan <ajd@linux.ibm.com>
2382 L: linuxppc-dev@lists.ozlabs.org
2383 S: Supported
2384 F: arch/powerpc/platforms/powernv/ocxl.c
2385@@ -11228,6 +11650,19 @@ S: Maintained
2386 F: drivers/media/i2c/ov7740.c
2387 F: Documentation/devicetree/bindings/media/i2c/ov7740.txt
2388
2389+OMNIVISION OV9640 SENSOR DRIVER
2390+M: Petr Cvek <petrcvekcz@gmail.com>
2391+L: linux-media@vger.kernel.org
2392+S: Maintained
2393+F: drivers/media/i2c/ov9640.*
2394+
2395+OMNIVISION OV8856 SENSOR DRIVER
2396+M: Ben Kao <ben.kao@intel.com>
2397+L: linux-media@vger.kernel.org
2398+T: git git://linuxtv.org/media_tree.git
2399+S: Maintained
2400+F: drivers/media/i2c/ov8856.c
2401+
2402 OMNIVISION OV9650 SENSOR DRIVER
2403 M: Sakari Ailus <sakari.ailus@linux.intel.com>
2404 R: Akinobu Mita <akinobu.mita@gmail.com>
2405@@ -11260,6 +11695,11 @@ M: Jens Wiklander <jens.wiklander@linaro.org>
2406 S: Maintained
2407 F: drivers/tee/optee/
2408
2409+OP-TEE RANDOM NUMBER GENERATOR (RNG) DRIVER
2410+M: Sumit Garg <sumit.garg@linaro.org>
2411+S: Maintained
2412+F: drivers/char/hw_random/optee-rng.c
2413+
2414 OPA-VNIC DRIVER
2415 M: Dennis Dalessandro <dennis.dalessandro@intel.com>
2416 M: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
2417@@ -11303,10 +11743,13 @@ F: include/dt-bindings/
2418
2419 OPENCORES I2C BUS DRIVER
2420 M: Peter Korsgaard <peter@korsgaard.com>
2421+M: Andrew Lunn <andrew@lunn.ch>
2422 L: linux-i2c@vger.kernel.org
2423 S: Maintained
2424+F: Documentation/devicetree/bindings/i2c/i2c-ocores.txt
2425 F: Documentation/i2c/busses/i2c-ocores
2426 F: drivers/i2c/busses/i2c-ocores.c
2427+F: include/linux/platform_data/i2c-ocores.h
2428
2429 OPENRISC ARCHITECTURE
2430 M: Jonas Bonn <jonas@southpole.se>
2431@@ -11346,7 +11789,7 @@ F: Documentation/devicetree/bindings/opp/
2432 OPL4 DRIVER
2433 M: Clemens Ladisch <clemens@ladisch.de>
2434 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
2435-T: git git://git.alsa-project.org/alsa-kernel.git
2436+T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
2437 S: Maintained
2438 F: sound/drivers/opl4/
2439
2440@@ -11362,6 +11805,7 @@ F: include/linux/oprofile.h
2441 ORACLE CLUSTER FILESYSTEM 2 (OCFS2)
2442 M: Mark Fasheh <mark@fasheh.com>
2443 M: Joel Becker <jlbec@evilplan.org>
2444+M: Joseph Qi <joseph.qi@linux.alibaba.com>
2445 L: ocfs2-devel@oss.oracle.com (moderated for non-subscribers)
2446 W: http://ocfs2.wiki.kernel.org
2447 S: Supported
2448@@ -11385,13 +11829,6 @@ W: http://www.nongnu.org/orinoco/
2449 S: Orphan
2450 F: drivers/net/wireless/intersil/orinoco/
2451
2452-OSD LIBRARY and FILESYSTEM
2453-M: Boaz Harrosh <ooo@electrozaur.com>
2454-S: Maintained
2455-F: drivers/scsi/osd/
2456-F: include/scsi/osd_*
2457-F: fs/exofs/
2458-
2459 OV2659 OMNIVISION SENSOR DRIVER
2460 M: "Lad, Prabhakar" <prabhakar.csengg@gmail.com>
2461 L: linux-media@vger.kernel.org
2462@@ -11427,6 +11864,14 @@ L: linux-i2c@vger.kernel.org
2463 S: Orphan
2464 F: drivers/i2c/busses/i2c-pasemi.c
2465
2466+PACKING
2467+M: Vladimir Oltean <olteanv@gmail.com>
2468+L: netdev@vger.kernel.org
2469+S: Supported
2470+F: lib/packing.c
2471+F: include/linux/packing.h
2472+F: Documentation/packing.txt
2473+
2474 PADATA PARALLEL EXECUTION MECHANISM
2475 M: Steffen Klassert <steffen.klassert@secunet.com>
2476 L: linux-crypto@vger.kernel.org
2477@@ -11477,7 +11922,7 @@ F: Documentation/blockdev/paride.txt
2478 F: drivers/block/paride/
2479
2480 PARISC ARCHITECTURE
2481-M: "James E.J. Bottomley" <jejb@parisc-linux.org>
2482+M: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
2483 M: Helge Deller <deller@gmx.de>
2484 L: linux-parisc@vger.kernel.org
2485 W: http://www.parisc-linux.org/
2486@@ -11504,11 +11949,16 @@ F: lib/parman.c
2487 F: lib/test_parman.c
2488 F: include/linux/parman.h
2489
2490+PC ENGINES APU BOARD DRIVER
2491+M: Enrico Weigelt, metux IT consult <info@metux.net>
2492+S: Maintained
2493+F: drivers/platform/x86/pcengines-apuv2.c
2494+
2495 PC87360 HARDWARE MONITORING DRIVER
2496 M: Jim Cromie <jim.cromie@gmail.com>
2497 L: linux-hwmon@vger.kernel.org
2498 S: Maintained
2499-F: Documentation/hwmon/pc87360
2500+F: Documentation/hwmon/pc87360.rst
2501 F: drivers/hwmon/pc87360.c
2502
2503 PC8736x GPIO DRIVER
2504@@ -11520,7 +11970,7 @@ PC87427 HARDWARE MONITORING DRIVER
2505 M: Jean Delvare <jdelvare@suse.com>
2506 L: linux-hwmon@vger.kernel.org
2507 S: Maintained
2508-F: Documentation/hwmon/pc87427
2509+F: Documentation/hwmon/pc87427.rst
2510 F: drivers/hwmon/pc87427.c
2511
2512 PCA9532 LED DRIVER
2513@@ -11557,7 +12007,7 @@ F: Documentation/devicetree/bindings/pci/altera-pcie.txt
2514 F: drivers/pci/controller/pcie-altera.c
2515
2516 PCI DRIVER FOR APPLIEDMICRO XGENE
2517-M: Tanmay Inamdar <tinamdar@apm.com>
2518+M: Toan Le <toan@os.amperecomputing.com>
2519 L: linux-pci@vger.kernel.org
2520 L: linux-arm-kernel@lists.infradead.org
2521 S: Maintained
2522@@ -11581,7 +12031,7 @@ F: Documentation/devicetree/bindings/pci/pci-armada8k.txt
2523 F: drivers/pci/controller/dwc/pcie-armada8k.c
2524
2525 PCI DRIVER FOR CADENCE PCIE IP
2526-M: Alan Douglas <adouglas@cadence.com>
2527+M: Tom Joseph <tjoseph@cadence.com>
2528 L: linux-pci@vger.kernel.org
2529 S: Maintained
2530 F: Documentation/devicetree/bindings/pci/cdns,*.txt
2531@@ -11598,7 +12048,7 @@ S: Maintained
2532 F: drivers/pci/controller/dwc/*layerscape*
2533
2534 PCI DRIVER FOR GENERIC OF HOSTS
2535-M: Will Deacon <will.deacon@arm.com>
2536+M: Will Deacon <will@kernel.org>
2537 L: linux-pci@vger.kernel.org
2538 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
2539 S: Maintained
2540@@ -11635,7 +12085,8 @@ F: include/linux/switchtec.h
2541 F: drivers/ntb/hw/mscc/
2542
2543 PCI DRIVER FOR MOBIVEIL PCIE IP
2544-M: Subrahmanya Lingappa <l.subrahmanya@mobiveil.co.in>
2545+M: Karthikeyan Mitran <m.karthikeyan@mobiveil.co.in>
2546+M: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
2547 L: linux-pci@vger.kernel.org
2548 S: Supported
2549 F: Documentation/devicetree/bindings/pci/mobiveil-pcie.txt
2550@@ -11735,7 +12186,7 @@ F: Documentation/devicetree/bindings/pci/altera-pcie-msi.txt
2551 F: drivers/pci/controller/pcie-altera-msi.c
2552
2553 PCI MSI DRIVER FOR APPLIEDMICRO XGENE
2554-M: Duc Dang <dhdang@apm.com>
2555+M: Toan Le <toan@os.amperecomputing.com>
2556 L: linux-pci@vger.kernel.org
2557 L: linux-arm-kernel@lists.infradead.org
2558 S: Maintained
2559@@ -11769,6 +12220,12 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/pci.git/
2560 S: Supported
2561 F: drivers/pci/controller/
2562
2563+PCIE DRIVER FOR ANNAPURNA LABS
2564+M: Jonathan Chocron <jonnyc@amazon.com>
2565+L: linux-pci@vger.kernel.org
2566+S: Maintained
2567+F: drivers/pci/controller/dwc/pcie-al.c
2568+
2569 PCIE DRIVER FOR AMLOGIC MESON
2570 M: Yue Wang <yue.wang@Amlogic.com>
2571 L: linux-pci@vger.kernel.org
2572@@ -11920,6 +12377,7 @@ F: arch/*/kernel/*/*/perf_event*.c
2573 F: arch/*/include/asm/perf_event.h
2574 F: arch/*/kernel/perf_callchain.c
2575 F: arch/*/events/*
2576+F: arch/*/events/*/*
2577 F: tools/perf/
2578
2579 PERSONALITY HANDLING
2580@@ -12088,23 +12546,23 @@ S: Maintained
2581 F: Documentation/devicetree/bindings/hwmon/ibm,cffps1.txt
2582 F: Documentation/devicetree/bindings/hwmon/max31785.txt
2583 F: Documentation/devicetree/bindings/hwmon/ltc2978.txt
2584-F: Documentation/hwmon/adm1275
2585-F: Documentation/hwmon/ibm-cffps
2586-F: Documentation/hwmon/ir35221
2587-F: Documentation/hwmon/lm25066
2588-F: Documentation/hwmon/ltc2978
2589-F: Documentation/hwmon/ltc3815
2590-F: Documentation/hwmon/max16064
2591-F: Documentation/hwmon/max20751
2592-F: Documentation/hwmon/max31785
2593-F: Documentation/hwmon/max34440
2594-F: Documentation/hwmon/max8688
2595-F: Documentation/hwmon/pmbus
2596-F: Documentation/hwmon/pmbus-core
2597-F: Documentation/hwmon/tps40422
2598-F: Documentation/hwmon/ucd9000
2599-F: Documentation/hwmon/ucd9200
2600-F: Documentation/hwmon/zl6100
2601+F: Documentation/hwmon/adm1275.rst
2602+F: Documentation/hwmon/ibm-cffps.rst
2603+F: Documentation/hwmon/ir35221.rst
2604+F: Documentation/hwmon/lm25066.rst
2605+F: Documentation/hwmon/ltc2978.rst
2606+F: Documentation/hwmon/ltc3815.rst
2607+F: Documentation/hwmon/max16064.rst
2608+F: Documentation/hwmon/max20751.rst
2609+F: Documentation/hwmon/max31785.rst
2610+F: Documentation/hwmon/max34440.rst
2611+F: Documentation/hwmon/max8688.rst
2612+F: Documentation/hwmon/pmbus.rst
2613+F: Documentation/hwmon/pmbus-core.rst
2614+F: Documentation/hwmon/tps40422.rst
2615+F: Documentation/hwmon/ucd9000.rst
2616+F: Documentation/hwmon/ucd9200.rst
2617+F: Documentation/hwmon/zl6100.rst
2618 F: drivers/hwmon/pmbus/
2619 F: include/linux/pmbus.h
2620
2621@@ -12160,7 +12618,7 @@ M: Mark Rutland <mark.rutland@arm.com>
2622 M: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
2623 L: linux-arm-kernel@lists.infradead.org
2624 S: Maintained
2625-F: drivers/firmware/psci*.c
2626+F: drivers/firmware/psci/
2627 F: include/linux/psci.h
2628 F: include/uapi/linux/psci.h
2629
2630@@ -12224,14 +12682,6 @@ S: Maintained
2631 F: drivers/net/ppp/pptp.c
2632 W: http://sourceforge.net/projects/accel-pptp
2633
2634-PREEMPTIBLE KERNEL
2635-M: Robert Love <rml@tech9.net>
2636-L: kpreempt-tech@lists.sourceforge.net
2637-W: https://www.kernel.org/pub/linux/kernel/people/rml/preempt-kernel
2638-S: Supported
2639-F: Documentation/preempt-locking.txt
2640-F: include/linux/preempt.h
2641-
2642 PRINTK
2643 M: Petr Mladek <pmladek@suse.com>
2644 M: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
2645@@ -12368,6 +12818,7 @@ L: linux-media@vger.kernel.org
2646 T: git git://linuxtv.org/media_tree.git
2647 S: Odd Fixes
2648 F: drivers/media/usb/pwc/*
2649+F: include/trace/events/pwc.h
2650
2651 PWM FAN DRIVER
2652 M: Kamil Debski <kamil@wypas.org>
2653@@ -12375,7 +12826,7 @@ M: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
2654 L: linux-hwmon@vger.kernel.org
2655 S: Supported
2656 F: Documentation/devicetree/bindings/hwmon/pwm-fan.txt
2657-F: Documentation/hwmon/pwm-fan
2658+F: Documentation/hwmon/pwm-fan.rst
2659 F: drivers/hwmon/pwm-fan.c
2660
2661 PWM IR Transmitter
2662@@ -12472,8 +12923,8 @@ S: Supported
2663 F: drivers/scsi/qedi/
2664
2665 QLOGIC QL4xxx ETHERNET DRIVER
2666-M: Ariel Elior <Ariel.Elior@cavium.com>
2667-M: everest-linux-l2@cavium.com
2668+M: Ariel Elior <aelior@marvell.com>
2669+M: GR-everest-linux-l2@marvell.com
2670 L: netdev@vger.kernel.org
2671 S: Supported
2672 F: drivers/net/ethernet/qlogic/qed/
2673@@ -12481,8 +12932,8 @@ F: include/linux/qed/
2674 F: drivers/net/ethernet/qlogic/qede/
2675
2676 QLOGIC QL4xxx RDMA DRIVER
2677-M: Michal Kalderon <Michal.Kalderon@cavium.com>
2678-M: Ariel Elior <Ariel.Elior@cavium.com>
2679+M: Michal Kalderon <mkalderon@marvell.com>
2680+M: Ariel Elior <aelior@marvell.com>
2681 L: linux-rdma@vger.kernel.org
2682 S: Supported
2683 F: drivers/infiniband/hw/qedr/
2684@@ -12502,7 +12953,7 @@ F: Documentation/scsi/LICENSE.qla2xxx
2685 F: drivers/scsi/qla2xxx/
2686
2687 QLOGIC QLA3XXX NETWORK DRIVER
2688-M: Dept-GELinuxNICDev@cavium.com
2689+M: GR-Linux-NIC-Dev@marvell.com
2690 L: netdev@vger.kernel.org
2691 S: Supported
2692 F: Documentation/networking/device_drivers/qlogic/LICENSE.qla3xxx
2693@@ -12516,16 +12967,16 @@ F: Documentation/scsi/LICENSE.qla4xxx
2694 F: drivers/scsi/qla4xxx/
2695
2696 QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER
2697-M: Shahed Shaikh <Shahed.Shaikh@cavium.com>
2698-M: Manish Chopra <manish.chopra@cavium.com>
2699-M: Dept-GELinuxNICDev@cavium.com
2700+M: Shahed Shaikh <shshaikh@marvell.com>
2701+M: Manish Chopra <manishc@marvell.com>
2702+M: GR-Linux-NIC-Dev@marvell.com
2703 L: netdev@vger.kernel.org
2704 S: Supported
2705 F: drivers/net/ethernet/qlogic/qlcnic/
2706
2707 QLOGIC QLGE 10Gb ETHERNET DRIVER
2708-M: Manish Chopra <manish.chopra@cavium.com>
2709-M: Dept-GELinuxNICDev@cavium.com
2710+M: Manish Chopra <manishc@marvell.com>
2711+M: GR-Linux-NIC-Dev@marvell.com
2712 L: netdev@vger.kernel.org
2713 S: Supported
2714 F: drivers/net/ethernet/qlogic/qlge/
2715@@ -12593,11 +13044,11 @@ F: Documentation/media/v4l-drivers/qcom_camss.rst
2716 F: drivers/media/platform/qcom/camss/
2717
2718 QUALCOMM CPUFREQ DRIVER MSM8996/APQ8096
2719-M: Ilia Lin <ilia.lin@gmail.com>
2720-L: linux-pm@vger.kernel.org
2721-S: Maintained
2722-F: Documentation/devicetree/bindings/opp/kryo-cpufreq.txt
2723-F: drivers/cpufreq/qcom-cpufreq-kryo.c
2724+M: Ilia Lin <ilia.lin@kernel.org>
2725+L: linux-pm@vger.kernel.org
2726+S: Maintained
2727+F: Documentation/devicetree/bindings/opp/kryo-cpufreq.txt
2728+F: drivers/cpufreq/qcom-cpufreq-kryo.c
2729
2730 QUALCOMM EMAC GIGABIT ETHERNET DRIVER
2731 M: Timur Tabi <timur@kernel.org>
2732@@ -12605,9 +13056,16 @@ L: netdev@vger.kernel.org
2733 S: Maintained
2734 F: drivers/net/ethernet/qualcomm/emac/
2735
2736+QUALCOMM ETHQOS ETHERNET DRIVER
2737+M: Vinod Koul <vkoul@kernel.org>
2738+M: Niklas Cassel <niklas.cassel@linaro.org>
2739+L: netdev@vger.kernel.org
2740+S: Maintained
2741+F: drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
2742+F: Documentation/devicetree/bindings/net/qcom,dwmac.txt
2743+
2744 QUALCOMM GENERIC INTERFACE I2C DRIVER
2745 M: Alok Chauhan <alokc@codeaurora.org>
2746-M: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
2747 L: linux-i2c@vger.kernel.org
2748 L: linux-arm-msm@vger.kernel.org
2749 S: Supported
2750@@ -12764,6 +13222,16 @@ M: Alexandre Bounine <alex.bou9@gmail.com>
2751 S: Maintained
2752 F: drivers/rapidio/
2753
2754+RAS INFRASTRUCTURE
2755+M: Tony Luck <tony.luck@intel.com>
2756+M: Borislav Petkov <bp@alien8.de>
2757+L: linux-edac@vger.kernel.org
2758+S: Maintained
2759+F: drivers/ras/
2760+F: include/linux/ras.h
2761+F: include/ras/ras_event.h
2762+F: Documentation/admin-guide/ras.rst
2763+
2764 RAYLINK/WEBGEAR 802.11 WIRELESS LAN DRIVER
2765 L: linux-wireless@vger.kernel.org
2766 S: Orphan
2767@@ -12775,9 +13243,9 @@ M: Josh Triplett <josh@joshtriplett.org>
2768 R: Steven Rostedt <rostedt@goodmis.org>
2769 R: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2770 R: Lai Jiangshan <jiangshanlai@gmail.com>
2771-L: linux-kernel@vger.kernel.org
2772+L: rcu@vger.kernel.org
2773 S: Supported
2774-T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
2775+T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
2776 F: tools/testing/selftests/rcutorture
2777
2778 RDC R-321X SoC
2779@@ -12823,10 +13291,10 @@ R: Steven Rostedt <rostedt@goodmis.org>
2780 R: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2781 R: Lai Jiangshan <jiangshanlai@gmail.com>
2782 R: Joel Fernandes <joel@joelfernandes.org>
2783-L: linux-kernel@vger.kernel.org
2784+L: rcu@vger.kernel.org
2785 W: http://www.rdrop.com/users/paulmck/RCU/
2786 S: Supported
2787-T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
2788+T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
2789 F: Documentation/RCU/
2790 X: Documentation/RCU/torture.txt
2791 F: include/linux/rcu*
2792@@ -12864,6 +13332,13 @@ F: Documentation/devicetree/bindings/net/dsa/realtek-smi.txt
2793 F: drivers/net/dsa/realtek-smi*
2794 F: drivers/net/dsa/rtl83*
2795
2796+REDPINE WIRELESS DRIVER
2797+M: Amitkumar Karwar <amitkarwar@gmail.com>
2798+M: Siva Rebbagondla <siva8118@gmail.com>
2799+L: linux-wireless@vger.kernel.org
2800+S: Maintained
2801+F: drivers/net/wireless/rsi/
2802+
2803 REGISTER MAP ABSTRACTION
2804 M: Mark Brown <broonie@kernel.org>
2805 L: linux-kernel@vger.kernel.org
2806@@ -12910,6 +13385,7 @@ F: drivers/clk/renesas/
2807 RENESAS EMEV2 I2C DRIVER
2808 M: Wolfram Sang <wsa+renesas@sang-engineering.com>
2809 S: Supported
2810+F: Documentation/devicetree/bindings/i2c/i2c-emev2.txt
2811 F: drivers/i2c/busses/i2c-emev2.c
2812
2813 RENESAS ETHERNET DRIVERS
2814@@ -12931,6 +13407,8 @@ F: drivers/iio/adc/rcar-gyroadc.c
2815 RENESAS R-CAR I2C DRIVERS
2816 M: Wolfram Sang <wsa+renesas@sang-engineering.com>
2817 S: Supported
2818+F: Documentation/devicetree/bindings/i2c/i2c-rcar.txt
2819+F: Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt
2820 F: drivers/i2c/busses/i2c-rcar.c
2821 F: drivers/i2c/busses/i2c-sh_mobile.c
2822
2823@@ -12954,6 +13432,7 @@ F: drivers/reset/
2824 F: Documentation/devicetree/bindings/reset/
2825 F: include/dt-bindings/reset/
2826 F: include/linux/reset.h
2827+F: include/linux/reset/
2828 F: include/linux/reset-controller.h
2829
2830 RESTARTABLE SEQUENCES SUPPORT
2831@@ -13044,7 +13523,7 @@ ROCKETPORT DRIVER
2832 P: Comtrol Corp.
2833 W: http://www.comtrol.com
2834 S: Maintained
2835-F: Documentation/serial/rocket.txt
2836+F: Documentation/serial/rocket.rst
2837 F: drivers/tty/rocket*
2838
2839 ROCKETPORT EXPRESS/INFINITY DRIVER
2840@@ -13128,6 +13607,12 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.g
2841 S: Maintained
2842 F: drivers/net/wireless/realtek/rtlwifi/
2843
2844+REALTEK WIRELESS DRIVER (rtw88)
2845+M: Yan-Hsuan Chuang <yhchuang@realtek.com>
2846+L: linux-wireless@vger.kernel.org
2847+S: Maintained
2848+F: drivers/net/wireless/realtek/rtw88/
2849+
2850 RTL8XXXU WIRELESS DRIVER (rtl8xxxu)
2851 M: Jes Sorensen <Jes.Sorensen@gmail.com>
2852 L: linux-wireless@vger.kernel.org
2853@@ -13154,8 +13639,9 @@ S: Maintained
2854 F: drivers/video/fbdev/savage/
2855
2856 S390
2857-M: Martin Schwidefsky <schwidefsky@de.ibm.com>
2858 M: Heiko Carstens <heiko.carstens@de.ibm.com>
2859+M: Vasily Gorbik <gor@linux.ibm.com>
2860+M: Christian Borntraeger <borntraeger@de.ibm.com>
2861 L: linux-s390@vger.kernel.org
2862 W: http://www.ibm.com/developerworks/linux/linux390/
2863 T: git git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git
2864@@ -13454,6 +13940,7 @@ F: kernel/sched/
2865 F: include/linux/sched.h
2866 F: include/uapi/linux/sched.h
2867 F: include/linux/wait.h
2868+F: include/linux/preempt.h
2869
2870 SCR24X CHIP CARD INTERFACE DRIVER
2871 M: Lubomir Rintel <lkundrak@v3.sk>
2872@@ -13497,6 +13984,7 @@ M: "James E.J. Bottomley" <jejb@linux.ibm.com>
2873 T: git git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git
2874 M: "Martin K. Petersen" <martin.petersen@oracle.com>
2875 T: git git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
2876+Q: https://patchwork.kernel.org/project/linux-scsi/list/
2877 L: linux-scsi@vger.kernel.org
2878 S: Maintained
2879 F: Documentation/devicetree/bindings/scsi/
2880@@ -13511,6 +13999,18 @@ F: Documentation/scsi/st.txt
2881 F: drivers/scsi/st.*
2882 F: drivers/scsi/st_*.h
2883
2884+SCSI TARGET SUBSYSTEM
2885+M: "Martin K. Petersen" <martin.petersen@oracle.com>
2886+L: linux-scsi@vger.kernel.org
2887+L: target-devel@vger.kernel.org
2888+W: http://www.linux-iscsi.org
2889+T: git git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git
2890+Q: https://patchwork.kernel.org/project/target-devel/list/
2891+S: Supported
2892+F: drivers/target/
2893+F: include/target/
2894+F: Documentation/target/
2895+
2896 SCTP PROTOCOL
2897 M: Vlad Yasevich <vyasevich@gmail.com>
2898 M: Neil Horman <nhorman@tuxdriver.com>
2899@@ -13582,11 +14082,18 @@ F: drivers/mmc/host/sdhci-brcmstb*
2900 SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) DRIVER
2901 M: Adrian Hunter <adrian.hunter@intel.com>
2902 L: linux-mmc@vger.kernel.org
2903-T: git git://git.infradead.org/users/ahunter/linux-sdhci.git
2904 S: Maintained
2905 F: drivers/mmc/host/sdhci*
2906 F: include/linux/mmc/sdhci*
2907
2908+EMMC CMDQ HOST CONTROLLER INTERFACE (CQHCI) DRIVER
2909+M: Adrian Hunter <adrian.hunter@intel.com>
2910+M: Ritesh Harjani <riteshh@codeaurora.org>
2911+M: Asutosh Das <asutoshd@codeaurora.org>
2912+L: linux-mmc@vger.kernel.org
2913+S: Maintained
2914+F: drivers/mmc/host/cqhci*
2915+
2916 SYNOPSYS SDHCI COMPLIANT DWC MSHC DRIVER
2917 M: Prabu Thangamuthu <prabu.t@synopsys.com>
2918 M: Manjunath M B <manjumb@synopsys.com>
2919@@ -13652,7 +14159,7 @@ W: https://selinuxproject.org
2920 W: https://github.com/SELinuxProject
2921 T: git git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux.git
2922 S: Supported
2923-F: include/linux/selinux*
2924+F: include/uapi/linux/selinux_netlink.h
2925 F: security/selinux/
2926 F: scripts/selinux/
2927 F: Documentation/admin-guide/LSM/SELinux.rst
2928@@ -13687,11 +14194,20 @@ F: drivers/media/rc/serial_ir.c
2929 SFC NETWORK DRIVER
2930 M: Solarflare linux maintainers <linux-net-drivers@solarflare.com>
2931 M: Edward Cree <ecree@solarflare.com>
2932-M: Bert Kenward <bkenward@solarflare.com>
2933+M: Martin Habets <mhabets@solarflare.com>
2934 L: netdev@vger.kernel.org
2935 S: Supported
2936 F: drivers/net/ethernet/sfc/
2937
2938+SFF/SFP/SFP+ MODULE SUPPORT
2939+M: Russell King <linux@armlinux.org.uk>
2940+L: netdev@vger.kernel.org
2941+S: Maintained
2942+F: drivers/net/phy/phylink.c
2943+F: drivers/net/phy/sfp*
2944+F: include/linux/phylink.h
2945+F: include/linux/sfp.h
2946+
2947 SGI GRU DRIVER
2948 M: Dimitri Sivanich <sivanich@sgi.com>
2949 S: Maintained
2950@@ -13713,6 +14229,7 @@ F: drivers/misc/sgi-xp/
2951
2952 SHARED MEMORY COMMUNICATIONS (SMC) SOCKETS
2953 M: Ursula Braun <ubraun@linux.ibm.com>
2954+M: Karsten Graul <kgraul@linux.ibm.com>
2955 L: linux-s390@vger.kernel.org
2956 W: http://www.ibm.com/developerworks/linux/linux390/
2957 S: Supported
2958@@ -13820,12 +14337,22 @@ F: drivers/media/mmc/siano/
2959
2960 SIFIVE DRIVERS
2961 M: Palmer Dabbelt <palmer@sifive.com>
2962+M: Paul Walmsley <paul.walmsley@sifive.com>
2963 L: linux-riscv@lists.infradead.org
2964-T: git git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux.git
2965+T: git git://github.com/sifive/riscv-linux.git
2966 S: Supported
2967 K: sifive
2968 N: sifive
2969
2970+SIFIVE FU540 SYSTEM-ON-CHIP
2971+M: Paul Walmsley <paul.walmsley@sifive.com>
2972+M: Palmer Dabbelt <palmer@sifive.com>
2973+L: linux-riscv@lists.infradead.org
2974+T: git git://git.kernel.org/pub/scm/linux/kernel/git/pjw/sifive.git
2975+S: Supported
2976+K: fu540
2977+N: fu540
2978+
2979 SILEAD TOUCHSCREEN DRIVER
2980 M: Hans de Goede <hdegoede@redhat.com>
2981 L: linux-input@vger.kernel.org
2982@@ -13857,7 +14384,7 @@ SIMPLEFB FB DRIVER
2983 M: Hans de Goede <hdegoede@redhat.com>
2984 L: linux-fbdev@vger.kernel.org
2985 S: Maintained
2986-F: Documentation/devicetree/bindings/display/simple-framebuffer.txt
2987+F: Documentation/devicetree/bindings/display/simple-framebuffer.yaml
2988 F: drivers/video/fbdev/simplefb.c
2989 F: include/linux/platform_data/simplefb.h
2990
2991@@ -13886,7 +14413,7 @@ F: lib/test_siphash.c
2992 F: include/linux/siphash.h
2993
2994 SIOX
2995-M: Gavin Schenk <g.schenk@eckelmann.de>
2996+M: Thorsten Scherer <t.scherer@eckelmann.de>
2997 M: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
2998 R: Pengutronix Kernel Team <kernel@pengutronix.de>
2999 S: Supported
3000@@ -13938,10 +14465,10 @@ M: "Paul E. McKenney" <paulmck@linux.ibm.com>
3001 M: Josh Triplett <josh@joshtriplett.org>
3002 R: Steven Rostedt <rostedt@goodmis.org>
3003 R: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
3004-L: linux-kernel@vger.kernel.org
3005+L: rcu@vger.kernel.org
3006 W: http://www.rdrop.com/users/paulmck/RCU/
3007 S: Supported
3008-T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
3009+T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
3010 F: include/linux/srcu*.h
3011 F: kernel/rcu/srcu*.c
3012
3013@@ -13982,21 +14509,21 @@ SMM665 HARDWARE MONITOR DRIVER
3014 M: Guenter Roeck <linux@roeck-us.net>
3015 L: linux-hwmon@vger.kernel.org
3016 S: Maintained
3017-F: Documentation/hwmon/smm665
3018+F: Documentation/hwmon/smm665.rst
3019 F: drivers/hwmon/smm665.c
3020
3021 SMSC EMC2103 HARDWARE MONITOR DRIVER
3022 M: Steve Glendinning <steve.glendinning@shawell.net>
3023 L: linux-hwmon@vger.kernel.org
3024 S: Maintained
3025-F: Documentation/hwmon/emc2103
3026+F: Documentation/hwmon/emc2103.rst
3027 F: drivers/hwmon/emc2103.c
3028
3029 SMSC SCH5627 HARDWARE MONITOR DRIVER
3030 M: Hans de Goede <hdegoede@redhat.com>
3031 L: linux-hwmon@vger.kernel.org
3032 S: Supported
3033-F: Documentation/hwmon/sch5627
3034+F: Documentation/hwmon/sch5627.rst
3035 F: drivers/hwmon/sch5627.c
3036
3037 SMSC UFX6000 and UFX7000 USB to VGA DRIVER
3038@@ -14009,7 +14536,7 @@ SMSC47B397 HARDWARE MONITOR DRIVER
3039 M: Jean Delvare <jdelvare@suse.com>
3040 L: linux-hwmon@vger.kernel.org
3041 S: Maintained
3042-F: Documentation/hwmon/smsc47b397
3043+F: Documentation/hwmon/smsc47b397.rst
3044 F: drivers/hwmon/smsc47b397.c
3045
3046 SMSC911x ETHERNET DRIVER
3047@@ -14029,9 +14556,8 @@ SOC-CAMERA V4L2 SUBSYSTEM
3048 L: linux-media@vger.kernel.org
3049 T: git git://linuxtv.org/media_tree.git
3050 S: Orphan
3051-F: include/media/soc*
3052-F: drivers/media/i2c/soc_camera/
3053-F: drivers/media/platform/soc_camera/
3054+F: include/media/soc_camera.h
3055+F: drivers/staging/media/soc_camera/
3056
3057 SOCIONEXT SYNQUACER I2C DRIVER
3058 M: Ard Biesheuvel <ard.biesheuvel@linaro.org>
3059@@ -14167,16 +14693,15 @@ T: git git://linuxtv.org/media_tree.git
3060 S: Maintained
3061 F: drivers/media/i2c/imx355.c
3062
3063-SONY MEMORYSTICK CARD SUPPORT
3064-M: Alex Dubov <oakad@yahoo.com>
3065-W: http://tifmxx.berlios.de/
3066-S: Maintained
3067-F: drivers/memstick/host/tifm_ms.c
3068-
3069-SONY MEMORYSTICK STANDARD SUPPORT
3070+SONY MEMORYSTICK SUBSYSTEM
3071 M: Maxim Levitsky <maximlevitsky@gmail.com>
3072+M: Alex Dubov <oakad@yahoo.com>
3073+M: Ulf Hansson <ulf.hansson@linaro.org>
3074+L: linux-mmc@vger.kernel.org
3075+T: git git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git
3076 S: Maintained
3077-F: drivers/memstick/core/ms_block.*
3078+F: drivers/memstick/
3079+F: include/linux/memstick.h
3080
3081 SONY VAIO CONTROL DEVICE DRIVER
3082 M: Mattia Dongili <malattia@linux.it>
3083@@ -14194,7 +14719,6 @@ M: Takashi Iwai <tiwai@suse.com>
3084 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
3085 W: http://www.alsa-project.org/
3086 T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
3087-T: git git://git.alsa-project.org/alsa-kernel.git
3088 Q: http://patchwork.kernel.org/project/alsa-devel/list/
3089 S: Maintained
3090 F: Documentation/sound/
3091@@ -14303,11 +14827,11 @@ F: arch/arm/mach-spear/
3092
3093 SPI NOR SUBSYSTEM
3094 M: Marek Vasut <marek.vasut@gmail.com>
3095+M: Tudor Ambarus <tudor.ambarus@microchip.com>
3096 L: linux-mtd@lists.infradead.org
3097 W: http://www.linux-mtd.infradead.org/
3098 Q: http://patchwork.ozlabs.org/project/linux-mtd/list/
3099-T: git git://git.infradead.org/linux-mtd.git spi-nor/fixes
3100-T: git git://git.infradead.org/linux-mtd.git spi-nor/next
3101+T: git git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git spi-nor/next
3102 S: Maintained
3103 F: drivers/mtd/spi-nor/
3104 F: include/linux/mtd/spi-nor.h
3105@@ -14371,6 +14895,14 @@ S: Maintained
3106 F: drivers/iio/imu/st_lsm6dsx/
3107 F: Documentation/devicetree/bindings/iio/imu/st_lsm6dsx.txt
3108
3109+ST MIPID02 CSI-2 TO PARALLEL BRIDGE DRIVER
3110+M: Mickael Guene <mickael.guene@st.com>
3111+L: linux-media@vger.kernel.org
3112+T: git git://linuxtv.org/media_tree.git
3113+S: Maintained
3114+F: drivers/media/i2c/st-mipid02.c
3115+F: Documentation/devicetree/bindings/media/i2c/st,st-mipid02.txt
3116+
3117 ST STM32 I2C/SMBUS DRIVER
3118 M: Pierre-Yves MORDRET <pierre-yves.mordret@st.com>
3119 L: linux-i2c@vger.kernel.org
3120@@ -14432,6 +14964,11 @@ M: Florian Schilhabel <florian.c.schilhabel@googlemail.com>.
3121 S: Odd Fixes
3122 F: drivers/staging/rtl8712/
3123
3124+STAGING - REALTEK RTL8188EU DRIVERS
3125+M: Larry Finger <Larry.Finger@lwfinger.net>
3126+S: Odd Fixes
3127+F: drivers/staging/rtl8188eu/
3128+
3129 STAGING - SILICON MOTION SM750 FRAME BUFFER DRIVER
3130 M: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
3131 M: Teddy Wang <teddy.wang@siliconmotion.com>
3132@@ -14462,11 +14999,6 @@ L: linux-wireless@vger.kernel.org
3133 S: Supported
3134 F: drivers/staging/wilc1000/
3135
3136-STAGING - XGI Z7,Z9,Z11 PCI DISPLAY DRIVER
3137-M: Arnaud Patard <arnaud.patard@rtp-net.org>
3138-S: Odd Fixes
3139-F: drivers/staging/xgifb/
3140-
3141 STAGING SUBSYSTEM
3142 M: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
3143 T: git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
3144@@ -14480,7 +15012,7 @@ S: Odd Fixes
3145 F: drivers/net/ethernet/adaptec/starfire*
3146
3147 STEC S1220 SKD DRIVER
3148-M: Bart Van Assche <bart.vanassche@wdc.com>
3149+M: Damien Le Moal <Damien.LeMoal@wdc.com>
3150 L: linux-block@vger.kernel.org
3151 S: Maintained
3152 F: drivers/block/skd*[ch]
3153@@ -14671,7 +15203,7 @@ S: Maintained
3154 F: drivers/tty/serial/8250/8250_dw.c
3155
3156 SYNOPSYS DESIGNWARE APB GPIO DRIVER
3157-M: Hoan Tran <hotran@apm.com>
3158+M: Hoan Tran <hoan@os.amperecomputing.com>
3159 L: linux-gpio@vger.kernel.org
3160 S: Maintained
3161 F: drivers/gpio/gpio-dwapb.c
3162@@ -14763,18 +15295,6 @@ F: Documentation/filesystems/sysv-fs.txt
3163 F: fs/sysv/
3164 F: include/linux/sysv_fs.h
3165
3166-TARGET SUBSYSTEM
3167-M: "Nicholas A. Bellinger" <nab@linux-iscsi.org>
3168-L: linux-scsi@vger.kernel.org
3169-L: target-devel@vger.kernel.org
3170-W: http://www.linux-iscsi.org
3171-W: http://groups.google.com/group/linux-iscsi-target-dev
3172-T: git git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending.git master
3173-S: Supported
3174-F: drivers/target/
3175-F: include/target/
3176-F: Documentation/target/
3177-
3178 TASKSTATS STATISTICS INTERFACE
3179 M: Balbir Singh <bsingharora@gmail.com>
3180 S: Maintained
3181@@ -14983,6 +15503,7 @@ F: drivers/dma/tegra*
3182
3183 TEGRA I2C DRIVER
3184 M: Laxman Dewangan <ldewangan@nvidia.com>
3185+R: Dmitry Osipenko <digetx@gmail.com>
3186 S: Supported
3187 F: drivers/i2c/busses/i2c-tegra.c
3188
3189@@ -15019,6 +15540,11 @@ M: Laxman Dewangan <ldewangan@nvidia.com>
3190 S: Supported
3191 F: drivers/spi/spi-tegra*
3192
3193+TEGRA XUSB PADCTL DRIVER
3194+M: JC Kuo <jckuo@nvidia.com>
3195+S: Supported
3196+F: drivers/phy/tegra/xusb*
3197+
3198 TEHUTI ETHERNET DRIVER
3199 M: Andy Gospodarek <andy@greyhouse.net>
3200 L: netdev@vger.kernel.org
3201@@ -15054,6 +15580,12 @@ F: Documentation/devicetree/bindings/reset/ti,sci-reset.txt
3202 F: Documentation/devicetree/bindings/clock/ti,sci-clk.txt
3203 F: drivers/clk/keystone/sci-clk.c
3204 F: drivers/reset/reset-ti-sci.c
3205+F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt
3206+F: Documentation/devicetree/bindings/interrupt-controller/ti,sci-inta.txt
3207+F: drivers/irqchip/irq-ti-sci-intr.c
3208+F: drivers/irqchip/irq-ti-sci-inta.c
3209+F: include/linux/soc/ti/ti_sci_inta_msi.h
3210+F: drivers/soc/ti/ti_sci_inta_msi.c
3211
3212 Texas Instruments ASoC drivers
3213 M: Peter Ujfalusi <peter.ujfalusi@ti.com>
3214@@ -15061,6 +15593,13 @@ L: alsa-devel@alsa-project.org (moderated for non-subscribers)
3215 S: Maintained
3216 F: sound/soc/ti/
3217
3218+Texas Instruments' DAC7612 DAC Driver
3219+M: Ricardo Ribalda <ricardo@ribalda.com>
3220+L: linux-iio@vger.kernel.org
3221+S: Supported
3222+F: drivers/iio/dac/ti-dac7612.c
3223+F: Documentation/devicetree/bindings/iio/dac/ti,dac7612.txt
3224+
3225 THANKO'S RAREMONO AM/FM/SW RADIO RECEIVER USB DRIVER
3226 M: Hans Verkuil <hverkuil@xs4all.nl>
3227 L: linux-media@vger.kernel.org
3228@@ -15165,10 +15704,11 @@ F: include/linux/clk/ti.h
3229
3230 TI DAVINCI MACHINE SUPPORT
3231 M: Sekhar Nori <nsekhar@ti.com>
3232-M: Kevin Hilman <khilman@kernel.org>
3233+R: Bartosz Golaszewski <bgolaszewski@baylibre.com>
3234 L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
3235 T: git git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci.git
3236 S: Supported
3237+F: Documentation/devicetree/bindings/i2c/i2c-davinci.txt
3238 F: arch/arm/mach-davinci/
3239 F: drivers/i2c/busses/i2c-davinci.c
3240 F: arch/arm/boot/dts/da850*
3241@@ -15205,9 +15745,11 @@ S: Maintained
3242 F: drivers/net/ethernet/ti/cpsw*
3243 F: drivers/net/ethernet/ti/davinci*
3244
3245-TI FLASH MEDIA INTERFACE DRIVER
3246+TI FLASH MEDIA MEMORYSTICK/MMC DRIVERS
3247 M: Alex Dubov <oakad@yahoo.com>
3248 S: Maintained
3249+W: http://tifmxx.berlios.de/
3250+F: drivers/memstick/host/tifm_ms.c
3251 F: drivers/misc/tifm*
3252 F: drivers/mmc/host/tifm_sd.c
3253 F: include/linux/tifm.h
3254@@ -15359,7 +15901,7 @@ TMP401 HARDWARE MONITOR DRIVER
3255 M: Guenter Roeck <linux@roeck-us.net>
3256 L: linux-hwmon@vger.kernel.org
3257 S: Maintained
3258-F: Documentation/hwmon/tmp401
3259+F: Documentation/hwmon/tmp401.rst
3260 F: drivers/hwmon/tmp401.c
3261
3262 TMPFS (SHMEM FILESYSTEM)
3263@@ -15372,12 +15914,11 @@ F: mm/shmem.c
3264 TOMOYO SECURITY MODULE
3265 M: Kentaro Takeda <takedakn@nttdata.co.jp>
3266 M: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
3267-L: tomoyo-dev-en@lists.sourceforge.jp (subscribers-only, for developers in English)
3268-L: tomoyo-users-en@lists.sourceforge.jp (subscribers-only, for users in English)
3269-L: tomoyo-dev@lists.sourceforge.jp (subscribers-only, for developers in Japanese)
3270-L: tomoyo-users@lists.sourceforge.jp (subscribers-only, for users in Japanese)
3271-W: http://tomoyo.sourceforge.jp/
3272-T: quilt http://svn.sourceforge.jp/svnroot/tomoyo/trunk/2.5.x/tomoyo-lsm/patches/
3273+L: tomoyo-dev-en@lists.osdn.me (subscribers-only, for developers in English)
3274+L: tomoyo-users-en@lists.osdn.me (subscribers-only, for users in English)
3275+L: tomoyo-dev@lists.osdn.me (subscribers-only, for developers in Japanese)
3276+L: tomoyo-users@lists.osdn.me (subscribers-only, for users in Japanese)
3277+W: https://tomoyo.osdn.jp/
3278 S: Maintained
3279 F: security/tomoyo/
3280
3281@@ -15393,7 +15934,7 @@ M: "Paul E. McKenney" <paulmck@linux.ibm.com>
3282 M: Josh Triplett <josh@joshtriplett.org>
3283 L: linux-kernel@vger.kernel.org
3284 S: Supported
3285-T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
3286+T: git git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
3287 F: Documentation/RCU/torture.txt
3288 F: kernel/torture.c
3289 F: kernel/rcu/rcutorture.c
3290@@ -15635,6 +16176,12 @@ F: drivers/uwb/
3291 F: include/linux/uwb.h
3292 F: include/linux/uwb/
3293
3294+UNICODE SUBSYSTEM:
3295+M: Gabriel Krisman Bertazi <krisman@collabora.com>
3296+L: linux-fsdevel@vger.kernel.org
3297+S: Supported
3298+F: fs/unicode/
3299+
3300 UNICORE32 ARCHITECTURE:
3301 M: Guan Xuetao <gxt@pku.edu.cn>
3302 W: http://mprc.pku.edu.cn/~guanxuetao/linux
3303@@ -15666,18 +16213,27 @@ F: drivers/visorbus/
3304 F: drivers/staging/unisys/
3305
3306 UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER
3307-M: Vinayak Holikatti <vinholikatti@gmail.com>
3308+R: Alim Akhtar <alim.akhtar@samsung.com>
3309+R: Avri Altman <avri.altman@wdc.com>
3310+R: Pedro Sousa <pedrom.sousa@synopsys.com>
3311 L: linux-scsi@vger.kernel.org
3312 S: Supported
3313 F: Documentation/scsi/ufs.txt
3314 F: drivers/scsi/ufs/
3315
3316 UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER DWC HOOKS
3317-M: Joao Pinto <jpinto@synopsys.com>
3318+M: Pedro Sousa <pedrom.sousa@synopsys.com>
3319 L: linux-scsi@vger.kernel.org
3320 S: Supported
3321 F: drivers/scsi/ufs/*dwc*
3322
3323+UNIVERSAL FLASH STORAGE HOST CONTROLLER DRIVER MEDIATEK HOOKS
3324+M: Stanley Chu <stanley.chu@mediatek.com>
3325+L: linux-scsi@vger.kernel.org
3326+L: linux-mediatek@lists.infradead.org (moderated for non-subscribers)
3327+S: Maintained
3328+F: drivers/scsi/ufs/ufs-mediatek*
3329+
3330 UNSORTED BLOCK IMAGES (UBI)
3331 M: Artem Bityutskiy <dedekind1@gmail.com>
3332 M: Richard Weinberger <richard@nod.at>
3333@@ -15781,6 +16337,14 @@ L: linux-usb@vger.kernel.org
3334 S: Maintained
3335 F: drivers/usb/roles/intel-xhci-usb-role-switch.c
3336
3337+USB IP DRIVER FOR HISILICON KIRIN
3338+M: Yu Chen <chenyu56@huawei.com>
3339+M: Binghui Wang <wangbinghui@hisilicon.com>
3340+L: linux-usb@vger.kernel.org
3341+S: Maintained
3342+F: Documentation/devicetree/bindings/phy/phy-hi3660-usb3.txt
3343+F: drivers/phy/hisilicon/phy-hi3660-usb3.c
3344+
3345 USB ISP116X DRIVER
3346 M: Olav Kongas <ok@artecdesign.ee>
3347 L: linux-usb@vger.kernel.org
3348@@ -15802,13 +16366,12 @@ M: Alan Stern <stern@rowland.harvard.edu>
3349 L: linux-usb@vger.kernel.org
3350 L: usb-storage@lists.one-eyed-alien.net
3351 S: Maintained
3352-W: http://www.one-eyed-alien.net/~mdharm/linux-usb/
3353 F: drivers/usb/storage/
3354
3355 USB MIDI DRIVER
3356 M: Clemens Ladisch <clemens@ladisch.de>
3357 L: alsa-devel@alsa-project.org (moderated for non-subscribers)
3358-T: git git://git.alsa-project.org/alsa-kernel.git
3359+T: git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
3360 S: Maintained
3361 F: sound/usb/midi.*
3362
3363@@ -15834,6 +16397,7 @@ F: drivers/usb/common/usb-otg-fsm.c
3364 USB OVER IP DRIVER
3365 M: Valentina Manea <valentina.manea.m@gmail.com>
3366 M: Shuah Khan <shuah@kernel.org>
3367+M: Shuah Khan <skhan@linuxfoundation.org>
3368 L: linux-usb@vger.kernel.org
3369 S: Maintained
3370 F: Documentation/usb/usbip_protocol.txt
3371@@ -16080,6 +16644,7 @@ F: fs/fat/
3372
3373 VFIO DRIVER
3374 M: Alex Williamson <alex.williamson@redhat.com>
3375+R: Cornelia Huck <cohuck@redhat.com>
3376 L: kvm@vger.kernel.org
3377 T: git git://github.com/awilliam/linux-vfio.git
3378 S: Maintained
3379@@ -16206,7 +16771,7 @@ F: drivers/char/virtio_console.c
3380 F: include/linux/virtio_console.h
3381 F: include/uapi/linux/virtio_console.h
3382
3383-VIRTIO CORE, NET AND BLOCK DRIVERS
3384+VIRTIO CORE AND NET DRIVERS
3385 M: "Michael S. Tsirkin" <mst@redhat.com>
3386 M: Jason Wang <jasowang@redhat.com>
3387 L: virtualization@lists.linux-foundation.org
3388@@ -16221,6 +16786,19 @@ F: include/uapi/linux/virtio_*.h
3389 F: drivers/crypto/virtio/
3390 F: mm/balloon_compaction.c
3391
3392+VIRTIO BLOCK AND SCSI DRIVERS
3393+M: "Michael S. Tsirkin" <mst@redhat.com>
3394+M: Jason Wang <jasowang@redhat.com>
3395+R: Paolo Bonzini <pbonzini@redhat.com>
3396+R: Stefan Hajnoczi <stefanha@redhat.com>
3397+L: virtualization@lists.linux-foundation.org
3398+S: Maintained
3399+F: drivers/block/virtio_blk.c
3400+F: drivers/scsi/virtio_scsi.c
3401+F: include/uapi/linux/virtio_blk.h
3402+F: include/uapi/linux/virtio_scsi.h
3403+F: drivers/vhost/scsi.c
3404+
3405 VIRTIO CRYPTO DRIVER
3406 M: Gonglei <arei.gonglei@huawei.com>
3407 L: virtualization@lists.linux-foundation.org
3408@@ -16383,7 +16961,7 @@ VT1211 HARDWARE MONITOR DRIVER
3409 M: Juerg Haefliger <juergh@gmail.com>
3410 L: linux-hwmon@vger.kernel.org
3411 S: Maintained
3412-F: Documentation/hwmon/vt1211
3413+F: Documentation/hwmon/vt1211.rst
3414 F: drivers/hwmon/vt1211.c
3415
3416 VT8231 HARDWARE MONITOR DRIVER
3417@@ -16411,14 +16989,14 @@ W83791D HARDWARE MONITORING DRIVER
3418 M: Marc Hulsman <m.hulsman@tudelft.nl>
3419 L: linux-hwmon@vger.kernel.org
3420 S: Maintained
3421-F: Documentation/hwmon/w83791d
3422+F: Documentation/hwmon/w83791d.rst
3423 F: drivers/hwmon/w83791d.c
3424
3425 W83793 HARDWARE MONITORING DRIVER
3426 M: Rudolf Marek <r.marek@assembler.cz>
3427 L: linux-hwmon@vger.kernel.org
3428 S: Maintained
3429-F: Documentation/hwmon/w83793
3430+F: Documentation/hwmon/w83793.rst
3431 F: drivers/hwmon/w83793.c
3432
3433 W83795 HARDWARE MONITORING DRIVER
3434@@ -16458,6 +17036,12 @@ L: linux-gpio@vger.kernel.org
3435 S: Maintained
3436 F: drivers/gpio/gpio-wcove.c
3437
3438+WHWAVE RTC DRIVER
3439+M: Dianlong Li <long17.cool@163.com>
3440+L: linux-rtc@vger.kernel.org
3441+S: Maintained
3442+F: drivers/rtc/rtc-sd3078.c
3443+
3444 WIIMOTE HID DRIVER
3445 M: David Herrmann <dh.herrmann@googlemail.com>
3446 L: linux-input@vger.kernel.org
3447@@ -16489,6 +17073,11 @@ M: David Härdeman <david@hardeman.nu>
3448 S: Maintained
3449 F: drivers/media/rc/winbond-cir.c
3450
3451+RCMM REMOTE CONTROLS DECODER
3452+M: Patrick Lerda <patrick9876@free.fr>
3453+S: Maintained
3454+F: drivers/media/rc/ir-rcmm-decoder.c
3455+
3456 WINSYSTEMS EBC-C384 WATCHDOG DRIVER
3457 M: William Breathitt Gray <vilhelm.gray@gmail.com>
3458 L: linux-watchdog@vger.kernel.org
3459@@ -16516,7 +17105,7 @@ L: patches@opensource.cirrus.com
3460 T: git https://github.com/CirrusLogic/linux-drivers.git
3461 W: https://github.com/CirrusLogic/linux-drivers/wiki
3462 S: Supported
3463-F: Documentation/hwmon/wm83??
3464+F: Documentation/hwmon/wm83??.rst
3465 F: Documentation/devicetree/bindings/extcon/extcon-arizona.txt
3466 F: Documentation/devicetree/bindings/regulator/arizona-regulator.txt
3467 F: Documentation/devicetree/bindings/mfd/arizona.txt
3468@@ -16606,7 +17195,7 @@ M: Tony Luck <tony.luck@intel.com>
3469 M: Borislav Petkov <bp@alien8.de>
3470 L: linux-edac@vger.kernel.org
3471 S: Maintained
3472-F: arch/x86/kernel/cpu/mcheck/*
3473+F: arch/x86/kernel/cpu/mce/*
3474
3475 X86 MICROCODE UPDATE SUPPORT
3476 M: Borislav Petkov <bp@alien8.de>
3477@@ -16631,6 +17220,15 @@ S: Maintained
3478 F: drivers/platform/x86/
3479 F: drivers/platform/olpc/
3480
3481+X86 PLATFORM DRIVERS - ARCH
3482+R: Darren Hart <dvhart@infradead.org>
3483+R: Andy Shevchenko <andy@infradead.org>
3484+L: platform-driver-x86@vger.kernel.org
3485+L: x86@kernel.org
3486+T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/core
3487+S: Maintained
3488+F: arch/x86/platform
3489+
3490 X86 VDSO
3491 M: Andy Lutomirski <luto@kernel.org>
3492 L: linux-kernel@vger.kernel.org
3493@@ -16663,10 +17261,30 @@ T: git git://linuxtv.org/media_tree.git
3494 S: Maintained
3495 F: drivers/media/tuners/tuner-xc2028.*
3496
3497+XDP (eXpress Data Path)
3498+M: Alexei Starovoitov <ast@kernel.org>
3499+M: Daniel Borkmann <daniel@iogearbox.net>
3500+M: David S. Miller <davem@davemloft.net>
3501+M: Jakub Kicinski <jakub.kicinski@netronome.com>
3502+M: Jesper Dangaard Brouer <hawk@kernel.org>
3503+M: John Fastabend <john.fastabend@gmail.com>
3504+L: netdev@vger.kernel.org
3505+L: xdp-newbies@vger.kernel.org
3506+L: bpf@vger.kernel.org
3507+S: Supported
3508+F: net/core/xdp.c
3509+F: include/net/xdp.h
3510+F: kernel/bpf/devmap.c
3511+F: kernel/bpf/cpumap.c
3512+F: include/trace/events/xdp.h
3513+K: xdp
3514+N: xdp
3515+
3516 XDP SOCKETS (AF_XDP)
3517 M: Björn Töpel <bjorn.topel@intel.com>
3518 M: Magnus Karlsson <magnus.karlsson@intel.com>
3519 L: netdev@vger.kernel.org
3520+L: bpf@vger.kernel.org
3521 S: Maintained
3522 F: kernel/bpf/xskmap.c
3523 F: net/xdp/
3524@@ -16712,7 +17330,7 @@ F: Documentation/ABI/stable/sysfs-hypervisor-xen
3525 F: Documentation/ABI/testing/sysfs-hypervisor-xen
3526
3527 XEN NETWORK BACKEND DRIVER
3528-M: Wei Liu <wei.liu2@citrix.com>
3529+M: Wei Liu <wei.liu@kernel.org>
3530 M: Paul Durrant <paul.durrant@citrix.com>
3531 L: xen-devel@lists.xenproject.org (moderated for non-subscribers)
3532 L: netdev@vger.kernel.org
3533@@ -16794,6 +17412,7 @@ M: Jan Glauber <jglauber@cavium.com>
3534 L: linux-i2c@vger.kernel.org
3535 W: http://www.cavium.com
3536 S: Supported
3537+F: Documentation/devicetree/bindings/i2c/i2c-xlp9xx.txt
3538 F: drivers/i2c/busses/i2c-xlp9xx.c
3539
3540 XRA1403 GPIO EXPANDER
3541diff --git a/backport-include/asm/barrier.h b/backport-include/asm/barrier.h
3542index 9e1e1f1..bca0558 100644
3543--- a/backport-include/asm/barrier.h
3544+++ b/backport-include/asm/barrier.h
3545@@ -19,4 +19,8 @@
3546 #define smp_mb__after_atomic smp_mb__after_clear_bit
3547 #endif
3548
3549+#ifndef smp_acquire__after_ctrl_dep
3550+#define smp_acquire__after_ctrl_dep() smp_rmb()
3551+#endif
3552+
3553 #endif /* __BACKPORT_ASM_BARRIER_H */
3554diff --git a/backport-include/linux/compiler-gcc8.h b/backport-include/linux/compiler-gcc8.h
3555new file mode 100644
3556index 0000000..9ff99f0
3557--- /dev/null
3558+++ b/backport-include/linux/compiler-gcc8.h
3559@@ -0,0 +1 @@
3560+#include <linux/compiler-gccN.h>
3561diff --git a/backport-include/linux/compiler-gcc9.h b/backport-include/linux/compiler-gcc9.h
3562new file mode 100644
3563index 0000000..9ff99f0
3564--- /dev/null
3565+++ b/backport-include/linux/compiler-gcc9.h
3566@@ -0,0 +1 @@
3567+#include <linux/compiler-gccN.h>
3568diff --git a/backport-include/linux/ftrace_event.h b/backport-include/linux/ftrace_event.h
3569index f823388..edea21e 100644
3570--- a/backport-include/linux/ftrace_event.h
3571+++ b/backport-include/linux/ftrace_event.h
3572@@ -2,8 +2,7 @@
3573 #define __BACKPORT_LINUX_FTRACE_EVENT_H
3574 #include_next <linux/ftrace_event.h>
3575
3576-#if LINUX_VERSION_IS_LESS(4,0,0) && \
3577- RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6)
3578+#if LINUX_VERSION_IS_LESS(4,0,0)
3579 const char *ftrace_print_array_seq(struct trace_seq *p,
3580 const void *buf, int buf_len,
3581 size_t el_size);
3582diff --git a/backport-include/linux/hrtimer.h b/backport-include/linux/hrtimer.h
3583new file mode 100644
3584index 0000000..1152a58
3585--- /dev/null
3586+++ b/backport-include/linux/hrtimer.h
3587@@ -0,0 +1,13 @@
3588+#ifndef __BACKPORT_LINUX_HRTIMER_H
3589+#define __BACKPORT_LINUX_HRTIMER_H
3590+#include <linux/version.h>
3591+#include_next <linux/hrtimer.h>
3592+
3593+#if LINUX_VERSION_IS_LESS(4,16,0)
3594+
3595+#define HRTIMER_MODE_ABS_SOFT HRTIMER_MODE_ABS
3596+#define HRTIMER_MODE_REL_SOFT HRTIMER_MODE_REL
3597+
3598+#endif /* < 4.16 */
3599+
3600+#endif /* __BACKPORT_LINUX_HRTIMER_H */
3601diff --git a/backport-include/linux/interrupt.h b/backport-include/linux/interrupt.h
3602index ad3cbf6..8a769f3 100644
3603--- a/backport-include/linux/interrupt.h
3604+++ b/backport-include/linux/interrupt.h
3605@@ -5,6 +5,31 @@
3606 #include <linux/ktime.h>
3607
3608 #if LINUX_VERSION_IS_LESS(4,10,0)
3609+
3610+/* Forward a hrtimer so it expires after now: */
3611+static inline u64
3612+backport_hrtimer_forward(struct hrtimer *timer, ktime_t now, s64 interval)
3613+{
3614+ ktime_t _interval = { .tv64 = interval };
3615+
3616+ return hrtimer_forward(timer, now, _interval);
3617+}
3618+#define hrtimer_forward LINUX_BACKPORT(hrtimer_forward)
3619+
3620+static inline bool backport_ktime_before(const s64 cmp1, const s64 cmp2)
3621+{
3622+ return cmp1 < cmp2;
3623+}
3624+#define ktime_before LINUX_BACKPORT(ktime_before)
3625+
3626+static inline s64 backport_ns_to_ktime(u64 ns)
3627+{
3628+ ktime_t _time = ns_to_ktime(ns);
3629+
3630+ return _time.tv64;
3631+}
3632+#define ns_to_ktime LINUX_BACKPORT(ns_to_ktime)
3633+
3634 static inline void backport_hrtimer_start(struct hrtimer *timer, s64 time,
3635 const enum hrtimer_mode mode)
3636 {
3637diff --git a/backport-include/linux/lockdep.h b/backport-include/linux/lockdep.h
3638index 5a5d0d0..12b91b4 100644
3639--- a/backport-include/linux/lockdep.h
3640+++ b/backport-include/linux/lockdep.h
3641@@ -14,4 +14,10 @@
3642 #endif /* CONFIG_LOCKDEP */
3643 #endif /* LINUX_VERSION_IS_LESS(3,9,0) */
3644
3645+#if LINUX_VERSION_IS_LESS(4,15,0)
3646+#ifndef CONFIG_LOCKDEP
3647+struct lockdep_map { };
3648+#endif /* CONFIG_LOCKDEP */
3649+#endif /* LINUX_VERSION_IS_LESS(4,15,0) */
3650+
3651 #endif /* __BACKPORT_LINUX_LOCKDEP_H */
3652diff --git a/backport-include/linux/mmc/sdio_func.h b/backport-include/linux/mmc/sdio_func.h
3653index 2d3e92b..0a67f99 100644
3654--- a/backport-include/linux/mmc/sdio_func.h
3655+++ b/backport-include/linux/mmc/sdio_func.h
3656@@ -7,4 +7,80 @@
3657 #define dev_to_sdio_func(d) container_of(d, struct sdio_func, dev)
3658 #endif
3659
3660+#if LINUX_VERSION_IS_LESS(5,2,0) && \
3661+ !LINUX_VERSION_IN_RANGE(5,1,15, 5,2,0) && \
3662+ !LINUX_VERSION_IN_RANGE(4,19,56, 4,20,0)
3663+
3664+#include <linux/mmc/card.h>
3665+#include <linux/mmc/host.h>
3666+
3667+/**
3668+ * sdio_retune_hold_now - start deferring retuning requests till release
3669+ * @func: SDIO function attached to host
3670+ *
3671+ * This function can be called if it's currently a bad time to do
3672+ * a retune of the SDIO card. Retune requests made during this time
3673+ * will be held and we'll actually do the retune sometime after the
3674+ * release.
3675+ *
3676+ * This function could be useful if an SDIO card is in a power state
3677+ * where it can respond to a small subset of commands that doesn't
3678+ * include the retuning command. Care should be taken when using
3679+ * this function since (presumably) the retuning request we might be
3680+ * deferring was made for a good reason.
3681+ *
3682+ * This function should be called while the host is claimed.
3683+ */
3684+#define sdio_retune_hold_now LINUX_BACKPORT(sdio_retune_hold_now)
3685+#if LINUX_VERSION_IS_LESS(4,3,0)
3686+static inline void sdio_retune_hold_now(struct sdio_func *func)
3687+{
3688+}
3689+#else
3690+static inline void sdio_retune_hold_now(struct sdio_func *func)
3691+{
3692+ struct mmc_host *host = func->card->host;
3693+
3694+ host->retune_now = 0;
3695+ host->hold_retune += 1;
3696+}
3697+#endif /* < 4.3 */
3698+
3699+/**
3700+ * sdio_retune_release - signal that it's OK to retune now
3701+ * @func: SDIO function attached to host
3702+ *
3703+ * This is the complement to sdio_retune_hold_now(). Calling this
3704+ * function won't make a retune happen right away but will allow
3705+ * them to be scheduled normally.
3706+ *
3707+ * This function should be called while the host is claimed.
3708+ */
3709+#define sdio_retune_release LINUX_BACKPORT(sdio_retune_release)
3710+#if LINUX_VERSION_IS_LESS(4,3,0)
3711+static inline void sdio_retune_release(struct sdio_func *func)
3712+{
3713+}
3714+#else
3715+static inline void sdio_retune_release(struct sdio_func *func)
3716+{
3717+ struct mmc_host *host = func->card->host;
3718+
3719+ if (host->hold_retune)
3720+ host->hold_retune -= 1;
3721+ else
3722+ WARN_ON(1);
3723+}
3724+#endif
3725+
3726+#define sdio_retune_crc_disable LINUX_BACKPORT(sdio_retune_crc_disable)
3727+static inline void sdio_retune_crc_disable(struct sdio_func *func)
3728+{
3729+}
3730+#define sdio_retune_crc_enable LINUX_BACKPORT(sdio_retune_crc_enable)
3731+static inline void sdio_retune_crc_enable(struct sdio_func *func)
3732+{
3733+}
3734+#endif /* < 5.2 */
3735+
3736 #endif /* __BACKPORT_MMC_SDIO_FUNC_H */
3737diff --git a/backport-include/linux/moduleparam.h b/backport-include/linux/moduleparam.h
3738index a624ab5..914baad 100644
3739--- a/backport-include/linux/moduleparam.h
3740+++ b/backport-include/linux/moduleparam.h
3741@@ -29,8 +29,7 @@ static const char __UNIQUE_ID(name)[] \
3742 #endif
3743 #endif /* < 3.8 */
3744
3745-#if LINUX_VERSION_IS_LESS(3,17,0) && \
3746- RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6)
3747+#if LINUX_VERSION_IS_LESS(3,17,0)
3748 extern struct kernel_param_ops param_ops_ullong;
3749 extern int param_set_ullong(const char *val, const struct kernel_param *kp);
3750 extern int param_get_ullong(char *buffer, const struct kernel_param *kp);
3751diff --git a/backport-include/linux/netdevice.h b/backport-include/linux/netdevice.h
3752index 3375126..9f4c476 100644
3753--- a/backport-include/linux/netdevice.h
3754+++ b/backport-include/linux/netdevice.h
3755@@ -259,8 +259,7 @@ static inline struct sk_buff *napi_alloc_skb(struct napi_struct *napi,
3756 #define IFF_TX_SKB_SHARING 0
3757 #endif
3758
3759-#if LINUX_VERSION_IS_LESS(4,1,0) && \
3760- RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6)
3761+#if LINUX_VERSION_IS_LESS(4,1,0)
3762 netdev_features_t passthru_features_check(struct sk_buff *skb,
3763 struct net_device *dev,
3764 netdev_features_t features);
3765@@ -292,13 +291,21 @@ static inline void u64_stats_init(struct u64_stats_sync *syncp)
3766 })
3767 #endif /* netdev_alloc_pcpu_stats */
3768
3769-#if LINUX_VERSION_IS_LESS(3,19,0)
3770-#define napi_complete_done LINUX_BACKPORT(napi_complete_done)
3771-static inline void napi_complete_done(struct napi_struct *n, int work_done)
3772+#if LINUX_VERSION_IS_LESS(4,10,0)
3773+static inline bool backport_napi_complete_done(struct napi_struct *n, int work_done)
3774 {
3775+ if (unlikely(test_bit(NAPI_STATE_NPSVC, &n->state)))
3776+ return false;
3777+
3778+#if LINUX_VERSION_IS_LESS(3,19,0)
3779 napi_complete(n);
3780-}
3781+#else
3782+ napi_complete_done(n, work_done);
3783 #endif /* < 3.19 */
3784+ return true;
3785+}
3786+#define napi_complete_done LINUX_BACKPORT(napi_complete_done)
3787+#endif /* < 4.10 */
3788
3789 #if LINUX_VERSION_IS_LESS(4,5,0)
3790 #define netif_tx_napi_add LINUX_BACKPORT(netif_tx_napi_add)
3791diff --git a/backport-include/linux/of_net.h b/backport-include/linux/of_net.h
3792index 7f4b688..18becf5 100644
3793--- a/backport-include/linux/of_net.h
3794+++ b/backport-include/linux/of_net.h
3795@@ -12,4 +12,20 @@ static inline const void *of_get_mac_address(struct device_node *np)
3796 #endif
3797 #endif
3798
3799+/* The behavior of of_get_mac_address() changed in kernel 5.2, it now
3800+ * returns an error code and not NULL in case of an error.
3801+ */
3802+#if LINUX_VERSION_IS_LESS(5,2,0)
3803+static inline const void *backport_of_get_mac_address(struct device_node *np)
3804+{
3805+ const void *mac = of_get_mac_address(np);
3806+
3807+ if (!mac)
3808+ return ERR_PTR(-ENODEV);
3809+
3810+ return mac;
3811+}
3812+#define of_get_mac_address LINUX_BACKPORT(of_get_mac_address)
3813+#endif /* < 5.2 */
3814+
3815 #endif /* _BP_OF_NET_H */
3816diff --git a/backport-include/linux/rcupdate.h b/backport-include/linux/rcupdate.h
3817index b96ef49..cec4b3e 100644
3818--- a/backport-include/linux/rcupdate.h
3819+++ b/backport-include/linux/rcupdate.h
3820@@ -41,4 +41,22 @@
3821 #define rcu_dereference_raw(p) rcu_dereference(p)
3822 #endif
3823
3824+#if LINUX_VERSION_IS_LESS(4,20,0)
3825+typedef void (*rcu_callback_t)(struct rcu_head *head);
3826+
3827+static inline void rcu_head_init(struct rcu_head *rhp)
3828+{
3829+ rhp->func = (rcu_callback_t)~0L;
3830+}
3831+
3832+static inline bool
3833+rcu_head_after_call_rcu(struct rcu_head *rhp, rcu_callback_t f)
3834+{
3835+ if (READ_ONCE(rhp->func) == f)
3836+ return true;
3837+ WARN_ON_ONCE(READ_ONCE(rhp->func) != (rcu_callback_t)~0L);
3838+ return false;
3839+}
3840+#endif /* < 4.20 */
3841+
3842 #endif /* __BACKPORT_LINUX_RCUPDATE_H */
3843diff --git a/backport-include/linux/rhashtable.h b/backport-include/linux/rhashtable.h
3844new file mode 100644
3845index 0000000..8e493bc
3846--- /dev/null
3847+++ b/backport-include/linux/rhashtable.h
3848@@ -0,0 +1,31 @@
3849+#ifndef __BACKPORT_RHASHTABLE_H
3850+#define __BACKPORT_RHASHTABLE_H
3851+#include_next <linux/rhashtable.h>
3852+#include <linux/version.h>
3853+
3854+#if LINUX_VERSION_IS_LESS(4,12,0)
3855+/**
3856+ * rhashtable_lookup_get_insert_fast - lookup and insert object into hash table
3857+ * @ht: hash table
3858+ * @obj: pointer to hash head inside object
3859+ * @params: hash table parameters
3860+ *
3861+ * Just like rhashtable_lookup_insert_fast(), but this function returns the
3862+ * object if it exists, NULL if it did not and the insertion was successful,
3863+ * and an ERR_PTR otherwise.
3864+ */
3865+#define rhashtable_lookup_get_insert_fast LINUX_BACKPORT(rhashtable_lookup_get_insert_fast)
3866+static inline void *rhashtable_lookup_get_insert_fast(
3867+ struct rhashtable *ht, struct rhash_head *obj,
3868+ const struct rhashtable_params params)
3869+{
3870+ const char *key = rht_obj(ht, obj);
3871+
3872+ BUG_ON(ht->p.obj_hashfn);
3873+
3874+ return __rhashtable_insert_fast(ht, key + ht->p.key_offset, obj, params,
3875+ false);
3876+}
3877+#endif
3878+
3879+#endif /* __BACKPORT_RHASHTABLE_H */
3880diff --git a/backport-include/linux/string.h b/backport-include/linux/string.h
3881index 3b2e7cd..2bfdf74 100644
3882--- a/backport-include/linux/string.h
3883+++ b/backport-include/linux/string.h
3884@@ -33,8 +33,7 @@ ssize_t strscpy(char *dest, const char *src, size_t count);
3885 char *strreplace(char *s, char old, char new);
3886 #endif
3887
3888-#if LINUX_VERSION_IS_LESS(4,6,0) && \
3889- RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6)
3890+#if LINUX_VERSION_IS_LESS(4,6,0)
3891 int match_string(const char * const *array, size_t n, const char *string);
3892 #endif /* LINUX_VERSION_IS_LESS(4,5,0) */
3893
3894diff --git a/backport-include/linux/timekeeping.h b/backport-include/linux/timekeeping.h
3895index 198b09b..b97b09f 100644
3896--- a/backport-include/linux/timekeeping.h
3897+++ b/backport-include/linux/timekeeping.h
3898@@ -26,6 +26,16 @@ static inline u64 ktime_get_boot_ns(void)
3899 }
3900 #endif /* < 3.17 */
3901
3902+#if LINUX_VERSION_IS_GEQ(5,3,0)
3903+/*
3904+ * In v5.3, this function was renamed, so rename it here for v5.3+.
3905+ * When we merge v5.3 back from upstream, the opposite should be done
3906+ * (i.e. we will have _boottime_ and need to rename to _boot_ in <
3907+ * v5.3 instead).
3908+*/
3909+#define ktime_get_boot_ns ktime_get_boottime_ns
3910+#endif /* > 5.3.0 */
3911+
3912 #if LINUX_VERSION_IS_LESS(4,18,0)
3913 extern time64_t ktime_get_boottime_seconds(void);
3914 #endif /* < 4.18 */
3915diff --git a/backport-include/linux/wait.h b/backport-include/linux/wait.h
3916index fdf80d8..fc5b52c 100644
3917--- a/backport-include/linux/wait.h
3918+++ b/backport-include/linux/wait.h
3919@@ -24,8 +24,7 @@ backport_wait_on_bit_io(void *word, int bit, unsigned mode)
3920
3921 #endif
3922
3923-#if LINUX_VERSION_IS_LESS(3,18,12) && \
3924- RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6)
3925+#if LINUX_VERSION_IS_LESS(3,18,12)
3926 #define WQ_FLAG_WOKEN 0x02
3927
3928 #define wait_woken LINUX_BACKPORT(wait_woken)
3929diff --git a/backport-include/net/genetlink.h b/backport-include/net/genetlink.h
3930index 59611a8..f270ffa 100644
3931--- a/backport-include/net/genetlink.h
3932+++ b/backport-include/net/genetlink.h
3933@@ -48,8 +48,7 @@ static inline void *genl_info_userhdr(struct genl_info *info)
3934 #define genl_info_snd_portid(__genl_info) (__genl_info->snd_portid)
3935 #endif
3936
3937-#if LINUX_VERSION_IS_LESS(3,13,0) && \
3938- RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6)
3939+#if LINUX_VERSION_IS_LESS(3,13,0)
3940 #define __genl_const
3941 #else /* < 3.13 */
3942 #define __genl_const const
3943@@ -94,11 +93,70 @@ void backport_genl_dump_check_consistent(struct netlink_callback *cb,
3944 #endif /* LINUX_VERSION_IS_LESS(4,15,0) */
3945
3946 #if LINUX_VERSION_IS_LESS(5,2,0)
3947+enum genl_validate_flags {
3948+ GENL_DONT_VALIDATE_STRICT = BIT(0),
3949+ GENL_DONT_VALIDATE_DUMP = BIT(1),
3950+ GENL_DONT_VALIDATE_DUMP_STRICT = BIT(2),
3951+};
3952+
3953+#if LINUX_VERSION_IS_GEQ(3,13,0)
3954+struct backport_genl_ops {
3955+ void *__dummy_was_policy_must_be_null;
3956+ int (*doit)(struct sk_buff *skb,
3957+ struct genl_info *info);
3958+#if LINUX_VERSION_IS_GEQ(4,5,0) || \
3959+ LINUX_VERSION_IN_RANGE(4,4,104, 4,5,0) || \
3960+ LINUX_VERSION_IN_RANGE(4,1,48, 4,2,0) || \
3961+ LINUX_VERSION_IN_RANGE(3,18,86, 3,19,0)
3962+ int (*start)(struct netlink_callback *cb);
3963+#endif
3964+ int (*dumpit)(struct sk_buff *skb,
3965+ struct netlink_callback *cb);
3966+ int (*done)(struct netlink_callback *cb);
3967+ u8 cmd;
3968+ u8 internal_flags;
3969+ u8 flags;
3970+ u8 validate;
3971+};
3972+#else
3973+struct backport_genl_ops {
3974+ u8 cmd;
3975+ u8 internal_flags;
3976+ unsigned int flags;
3977+ void *__dummy_was_policy_must_be_null;
3978+ int (*doit)(struct sk_buff *skb,
3979+ struct genl_info *info);
3980+ int (*dumpit)(struct sk_buff *skb,
3981+ struct netlink_callback *cb);
3982+ int (*done)(struct netlink_callback *cb);
3983+ struct list_head ops_list;
3984+ u8 validate;
3985+};
3986+#endif
3987+
3988 static inline int
3989 __real_backport_genl_register_family(struct genl_family *family)
3990 {
3991+#define OPS_VALIDATE(f) \
3992+ BUILD_BUG_ON(offsetof(struct genl_ops, f) != \
3993+ offsetof(struct backport_genl_ops, f))
3994+ OPS_VALIDATE(doit);
3995+#if LINUX_VERSION_IS_GEQ(4,5,0) || \
3996+ LINUX_VERSION_IN_RANGE(4,4,104, 4,5,0) || \
3997+ LINUX_VERSION_IN_RANGE(4,1,48, 4,2,0) || \
3998+ LINUX_VERSION_IN_RANGE(3,18,86, 3,19,0)
3999+ OPS_VALIDATE(start);
4000+#endif
4001+ OPS_VALIDATE(dumpit);
4002+ OPS_VALIDATE(done);
4003+ OPS_VALIDATE(cmd);
4004+ OPS_VALIDATE(internal_flags);
4005+ OPS_VALIDATE(flags);
4006+
4007 return genl_register_family(family);
4008 }
4009+#define genl_ops backport_genl_ops
4010+
4011 static inline int
4012 __real_backport_genl_unregister_family(struct genl_family *family)
4013 {
4014diff --git a/backport-include/net/inet_frag.h b/backport-include/net/inet_frag.h
4015deleted file mode 100644
4016index a03f031..0000000
4017--- a/backport-include/net/inet_frag.h
4018+++ /dev/null
4019@@ -1,78 +0,0 @@
4020-#ifndef __BACKPORT__NET_FRAG_H__
4021-#define __BACKPORT__NET_FRAG_H__
4022-#include_next <net/inet_frag.h>
4023-#include <linux/version.h>
4024-
4025-#if LINUX_VERSION_IS_LESS(3,9,0)
4026-/* Memory Tracking Functions. */
4027-#define frag_mem_limit LINUX_BACKPORT(frag_mem_limit)
4028-static inline int frag_mem_limit(struct netns_frags *nf)
4029-{
4030- return atomic_read(&nf->mem);
4031-}
4032-
4033-#define init_frag_mem_limit LINUX_BACKPORT(init_frag_mem_limit)
4034-static inline void init_frag_mem_limit(struct netns_frags *nf)
4035-{
4036- atomic_set(&nf->mem, 0);
4037-}
4038-
4039-#define sum_frag_mem_limit LINUX_BACKPORT(sum_frag_mem_limit)
4040-static inline int sum_frag_mem_limit(struct netns_frags *nf)
4041-{
4042- return atomic_read(&nf->mem);
4043-}
4044-
4045-#define inet_frag_maybe_warn_overflow LINUX_BACKPORT(inet_frag_maybe_warn_overflow)
4046-void inet_frag_maybe_warn_overflow(struct inet_frag_queue *q,
4047- const char *prefix);
4048-#endif /* LINUX_VERSION_IS_LESS(3,9,0) */
4049-
4050-/* the type of the paramater changed with kernel 4.3 */
4051-#if LINUX_VERSION_IS_LESS(3,9,0) || LINUX_VERSION_IN_RANGE(3,16,51, 3,17,0)
4052-#define sub_frag_mem_limit LINUX_BACKPORT(sub_frag_mem_limit)
4053-static inline void sub_frag_mem_limit(struct netns_frags *nf, int i)
4054-{
4055- atomic_sub(i, &nf->mem);
4056-}
4057-
4058-#define add_frag_mem_limit LINUX_BACKPORT(add_frag_mem_limit)
4059-static inline void add_frag_mem_limit(struct netns_frags *nf, int i)
4060-{
4061- atomic_add(i, &nf->mem);
4062-}
4063-#elif LINUX_VERSION_IS_LESS(4,3,0) && \
4064- RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6)
4065-#define sub_frag_mem_limit LINUX_BACKPORT(sub_frag_mem_limit)
4066-static inline void sub_frag_mem_limit(struct netns_frags *nf, int i)
4067-{
4068- __percpu_counter_add(&nf->mem, -i, frag_percpu_counter_batch);
4069-}
4070-
4071-#define add_frag_mem_limit LINUX_BACKPORT(add_frag_mem_limit)
4072-static inline void add_frag_mem_limit(struct netns_frags *nf, int i)
4073-{
4074- __percpu_counter_add(&nf->mem, i, frag_percpu_counter_batch);
4075-}
4076-#endif /* LINUX_VERSION_IS_LESS(4,3,0) */
4077-
4078-#if LINUX_VERSION_IS_LESS(4,4,0) && \
4079- LINUX_VERSION_IS_GEQ(3,9,0) && \
4080- RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6)
4081-#define inet_frags_uninit_net LINUX_BACKPORT(inet_frags_uninit_net)
4082-static inline void inet_frags_uninit_net(struct netns_frags *nf)
4083-{
4084- percpu_counter_destroy(&nf->mem);
4085-}
4086-#endif /* < 4.4 && >= 3.9 */
4087-
4088-#if LINUX_VERSION_IS_LESS(4,4,0)
4089-static inline int backport_inet_frags_init_net(struct netns_frags *nf)
4090-{
4091- inet_frags_init_net(nf);
4092- return 0;
4093-}
4094-#define inet_frags_init_net LINUX_BACKPORT(inet_frags_init_net)
4095-#endif /* < 4.4 */
4096-
4097-#endif /* __BACKPORT__NET_FRAG_H__ */
4098diff --git a/backport-include/net/ipv6_stubs.h b/backport-include/net/ipv6_stubs.h
4099new file mode 100644
4100index 0000000..7d9a522
4101--- /dev/null
4102+++ b/backport-include/net/ipv6_stubs.h
4103@@ -0,0 +1,13 @@
4104+/* SPDX-License-Identifier: GPL-2.0 */
4105+#ifndef _BACKPORT_IPV6_STUBS_H
4106+#define _BACKPORT_IPV6_STUBS_H
4107+
4108+#if LINUX_VERSION_IS_LESS(5,2,0)
4109+
4110+#include <net/addrconf.h>
4111+
4112+#else
4113+#include_next <net/ipv6_stubs.h>
4114+#endif
4115+
4116+#endif /* _BACKPORT_IPV6_STUBS_H */
4117diff --git a/backport-include/net/netlink.h b/backport-include/net/netlink.h
4118index 87c30cc..996a4d3 100644
4119--- a/backport-include/net/netlink.h
4120+++ b/backport-include/net/netlink.h
4121@@ -4,20 +4,7 @@
4122 #include <linux/version.h>
4123 #include <linux/in6.h>
4124
4125-#if LINUX_VERSION_IS_LESS(5,1,0)
4126-#undef NLA_POLICY_NESTED
4127-#undef NLA_POLICY_NESTED_ARRAY
4128-#define _NLA_POLICY_NESTED(maxattr, policy) \
4129- { .type = NLA_NESTED, .validation_data = policy, .len = maxattr }
4130-#define _NLA_POLICY_NESTED_ARRAY(maxattr, policy) \
4131- { .type = NLA_NESTED_ARRAY, .validation_data = policy, .len = maxattr }
4132-#define NLA_POLICY_NESTED(policy) \
4133- _NLA_POLICY_NESTED(ARRAY_SIZE(policy) - 1, policy)
4134-#define NLA_POLICY_NESTED_ARRAY(policy) \
4135- _NLA_POLICY_NESTED_ARRAY(ARRAY_SIZE(policy) - 1, policy)
4136-#endif /* < 5.1 */
4137-
4138-#if LINUX_VERSION_IS_LESS(4,20,0)
4139+#if LINUX_VERSION_IS_LESS(5,2,0)
4140 /* can't backport using the enum - need to override */
4141 #define NLA_UNSPEC 0
4142 #define NLA_U8 1
4143@@ -39,17 +26,10 @@
4144 #define NLA_REJECT 17
4145 #define NLA_EXACT_LEN 18
4146 #define NLA_EXACT_LEN_WARN 19
4147-#define __NLA_TYPE_MAX 20
4148+#define NLA_MIN_LEN 20
4149+#define __NLA_TYPE_MAX 21
4150 #define NLA_TYPE_MAX (__NLA_TYPE_MAX - 1)
4151
4152-enum nla_policy_validation {
4153- NLA_VALIDATE_NONE,
4154- NLA_VALIDATE_RANGE,
4155- NLA_VALIDATE_MIN,
4156- NLA_VALIDATE_MAX,
4157- NLA_VALIDATE_FUNCTION,
4158-};
4159-
4160 struct backport_nla_policy {
4161 u8 type;
4162 u8 validation_type;
4163@@ -61,65 +41,105 @@ struct backport_nla_policy {
4164 };
4165 int (*validate)(const struct nlattr *attr,
4166 struct netlink_ext_ack *extack);
4167+ u16 strict_start_type;
4168 };
4169 };
4170 #define nla_policy backport_nla_policy
4171
4172-#define NLA_POLICY_EXACT_LEN(_len) { .type = NLA_EXACT_LEN, .len = _len }
4173-#define NLA_POLICY_EXACT_LEN_WARN(_len) { .type = NLA_EXACT_LEN_WARN, \
4174- .len = _len }
4175+#define nla_nest_start_noflag LINUX_BACKPORT(nla_nest_start_noflag)
4176+static inline struct nlattr *nla_nest_start_noflag(struct sk_buff *skb,
4177+ int attrtype)
4178+{
4179+ struct nlattr *start = (struct nlattr *)skb_tail_pointer(skb);
4180
4181-#define NLA_POLICY_ETH_ADDR NLA_POLICY_EXACT_LEN(ETH_ALEN)
4182-#define NLA_POLICY_ETH_ADDR_COMPAT NLA_POLICY_EXACT_LEN_WARN(ETH_ALEN)
4183+ if (nla_put(skb, attrtype, 0, NULL) < 0)
4184+ return NULL;
4185
4186-#define __NLA_ENSURE(condition) (sizeof(char[1 - 2*!(condition)]) - 1)
4187-#define NLA_ENSURE_INT_TYPE(tp) \
4188- (__NLA_ENSURE(tp == NLA_S8 || tp == NLA_U8 || \
4189- tp == NLA_S16 || tp == NLA_U16 || \
4190- tp == NLA_S32 || tp == NLA_U32 || \
4191- tp == NLA_S64 || tp == NLA_U64) + tp)
4192-#define NLA_ENSURE_NO_VALIDATION_PTR(tp) \
4193- (__NLA_ENSURE(tp != NLA_BITFIELD32 && \
4194- tp != NLA_REJECT && \
4195- tp != NLA_NESTED && \
4196- tp != NLA_NESTED_ARRAY) + tp)
4197+ return start;
4198+}
4199
4200-#define NLA_POLICY_RANGE(tp, _min, _max) { \
4201- .type = NLA_ENSURE_INT_TYPE(tp), \
4202- .validation_type = NLA_VALIDATE_RANGE, \
4203- .min = _min, \
4204- .max = _max \
4205+#define nla_nest_start LINUX_BACKPORT(nla_nest_start)
4206+static inline struct nlattr *nla_nest_start(struct sk_buff *skb, int attrtype)
4207+{
4208+ return nla_nest_start_noflag(skb, attrtype | NLA_F_NESTED);
4209 }
4210
4211-#define NLA_POLICY_MIN(tp, _min) { \
4212- .type = NLA_ENSURE_INT_TYPE(tp), \
4213- .validation_type = NLA_VALIDATE_MIN, \
4214- .min = _min, \
4215+enum netlink_validation {
4216+ NL_VALIDATE_LIBERAL = 0,
4217+ NL_VALIDATE_TRAILING = BIT(0),
4218+ NL_VALIDATE_MAXTYPE = BIT(1),
4219+ NL_VALIDATE_UNSPEC = BIT(2),
4220+ NL_VALIDATE_STRICT_ATTRS = BIT(3),
4221+ NL_VALIDATE_NESTED = BIT(4),
4222+};
4223+
4224+#define NL_VALIDATE_DEPRECATED_STRICT (NL_VALIDATE_TRAILING |\
4225+ NL_VALIDATE_MAXTYPE)
4226+#define NL_VALIDATE_STRICT (NL_VALIDATE_TRAILING |\
4227+ NL_VALIDATE_MAXTYPE |\
4228+ NL_VALIDATE_UNSPEC |\
4229+ NL_VALIDATE_STRICT_ATTRS |\
4230+ NL_VALIDATE_NESTED)
4231+
4232+#define __nla_validate LINUX_BACKPORT(__nla_validate)
4233+int __nla_validate(const struct nlattr *head, int len, int maxtype,
4234+ const struct nla_policy *policy, unsigned int validate,
4235+ struct netlink_ext_ack *extack);
4236+#define __nla_parse LINUX_BACKPORT(__nla_parse)
4237+int __nla_parse(struct nlattr **tb, int maxtype, const struct nlattr *head,
4238+ int len, const struct nla_policy *policy, unsigned int validate,
4239+ struct netlink_ext_ack *extack);
4240+
4241+#define nla_policy_len LINUX_BACKPORT(nla_policy_len)
4242+int nla_policy_len(const struct nla_policy *, int);
4243+
4244+#define nla_parse LINUX_BACKPORT(nla_parse)
4245+static inline int nla_parse(struct nlattr **tb, int maxtype,
4246+ const struct nlattr *head, int len,
4247+ const struct nla_policy *policy,
4248+ struct netlink_ext_ack *extack)
4249+{
4250+ return __nla_parse(tb, maxtype, head, len, policy,
4251+ NL_VALIDATE_STRICT, extack);
4252 }
4253
4254-#define NLA_POLICY_MAX(tp, _max) { \
4255- .type = NLA_ENSURE_INT_TYPE(tp), \
4256- .validation_type = NLA_VALIDATE_MAX, \
4257- .max = _max, \
4258+#define nla_parse_deprecated LINUX_BACKPORT(nla_parse_deprecated)
4259+static inline int nla_parse_deprecated(struct nlattr **tb, int maxtype,
4260+ const struct nlattr *head, int len,
4261+ const struct nla_policy *policy,
4262+ struct netlink_ext_ack *extack)
4263+{
4264+ return __nla_parse(tb, maxtype, head, len, policy,
4265+ NL_VALIDATE_LIBERAL, extack);
4266 }
4267
4268-#define NLA_POLICY_VALIDATE_FN(tp, fn, ...) { \
4269- .type = NLA_ENSURE_NO_VALIDATION_PTR(tp), \
4270- .validation_type = NLA_VALIDATE_FUNCTION, \
4271- .validate = fn, \
4272- .len = __VA_ARGS__ + 0, \
4273+#define nla_parse_deprecated_strict LINUX_BACKPORT(nla_parse_deprecated_strict)
4274+static inline int nla_parse_deprecated_strict(struct nlattr **tb, int maxtype,
4275+ const struct nlattr *head,
4276+ int len,
4277+ const struct nla_policy *policy,
4278+ struct netlink_ext_ack *extack)
4279+{
4280+ return __nla_parse(tb, maxtype, head, len, policy,
4281+ NL_VALIDATE_DEPRECATED_STRICT, extack);
4282 }
4283
4284-#define nla_validate LINUX_BACKPORT(nla_validate)
4285-int nla_validate(const struct nlattr *head, int len, int maxtype,
4286- const struct nla_policy *policy,
4287- struct netlink_ext_ack *extack);
4288-#define nla_parse LINUX_BACKPORT(nla_parse)
4289-int nla_parse(struct nlattr **tb, int maxtype, const struct nlattr *head,
4290- int len, const struct nla_policy *policy,
4291- struct netlink_ext_ack *extack);
4292-#define nla_policy_len LINUX_BACKPORT(nla_policy_len)
4293-int nla_policy_len(const struct nla_policy *, int);
4294+#define __nlmsg_parse LINUX_BACKPORT(__nlmsg_parse)
4295+static inline int __nlmsg_parse(const struct nlmsghdr *nlh, int hdrlen,
4296+ struct nlattr *tb[], int maxtype,
4297+ const struct nla_policy *policy,
4298+ unsigned int validate,
4299+ struct netlink_ext_ack *extack)
4300+{
4301+ if (nlh->nlmsg_len < nlmsg_msg_size(hdrlen)) {
4302+ NL_SET_ERR_MSG(extack, "Invalid header length");
4303+ return -EINVAL;
4304+ }
4305+
4306+ return __nla_parse(tb, maxtype, nlmsg_attrdata(nlh, hdrlen),
4307+ nlmsg_attrlen(nlh, hdrlen), policy, validate,
4308+ extack);
4309+}
4310
4311 #define nlmsg_parse LINUX_BACKPORT(nlmsg_parse)
4312 static inline int nlmsg_parse(const struct nlmsghdr *nlh, int hdrlen,
4313@@ -127,11 +147,63 @@ static inline int nlmsg_parse(const struct nlmsghdr *nlh, int hdrlen,
4314 const struct nla_policy *policy,
4315 struct netlink_ext_ack *extack)
4316 {
4317+ return __nla_parse(tb, maxtype, nlmsg_attrdata(nlh, hdrlen),
4318+ nlmsg_attrlen(nlh, hdrlen), policy,
4319+ NL_VALIDATE_STRICT, extack);
4320+}
4321+
4322+#define nlmsg_parse_deprecated LINUX_BACKPORT(nlmsg_parse_deprecated)
4323+static inline int nlmsg_parse_deprecated(const struct nlmsghdr *nlh, int hdrlen,
4324+ struct nlattr *tb[], int maxtype,
4325+ const struct nla_policy *policy,
4326+ struct netlink_ext_ack *extack)
4327+{
4328+ return __nlmsg_parse(nlh, hdrlen, tb, maxtype, policy,
4329+ NL_VALIDATE_LIBERAL, extack);
4330+}
4331+
4332+#define nlmsg_parse_deprecated_strict LINUX_BACKPORT(nlmsg_parse_deprecated_strict)
4333+static inline int
4334+nlmsg_parse_deprecated_strict(const struct nlmsghdr *nlh, int hdrlen,
4335+ struct nlattr *tb[], int maxtype,
4336+ const struct nla_policy *policy,
4337+ struct netlink_ext_ack *extack)
4338+{
4339+ return __nlmsg_parse(nlh, hdrlen, tb, maxtype, policy,
4340+ NL_VALIDATE_DEPRECATED_STRICT, extack);
4341+}
4342+
4343+#define nla_validate_deprecated LINUX_BACKPORT(nla_validate_deprecated)
4344+static inline int nla_validate_deprecated(const struct nlattr *head, int len,
4345+ int maxtype,
4346+ const struct nla_policy *policy,
4347+ struct netlink_ext_ack *extack)
4348+{
4349+ return __nla_validate(head, len, maxtype, policy, NL_VALIDATE_LIBERAL,
4350+ extack);
4351+}
4352+
4353+#define nla_validate LINUX_BACKPORT(nla_validate)
4354+static inline int nla_validate(const struct nlattr *head, int len, int maxtype,
4355+ const struct nla_policy *policy,
4356+ struct netlink_ext_ack *extack)
4357+{
4358+ return __nla_validate(head, len, maxtype, policy, NL_VALIDATE_STRICT,
4359+ extack);
4360+}
4361+
4362+#define nlmsg_validate_deprecated LINUX_BACKPORT(nlmsg_validate_deprecated)
4363+static inline int nlmsg_validate_deprecated(const struct nlmsghdr *nlh,
4364+ int hdrlen, int maxtype,
4365+ const struct nla_policy *policy,
4366+ struct netlink_ext_ack *extack)
4367+{
4368 if (nlh->nlmsg_len < nlmsg_msg_size(hdrlen))
4369 return -EINVAL;
4370
4371- return nla_parse(tb, maxtype, nlmsg_attrdata(nlh, hdrlen),
4372- nlmsg_attrlen(nlh, hdrlen), policy, extack);
4373+ return __nla_validate(nlmsg_attrdata(nlh, hdrlen),
4374+ nlmsg_attrlen(nlh, hdrlen), maxtype,
4375+ policy, NL_VALIDATE_LIBERAL, extack);
4376 }
4377
4378 #define nlmsg_validate LINUX_BACKPORT(nlmsg_validate)
4379@@ -143,9 +215,9 @@ static inline int nlmsg_validate(const struct nlmsghdr *nlh,
4380 if (nlh->nlmsg_len < nlmsg_msg_size(hdrlen))
4381 return -EINVAL;
4382
4383- return nla_validate(nlmsg_attrdata(nlh, hdrlen),
4384- nlmsg_attrlen(nlh, hdrlen), maxtype, policy,
4385- extack);
4386+ return __nla_validate(nlmsg_attrdata(nlh, hdrlen),
4387+ nlmsg_attrlen(nlh, hdrlen), maxtype,
4388+ policy, NL_VALIDATE_STRICT, extack);
4389 }
4390
4391 #define nla_parse_nested LINUX_BACKPORT(nla_parse_nested)
4392@@ -154,17 +226,111 @@ static inline int nla_parse_nested(struct nlattr *tb[], int maxtype,
4393 const struct nla_policy *policy,
4394 struct netlink_ext_ack *extack)
4395 {
4396- return nla_parse(tb, maxtype, nla_data(nla), nla_len(nla), policy,
4397- extack);
4398+ if (!(nla->nla_type & NLA_F_NESTED)) {
4399+ NL_SET_ERR_MSG_ATTR(extack, nla, "NLA_F_NESTED is missing");
4400+ return -EINVAL;
4401+ }
4402+
4403+ return __nla_parse(tb, maxtype, nla_data(nla), nla_len(nla), policy,
4404+ NL_VALIDATE_STRICT, extack);
4405 }
4406
4407-#define nla_validate_nested LINUX_BACKPORT(nla_validate_nested)
4408-static inline int nla_validate_nested(const struct nlattr *start, int maxtype,
4409- const struct nla_policy *policy,
4410- struct netlink_ext_ack *extack)
4411+#define nla_parse_nested_deprecated LINUX_BACKPORT(nla_parse_nested_deprecated)
4412+static inline int nla_parse_nested_deprecated(struct nlattr *tb[], int maxtype,
4413+ const struct nlattr *nla,
4414+ const struct nla_policy *policy,
4415+ struct netlink_ext_ack *extack)
4416 {
4417- return nla_validate(nla_data(start), nla_len(start), maxtype, policy,
4418- extack);
4419+ return __nla_parse(tb, maxtype, nla_data(nla), nla_len(nla), policy,
4420+ NL_VALIDATE_LIBERAL, extack);
4421+}
4422+
4423+#define __nla_validate_nested LINUX_BACKPORT(__nla_validate_nested)
4424+static inline int __nla_validate_nested(const struct nlattr *start, int maxtype,
4425+ const struct nla_policy *policy,
4426+ unsigned int validate,
4427+ struct netlink_ext_ack *extack)
4428+{
4429+ return __nla_validate(nla_data(start), nla_len(start), maxtype, policy,
4430+ validate, extack);
4431+}
4432+
4433+#define nla_validate_nested_deprecated LINUX_BACKPORT(nla_validate_nested_deprecated)
4434+static inline int
4435+nla_validate_nested_deprecated(const struct nlattr *start, int maxtype,
4436+ const struct nla_policy *policy,
4437+ struct netlink_ext_ack *extack)
4438+{
4439+ return __nla_validate_nested(start, maxtype, policy,
4440+ NL_VALIDATE_LIBERAL, extack);
4441+}
4442+#endif /* < 5.2 */
4443+
4444+#if LINUX_VERSION_IS_LESS(5,1,0)
4445+#undef NLA_POLICY_NESTED
4446+#undef NLA_POLICY_NESTED_ARRAY
4447+#define _NLA_POLICY_NESTED(maxattr, policy) \
4448+ { .type = NLA_NESTED, .validation_data = policy, .len = maxattr }
4449+#define _NLA_POLICY_NESTED_ARRAY(maxattr, policy) \
4450+ { .type = NLA_NESTED_ARRAY, .validation_data = policy, .len = maxattr }
4451+#define NLA_POLICY_NESTED(policy) \
4452+ _NLA_POLICY_NESTED(ARRAY_SIZE(policy) - 1, policy)
4453+#define NLA_POLICY_NESTED_ARRAY(policy) \
4454+ _NLA_POLICY_NESTED_ARRAY(ARRAY_SIZE(policy) - 1, policy)
4455+#endif /* < 5.1 */
4456+
4457+#if LINUX_VERSION_IS_LESS(4,20,0)
4458+enum nla_policy_validation {
4459+ NLA_VALIDATE_NONE,
4460+ NLA_VALIDATE_RANGE,
4461+ NLA_VALIDATE_MIN,
4462+ NLA_VALIDATE_MAX,
4463+ NLA_VALIDATE_FUNCTION,
4464+};
4465+
4466+#define NLA_POLICY_EXACT_LEN(_len) { .type = NLA_EXACT_LEN, .len = _len }
4467+#define NLA_POLICY_EXACT_LEN_WARN(_len) { .type = NLA_EXACT_LEN_WARN, \
4468+ .len = _len }
4469+
4470+#define NLA_POLICY_ETH_ADDR NLA_POLICY_EXACT_LEN(ETH_ALEN)
4471+#define NLA_POLICY_ETH_ADDR_COMPAT NLA_POLICY_EXACT_LEN_WARN(ETH_ALEN)
4472+
4473+#define __NLA_ENSURE(condition) (sizeof(char[1 - 2*!(condition)]) - 1)
4474+#define NLA_ENSURE_INT_TYPE(tp) \
4475+ (__NLA_ENSURE(tp == NLA_S8 || tp == NLA_U8 || \
4476+ tp == NLA_S16 || tp == NLA_U16 || \
4477+ tp == NLA_S32 || tp == NLA_U32 || \
4478+ tp == NLA_S64 || tp == NLA_U64) + tp)
4479+#define NLA_ENSURE_NO_VALIDATION_PTR(tp) \
4480+ (__NLA_ENSURE(tp != NLA_BITFIELD32 && \
4481+ tp != NLA_REJECT && \
4482+ tp != NLA_NESTED && \
4483+ tp != NLA_NESTED_ARRAY) + tp)
4484+
4485+#define NLA_POLICY_RANGE(tp, _min, _max) { \
4486+ .type = NLA_ENSURE_INT_TYPE(tp), \
4487+ .validation_type = NLA_VALIDATE_RANGE, \
4488+ .min = _min, \
4489+ .max = _max \
4490+}
4491+
4492+#define NLA_POLICY_MIN(tp, _min) { \
4493+ .type = NLA_ENSURE_INT_TYPE(tp), \
4494+ .validation_type = NLA_VALIDATE_MIN, \
4495+ .min = _min, \
4496+}
4497+
4498+#define NLA_POLICY_MAX(tp, _max) { \
4499+ .type = NLA_ENSURE_INT_TYPE(tp), \
4500+ .validation_type = NLA_VALIDATE_MAX, \
4501+ .max = _max, \
4502+}
4503+
4504+#define NLA_POLICY_VALIDATE_FN(tp, fn, ...) { \
4505+ .type = NLA_ENSURE_NO_VALIDATION_PTR(tp), \
4506+ .validation_type = NLA_VALIDATE_FUNCTION, \
4507+ .validate = fn, \
4508+ .len = __VA_ARGS__ + 0, \
4509 }
4510 #endif /* < 4.20 */
4511
4512@@ -255,21 +421,6 @@ static inline int _nla_parse_nested4(struct nlattr *tb[], int maxtype,
4513 #undef nla_parse_nested
4514 #define nla_parse_nested(...) \
4515 macro_dispatcher(_nla_parse_nested, __VA_ARGS__)(__VA_ARGS__)
4516-
4517-static inline int _nla_validate_nested4(const struct nlattr *start, int maxtype,
4518- const struct nla_policy *policy,
4519- struct netlink_ext_ack *extack)
4520-{
4521- return nla_validate_nested(start, maxtype, policy, extack);
4522-}
4523-static inline int _nla_validate_nested3(const struct nlattr *start, int maxtype,
4524- const struct nla_policy *policy)
4525-{
4526- return nla_validate_nested(start, maxtype, policy, NULL);
4527-}
4528-#undef nla_validate_nested
4529-#define nla_validate_nested(...) \
4530- macro_dispatcher(_nla_validate_nested, __VA_ARGS__)(__VA_ARGS__)
4531 #endif /* LINUX_VERSION_IS_LESS(4,12,0) */
4532
4533 #if LINUX_VERSION_IS_LESS(3,7,0)
4534diff --git a/compat/Kconfig b/compat/Kconfig
4535index 4abaa0e..297041b 100644
4536--- a/compat/Kconfig
4537+++ b/compat/Kconfig
4538@@ -62,6 +62,11 @@ config BP_MODULES
4539 This symbol is necessary for the newer kconf tool, it looks
4540 for the "option modules" to control the 'm' state.
4541
4542+config BPAUTO_BUILD_NLATTR
4543+ def_bool y
4544+ depends on KERNEL_5_2
4545+ #c-file lib/nlattr.c
4546+
4547 config BPAUTO_BUILD_CORDIC
4548 depends on n
4549 tristate
4550@@ -71,7 +76,7 @@ config BPAUTO_BUILD_CORDIC
4551 default m if BPAUTO_CORDIC
4552 default m if BPAUTO_USERSEL_BUILD_ALL
4553 #module-name cordic
4554- #c-file lib/cordic.c
4555+ #c-file lib/math/cordic.c
4556
4557 config BPAUTO_CORDIC
4558 bool
4559diff --git a/compat/Makefile b/compat/Makefile
4560index 1f62e4f..5456858 100644
4561--- a/compat/Makefile
4562+++ b/compat/Makefile
4563@@ -37,9 +37,7 @@ compat-$(CPTCFG_KERNEL_4_7) += backport-4.7.o
4564 compat-$(CPTCFG_KERNEL_4_8) += backport-4.8.o
4565 compat-$(CPTCFG_KERNEL_4_10) += backport-4.10.o
4566 compat-$(CPTCFG_KERNEL_4_18) += backport-4.18.o
4567-compat-$(CPTCFG_KERNEL_4_20) += backport-4.20.o
4568-
4569-compat-$(CPTCFG_KERNEL_5_2) += backport-genetlink.o
4570+compat-$(CPTCFG_KERNEL_5_2) += backport-5.2.o backport-genetlink.o
4571
4572 compat-$(CPTCFG_BPAUTO_BUILD_SYSTEM_DATA_VERIFICATION) += verification/verify.o
4573 compat-$(CPTCFG_BPAUTO_BUILD_SYSTEM_DATA_VERIFICATION) += verification/pkcs7.asn1.o
4574diff --git a/compat/backport-3.13.c b/compat/backport-3.13.c
4575index 6c91ced..2b61711 100644
4576--- a/compat/backport-3.13.c
4577+++ b/compat/backport-3.13.c
4578@@ -118,8 +118,7 @@ bool pci_device_is_present(struct pci_dev *pdev)
4579 EXPORT_SYMBOL_GPL(pci_device_is_present);
4580 #endif /* CONFIG_PCI */
4581
4582-#if defined(CONFIG_HWMON) && \
4583- RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6)
4584+#ifdef CONFIG_HWMON
4585 struct device*
4586 hwmon_device_register_with_groups(struct device *dev, const char *name,
4587 void *drvdata,
4588diff --git a/compat/backport-3.17.c b/compat/backport-3.17.c
4589index a54cc3d..adabec1 100644
4590--- a/compat/backport-3.17.c
4591+++ b/compat/backport-3.17.c
4592@@ -31,7 +31,6 @@ int bit_wait_io(void *word)
4593 EXPORT_SYMBOL_GPL(bit_wait_io);
4594 #endif
4595
4596-#if RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6)
4597 /**
4598 * ktime_get_raw - Returns the raw monotonic time in ktime_t format
4599 */
4600@@ -43,7 +42,7 @@ ktime_t ktime_get_raw(void)
4601 return timespec_to_ktime(ts);
4602 }
4603 EXPORT_SYMBOL_GPL(ktime_get_raw);
4604-#endif /* RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6) */
4605+
4606
4607 /**
4608 * nsecs_to_jiffies64 - Convert nsecs in u64 to jiffies64
4609@@ -149,7 +148,6 @@ char *devm_kasprintf(struct device *dev, gfp_t gfp, const char *fmt, ...)
4610 }
4611 EXPORT_SYMBOL_GPL(devm_kasprintf);
4612
4613-#if RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6)
4614 #define STANDARD_PARAM_DEF(name, type, format, strtolfn) \
4615 int param_set_##name(const char *val, const struct kernel_param *kp) \
4616 { \
4617@@ -168,4 +166,3 @@ EXPORT_SYMBOL_GPL(devm_kasprintf);
4618 EXPORT_SYMBOL(param_get_##name); \
4619 EXPORT_SYMBOL(param_ops_##name)
4620 STANDARD_PARAM_DEF(ullong, unsigned long long, "%llu", kstrtoull);
4621-#endif /* RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6) */
4622diff --git a/compat/backport-3.19.c b/compat/backport-3.19.c
4623index b56a770..ec44130 100644
4624--- a/compat/backport-3.19.c
4625+++ b/compat/backport-3.19.c
4626@@ -16,8 +16,7 @@
4627 #include <linux/skbuff.h>
4628 #include <linux/debugfs.h>
4629
4630-#if LINUX_VERSION_IS_LESS(3,18,12) && \
4631- RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6)
4632+#if LINUX_VERSION_IS_LESS(3,18,12)
4633 static inline bool is_kthread_should_stop(void)
4634 {
4635 return (current->flags & PF_KTHREAD) && kthread_should_stop();
4636diff --git a/compat/backport-4.0.c b/compat/backport-4.0.c
4637index 53b3cdd..d6e22d3 100644
4638--- a/compat/backport-4.0.c
4639+++ b/compat/backport-4.0.c
4640@@ -334,7 +334,6 @@ trace_seq_buffer_ptr(struct trace_seq *s)
4641 }
4642 #endif
4643
4644-#if RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6)
4645 const char *
4646 ftrace_print_array_seq(struct trace_seq *p, const void *buf, int buf_len,
4647 size_t el_size)
4648@@ -378,4 +377,3 @@ ftrace_print_array_seq(struct trace_seq *p, const void *buf, int buf_len,
4649 return ret;
4650 }
4651 EXPORT_SYMBOL(ftrace_print_array_seq);
4652-#endif /* RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6) */
4653diff --git a/compat/backport-4.1.c b/compat/backport-4.1.c
4654index 3035a00..e0a3ec6 100644
4655--- a/compat/backport-4.1.c
4656+++ b/compat/backport-4.1.c
4657@@ -12,7 +12,6 @@
4658 #include <linux/netdevice.h>
4659 #include <linux/tty.h>
4660
4661-#if RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6)
4662 netdev_features_t passthru_features_check(struct sk_buff *skb,
4663 struct net_device *dev,
4664 netdev_features_t features)
4665@@ -20,7 +19,6 @@ netdev_features_t passthru_features_check(struct sk_buff *skb,
4666 return features;
4667 }
4668 EXPORT_SYMBOL_GPL(passthru_features_check);
4669-#endif /* RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6) */
4670
4671 #ifdef CONFIG_TTY
4672 #if LINUX_VERSION_IS_GEQ(4,0,0)
4673diff --git a/compat/backport-4.6.c b/compat/backport-4.6.c
4674index 499d8d3..8d0ecf5 100644
4675--- a/compat/backport-4.6.c
4676+++ b/compat/backport-4.6.c
4677@@ -76,8 +76,7 @@ int kstrtobool_from_user(const char __user *s, size_t count, bool *res)
4678 }
4679 EXPORT_SYMBOL_GPL(kstrtobool_from_user);
4680
4681-#if RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6)
4682- /**
4683+/**
4684 * match_string - matches given string in an array
4685 * @array: array of strings
4686 * @n: number of strings in the array or -1 for NULL terminated arrays
4687@@ -102,4 +101,3 @@ int match_string(const char * const *array, size_t n, const char *string)
4688 return -EINVAL;
4689 }
4690 EXPORT_SYMBOL(match_string);
4691-#endif /* RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(7,6) */
4692diff --git a/compat/backport-4.7.c b/compat/backport-4.7.c
4693index 5e9152e..372951b 100644
4694--- a/compat/backport-4.7.c
4695+++ b/compat/backport-4.7.c
4696@@ -120,8 +120,7 @@ EXPORT_SYMBOL_GPL(nla_put_64bit);
4697 * Below 3.18 or if the kernel has devcoredump disabled, we copied the
4698 * entire devcoredump, so no need to define these functions.
4699 */
4700-#if (LINUX_VERSION_IS_GEQ(3,18,0) || \
4701- RHEL_RELEASE_CODE >= RHEL_RELEASE_VERSION(7,6)) && \
4702+#if LINUX_VERSION_IS_GEQ(3,18,0) && \
4703 !defined(CPTCFG_BPAUTO_BUILD_WANT_DEV_COREDUMP)
4704 #include <linux/devcoredump.h>
4705 #include <linux/scatterlist.h>
4706diff --git a/compat/backport-4.20.c b/compat/backport-5.2.c
4707similarity index 71%
4708rename from compat/backport-4.20.c
4709rename to compat/backport-5.2.c
4710index a75657f..b1f3334 100644
4711--- a/compat/backport-4.20.c
4712+++ b/compat/backport-5.2.c
4713@@ -1,19 +1,27 @@
4714+// SPDX-License-Identifier: GPL-2.0
4715 /*
4716- * Copyright (C) 2018 - 2019 Intel Corporation
4717+ * NETLINK Netlink attributes
4718 *
4719- * Backport functionality introduced in Linux 4.20.
4720- * This is basically upstream lib/nlattr.c.
4721+ * Copyright (C) 2018 - 2019 Intel Corporation
4722 *
4723- * This program is free software; you can redistribute it and/or modify
4724- * it under the terms of the GNU General Public License version 2 as
4725- * published by the Free Software Foundation.
4726+ * Authors: Thomas Graf <tgraf@suug.ch>
4727+ * Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
4728 */
4729-#include <linux/kernel.h>
4730+
4731 #include <linux/export.h>
4732+#include <linux/kernel.h>
4733 #include <linux/errno.h>
4734+#include <linux/jiffies.h>
4735+#include <linux/skbuff.h>
4736+#include <linux/string.h>
4737 #include <linux/types.h>
4738 #include <net/netlink.h>
4739
4740+/* For these data types, attribute length should be exactly the given
4741+ * size. However, to maintain compatibility with broken commands, if the
4742+ * attribute length does not match the expected size a warning is emitted
4743+ * to the user that the command is sending invalid data and needs to be fixed.
4744+ */
4745 static const u8 nla_attr_len[NLA_TYPE_MAX+1] = {
4746 [NLA_U8] = sizeof(u8),
4747 [NLA_U16] = sizeof(u16),
4748@@ -63,7 +71,8 @@ static int validate_nla_bitfield32(const struct nlattr *nla,
4749
4750 static int nla_validate_array(const struct nlattr *head, int len, int maxtype,
4751 const struct nla_policy *policy,
4752- struct netlink_ext_ack *extack)
4753+ struct netlink_ext_ack *extack,
4754+ unsigned int validate)
4755 {
4756 const struct nlattr *entry;
4757 int rem;
4758@@ -80,8 +89,8 @@ static int nla_validate_array(const struct nlattr *head, int len, int maxtype,
4759 return -ERANGE;
4760 }
4761
4762- ret = nla_validate(nla_data(entry), nla_len(entry),
4763- maxtype, policy, extack);
4764+ ret = __nla_validate(nla_data(entry), nla_len(entry),
4765+ maxtype, policy, validate, extack);
4766 if (ret < 0)
4767 return ret;
4768 }
4769@@ -148,19 +157,20 @@ static int nla_validate_int_range(const struct nla_policy *pt,
4770 }
4771
4772 static int validate_nla(const struct nlattr *nla, int maxtype,
4773- const struct nla_policy *policy,
4774+ const struct nla_policy *policy, unsigned int validate,
4775 struct netlink_ext_ack *extack)
4776 {
4777+ u16 strict_start_type = policy[0].strict_start_type;
4778 const struct nla_policy *pt;
4779 int minlen = 0, attrlen = nla_len(nla), type = nla_type(nla);
4780 int err = -ERANGE;
4781
4782+ if (strict_start_type && type >= strict_start_type)
4783+ validate |= NL_VALIDATE_STRICT;
4784+
4785 if (type <= 0 || type > maxtype)
4786 return 0;
4787
4788- if (WARN_ON(!policy))
4789- return -EINVAL;
4790-
4791 pt = &policy[type];
4792
4793 BUG_ON(pt->type > NLA_TYPE_MAX);
4794@@ -169,6 +179,26 @@ static int validate_nla(const struct nlattr *nla, int maxtype,
4795 (pt->type == NLA_EXACT_LEN_WARN && attrlen != pt->len)) {
4796 pr_warn_ratelimited("netlink: '%s': attribute type %d has an invalid length.\n",
4797 current->comm, type);
4798+ if (validate & NL_VALIDATE_STRICT_ATTRS) {
4799+ NL_SET_ERR_MSG_ATTR(extack, nla,
4800+ "invalid attribute length");
4801+ return -EINVAL;
4802+ }
4803+ }
4804+
4805+ if (validate & NL_VALIDATE_NESTED) {
4806+ if ((pt->type == NLA_NESTED || pt->type == NLA_NESTED_ARRAY) &&
4807+ !(nla->nla_type & NLA_F_NESTED)) {
4808+ NL_SET_ERR_MSG_ATTR(extack, nla,
4809+ "NLA_F_NESTED is missing");
4810+ return -EINVAL;
4811+ }
4812+ if (pt->type != NLA_NESTED && pt->type != NLA_NESTED_ARRAY &&
4813+ pt->type != NLA_UNSPEC && (nla->nla_type & NLA_F_NESTED)) {
4814+ NL_SET_ERR_MSG_ATTR(extack, nla,
4815+ "NLA_F_NESTED not expected");
4816+ return -EINVAL;
4817+ }
4818 }
4819
4820 switch (pt->type) {
4821@@ -241,8 +271,9 @@ static int validate_nla(const struct nlattr *nla, int maxtype,
4822 if (attrlen < NLA_HDRLEN)
4823 goto out_err;
4824 if (pt->validation_data) {
4825- err = nla_validate(nla_data(nla), nla_len(nla), pt->len,
4826- pt->validation_data, extack);
4827+ err = __nla_validate(nla_data(nla), nla_len(nla), pt->len,
4828+ pt->validation_data, validate,
4829+ extack);
4830 if (err < 0) {
4831 /*
4832 * return directly to preserve the inner
4833@@ -265,7 +296,7 @@ static int validate_nla(const struct nlattr *nla, int maxtype,
4834
4835 err = nla_validate_array(nla_data(nla), nla_len(nla),
4836 pt->len, pt->validation_data,
4837- extack);
4838+ extack, validate);
4839 if (err < 0) {
4840 /*
4841 * return directly to preserve the inner
4842@@ -275,10 +306,23 @@ static int validate_nla(const struct nlattr *nla, int maxtype,
4843 }
4844 }
4845 break;
4846+
4847+ case NLA_UNSPEC:
4848+ if (validate & NL_VALIDATE_UNSPEC) {
4849+ NL_SET_ERR_MSG_ATTR(extack, nla,
4850+ "Unsupported attribute");
4851+ return -EINVAL;
4852+ }
4853+ /* fall through */
4854+ case NLA_MIN_LEN:
4855+ if (attrlen < pt->len)
4856+ goto out_err;
4857+ break;
4858+
4859 default:
4860 if (pt->len)
4861 minlen = pt->len;
4862- else if (pt->type != NLA_UNSPEC)
4863+ else
4864 minlen = nla_attr_minlen[pt->type];
4865
4866 if (attrlen < minlen)
4867@@ -312,28 +356,90 @@ out_err:
4868 return err;
4869 }
4870
4871-int backport_nla_validate(const struct nlattr *head, int len, int maxtype,
4872- const struct nla_policy *policy,
4873- struct netlink_ext_ack *extack)
4874+static int __nla_validate_parse(const struct nlattr *head, int len, int maxtype,
4875+ const struct nla_policy *policy,
4876+ unsigned int validate,
4877+ struct netlink_ext_ack *extack,
4878+ struct nlattr **tb)
4879 {
4880 const struct nlattr *nla;
4881 int rem;
4882
4883- if (!policy)
4884- return 0;
4885+ if (tb)
4886+ memset(tb, 0, sizeof(struct nlattr *) * (maxtype + 1));
4887
4888 nla_for_each_attr(nla, head, len, rem) {
4889- int err = validate_nla(nla, maxtype, policy, extack);
4890+ u16 type = nla_type(nla);
4891
4892- if (err < 0)
4893- return err;
4894+ if (type == 0 || type > maxtype) {
4895+ if (validate & NL_VALIDATE_MAXTYPE) {
4896+ NL_SET_ERR_MSG_ATTR(extack, nla,
4897+ "Unknown attribute type");
4898+ return -EINVAL;
4899+ }
4900+ continue;
4901+ }
4902+ if (policy) {
4903+ int err = validate_nla(nla, maxtype, policy,
4904+ validate, extack);
4905+
4906+ if (err < 0)
4907+ return err;
4908+ }
4909+
4910+ if (tb)
4911+ tb[type] = (struct nlattr *)nla;
4912+ }
4913+
4914+ if (unlikely(rem > 0)) {
4915+ pr_warn_ratelimited("netlink: %d bytes leftover after parsing attributes in process `%s'.\n",
4916+ rem, current->comm);
4917+ NL_SET_ERR_MSG(extack, "bytes leftover after parsing attributes");
4918+ if (validate & NL_VALIDATE_TRAILING)
4919+ return -EINVAL;
4920 }
4921
4922 return 0;
4923 }
4924-EXPORT_SYMBOL_GPL(backport_nla_validate);
4925
4926-int backport_nla_policy_len(const struct nla_policy *p, int n)
4927+/**
4928+ * __nla_validate - Validate a stream of attributes
4929+ * @head: head of attribute stream
4930+ * @len: length of attribute stream
4931+ * @maxtype: maximum attribute type to be expected
4932+ * @policy: validation policy
4933+ * @validate: validation strictness
4934+ * @extack: extended ACK report struct
4935+ *
4936+ * Validates all attributes in the specified attribute stream against the
4937+ * specified policy. Validation depends on the validate flags passed, see
4938+ * &enum netlink_validation for more details on that.
4939+ * See documenation of struct nla_policy for more details.
4940+ *
4941+ * Returns 0 on success or a negative error code.
4942+ */
4943+int __nla_validate(const struct nlattr *head, int len, int maxtype,
4944+ const struct nla_policy *policy, unsigned int validate,
4945+ struct netlink_ext_ack *extack)
4946+{
4947+ return __nla_validate_parse(head, len, maxtype, policy, validate,
4948+ extack, NULL);
4949+}
4950+EXPORT_SYMBOL(__nla_validate);
4951+
4952+/**
4953+ * nla_policy_len - Determin the max. length of a policy
4954+ * @policy: policy to use
4955+ * @n: number of policies
4956+ *
4957+ * Determines the max. length of the policy. It is currently used
4958+ * to allocated Netlink buffers roughly the size of the actual
4959+ * message.
4960+ *
4961+ * Returns 0 on success or a negative error code.
4962+ */
4963+int
4964+nla_policy_len(const struct nla_policy *p, int n)
4965 {
4966 int i, len = 0;
4967
4968@@ -348,38 +454,30 @@ int backport_nla_policy_len(const struct nla_policy *p, int n)
4969
4970 return len;
4971 }
4972-EXPORT_SYMBOL_GPL(backport_nla_policy_len);
4973-
4974-int backport_nla_parse(struct nlattr **tb, int maxtype,
4975- const struct nlattr *head,
4976- int len, const struct nla_policy *policy,
4977- struct netlink_ext_ack *extack)
4978+EXPORT_SYMBOL(nla_policy_len);
4979+
4980+/**
4981+ * __nla_parse - Parse a stream of attributes into a tb buffer
4982+ * @tb: destination array with maxtype+1 elements
4983+ * @maxtype: maximum attribute type to be expected
4984+ * @head: head of attribute stream
4985+ * @len: length of attribute stream
4986+ * @policy: validation policy
4987+ * @validate: validation strictness
4988+ * @extack: extended ACK pointer
4989+ *
4990+ * Parses a stream of attributes and stores a pointer to each attribute in
4991+ * the tb array accessible via the attribute type.
4992+ * Validation is controlled by the @validate parameter.
4993+ *
4994+ * Returns 0 on success or a negative error code.
4995+ */
4996+int __nla_parse(struct nlattr **tb, int maxtype,
4997+ const struct nlattr *head, int len,
4998+ const struct nla_policy *policy, unsigned int validate,
4999+ struct netlink_ext_ack *extack)
5000 {
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: