The following commit has been merged in the master branch: commit 44b6ed4cfab8474061707b60e35afaf2c92a9dc3 Merge: 440462198d9c45e48f2d8d9b18c5702d92282f46 fca41af18e10318e4de090db47d9fa7169e1bf2f Author: Linus Torvalds torvalds@linux-foundation.org Date: Wed Jun 30 14:33:25 2021 -0700
Merge tag 'clang-features-v5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
Pull clang feature updates from Kees Cook:
- Add CC_HAS_NO_PROFILE_FN_ATTR in preparation for PGO support in the face of the noinstr attribute, paving the way for PGO and fixing GCOV. (Nick Desaulniers)
- x86_64 LTO coverage is expanded to 32-bit x86. (Nathan Chancellor)
- Small fixes to CFI. (Mark Rutland, Nathan Chancellor)
* tag 'clang-features-v5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: qemu_fw_cfg: Make fw_cfg_rev_attr a proper kobj_attribute Kconfig: Introduce ARCH_WANTS_NO_INSTR and CC_HAS_NO_PROFILE_FN_ATTR compiler_attributes.h: cleanups for GCC 4.9+ compiler_attributes.h: define __no_profile, add to noinstr x86, lto: Enable Clang LTO for 32-bit as well CFI: Move function_nocfi() into compiler.h MAINTAINERS: Add Clang CFI section
diff --combined MAINTAINERS index 9999ae69bdc7,4ddf370572d3..f4af84a7de42 --- a/MAINTAINERS +++ b/MAINTAINERS @@@ -973,7 -973,7 +973,7 @@@ F: drivers/net/ethernet/amd/xgbe
AMD SENSOR FUSION HUB DRIVER M: Nehal Shah nehal-bakulchandra.shah@amd.com -M: Sandeep Singh sandeep.singh@amd.com +M: Basavaraj Natikar basavaraj.natikar@amd.com L: linux-input@vger.kernel.org S: Maintained F: Documentation/hid/amd-sfh* @@@ -1618,8 -1618,8 +1618,8 @@@ F: Documentation/devicetree/bindings/so F: sound/soc/meson/
ARM/Amlogic Meson SoC support +M: Neil Armstrong narmstrong@baylibre.com M: Kevin Hilman khilman@baylibre.com -R: Neil Armstrong narmstrong@baylibre.com R: Jerome Brunet jbrunet@baylibre.com R: Martin Blumenstingl martin.blumenstingl@googlemail.com L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) @@@ -1811,13 -1811,12 +1811,13 @@@ F: Documentation/devicetree/bindings/ne F: Documentation/devicetree/bindings/pinctrl/cortina,gemini-pinctrl.txt F: Documentation/devicetree/bindings/rtc/faraday,ftrtc010.txt F: arch/arm/mach-gemini/ +F: drivers/crypto/gemini/ F: drivers/net/ethernet/cortina/ F: drivers/pinctrl/pinctrl-gemini.c F: drivers/rtc/rtc-ftrtc010.c
ARM/CZ.NIC TURRIS SUPPORT -M: Marek Behun kabel@kernel.org +M: Marek Beh��n kabel@kernel.org S: Maintained W: https://www.turris.cz/ F: Documentation/ABI/testing/debugfs-moxtet @@@ -1973,7 -1972,6 +1973,7 @@@ F: Documentation/devicetree/bindings/in F: Documentation/devicetree/bindings/timer/intel,ixp4xx-timer.yaml F: arch/arm/mach-ixp4xx/ F: drivers/clocksource/timer-ixp4xx.c +F: drivers/crypto/ixp4xx_crypto.c F: drivers/gpio/gpio-ixp4xx.c F: drivers/irqchip/irq-ixp4xx.c F: include/linux/irqchip/irq-ixp4xx.h @@@ -3879,7 -3877,6 +3879,7 @@@ L: linux-btrfs@vger.kernel.or S: Maintained W: http://btrfs.wiki.kernel.org/ Q: http://patchwork.kernel.org/project/linux-btrfs/list/ +C: irc://irc.libera.chat/btrfs T: git git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git F: Documentation/filesystems/btrfs.rst F: fs/btrfs/ @@@ -4141,14 -4138,6 +4141,14 @@@ S: Odd Fixe F: Documentation/devicetree/bindings/arm/cavium-thunder2.txt F: arch/arm64/boot/dts/cavium/thunder2-99xx*
+CBS/ETF/TAPRIO QDISCS +M: Vinicius Costa Gomes vinicius.gomes@intel.com +S: Maintained +L: netdev@vger.kernel.org +F: net/sched/sch_cbs.c +F: net/sched/sch_etf.c +F: net/sched/sch_taprio.c + CC2520 IEEE-802.15.4 RADIO DRIVER M: Varka Bhadram varkabhadram@gmail.com L: linux-wpan@vger.kernel.org @@@ -4447,6 -4436,18 +4447,18 @@@ F: include/linux/compiler-clang. F: scripts/clang-tools/ K: \b(?i:clang|llvm)\b
+ CLANG CONTROL FLOW INTEGRITY SUPPORT + M: Sami Tolvanen samitolvanen@google.com + M: Kees Cook keescook@chromium.org + R: Nathan Chancellor nathan@kernel.org + R: Nick Desaulniers ndesaulniers@google.com + L: clang-built-linux@googlegroups.com + S: Supported + B: https://github.com/ClangBuiltLinux/linux/issues + T: git git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git for-next/clang/features + F: include/linux/cfi.h + F: kernel/cfi.c + CLEANCACHE API M: Konrad Rzeszutek Wilk konrad.wilk@oracle.com L: linux-kernel@vger.kernel.org @@@ -4612,12 -4613,6 +4624,12 @@@ S: Supporte F: drivers/video/console/ F: include/linux/console*
+CONTEXT TRACKING +M: Frederic Weisbecker frederic@kernel.org +S: Maintained +F: kernel/context_tracking.c +F: include/linux/context_tracking* + CONTROL GROUP (CGROUP) M: Tejun Heo tj@kernel.org M: Zefan Li lizefan.x@bytedance.com @@@ -5187,14 -5182,7 +5199,14 @@@ DELL WMI NOTIFICATIONS DRIVE M: Matthew Garrett mjg59@srcf.ucam.org M: Pali Roh��r pali@kernel.org S: Maintained -F: drivers/platform/x86/dell/dell-wmi.c +F: drivers/platform/x86/dell/dell-wmi-base.c + +DELL WMI HARDWARE PRIVACY SUPPORT +M: Perry Yuan Perry.Yuan@dell.com +L: Dell.Client.Kernel@dell.com +L: platform-driver-x86@vger.kernel.org +S: Maintained +F: drivers/platform/x86/dell/dell-wmi-privacy.c
DELTA ST MEDIA DRIVER M: Hugues Fruchet hugues.fruchet@foss.st.com @@@ -5204,13 -5192,6 +5216,13 @@@ W: https://linuxtv.or T: git git://linuxtv.org/media_tree.git F: drivers/media/platform/sti/delta
+DELTA DPS920AB PSU DRIVER +M: Robert Marko robert.marko@sartura.hr +L: linux-hwmon@vger.kernel.org +S: Maintained +F: Documentation/hwmon/dps920ab.rst +F: drivers/hwmon/pmbus/dps920ab.c + DENALI NAND DRIVER L: linux-mtd@lists.infradead.org S: Orphan @@@ -5600,6 -5581,7 +5612,6 @@@ F: drivers/soc/fsl/dpi
DPAA2 ETHERNET DRIVER M: Ioana Ciornei ioana.ciornei@nxp.com -M: Ioana Radulescu ruxandra.radulescu@nxp.com L: netdev@vger.kernel.org S: Maintained F: Documentation/networking/device_drivers/ethernet/freescale/dpaa2/ethernet-driver.rst @@@ -6467,11 -6449,10 +6479,11 @@@ F: Documentation/filesystems/ecryptfs.r F: fs/ecryptfs/
EDAC-AMD64 -M: Borislav Petkov bp@alien8.de +M: Yazen Ghannam yazen.ghannam@amd.com L: linux-edac@vger.kernel.org -S: Maintained +S: Supported F: drivers/edac/amd64_edac* +F: drivers/edac/mce_amd*
EDAC-ARMADA M: Jan Luebbe jlu@pengutronix.de @@@ -6794,7 -6775,7 +6806,7 @@@ F: include/video/s1d13xxxfb.
EROFS FILE SYSTEM M: Gao Xiang xiang@kernel.org -M: Chao Yu yuchao0@huawei.com +M: Chao Yu chao@kernel.org L: linux-erofs@lists.ozlabs.org S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git @@@ -6969,7 -6950,6 +6981,7 @@@ F: net/core/failover. FANOTIFY M: Jan Kara jack@suse.cz R: Amir Goldstein amir73il@gmail.com +R: Matthew Bobrowski repnop@google.com L: linux-fsdevel@vger.kernel.org S: Maintained F: fs/notify/fanotify/ @@@ -7189,7 -7169,7 +7201,7 @@@ F: include/video
FREESCALE CAAM (Cryptographic Acceleration and Assurance Module) DRIVER M: Horia Geant�� horia.geanta@nxp.com -M: Aymen Sghaier aymen.sghaier@nxp.com +M: Pankaj Gupta pankaj.gupta@nxp.com L: linux-crypto@vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/crypto/fsl-sec4.txt @@@ -7377,6 -7357,7 +7389,6 @@@ F: drivers/net/ethernet/freescale/fs_en F: include/linux/fs_enet_pd.h
FREESCALE SOC SOUND DRIVERS -M: Timur Tabi timur@kernel.org M: Nicolin Chen nicoleotsuka@gmail.com M: Xiubo Li Xiubo.Lee@gmail.com R: Fabio Estevam festevam@gmail.com @@@ -7579,12 -7560,6 +7591,12 @@@ M: Kieran Bingham <kbingham@kernel.org S: Supported F: scripts/gdb/
+GEMINI CRYPTO DRIVER +M: Corentin Labbe clabbe@baylibre.com +L: linux-crypto@vger.kernel.org +S: Maintained +F: drivers/crypto/gemini/ + GEMTEK FM RADIO RECEIVER DRIVER M: Hans Verkuil hverkuil@xs4all.nl L: linux-media@vger.kernel.org @@@ -8800,6 -8775,22 +8812,6 @@@ L: linux-i2c@vger.kernel.or S: Maintained F: drivers/i2c/busses/i2c-icy.c
-IDE SUBSYSTEM -M: "David S. Miller" davem@davemloft.net -L: linux-ide@vger.kernel.org -S: Maintained -Q: http://patchwork.ozlabs.org/project/linux-ide/list/ -T: git git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide.git -F: Documentation/ide/ -F: drivers/ide/ -F: include/linux/ide.h - -IDE/ATAPI DRIVERS -L: linux-ide@vger.kernel.org -S: Orphan -F: Documentation/cdrom/ide-cd.rst -F: drivers/ide/ide-cd* - IDEAPAD LAPTOP EXTRAS DRIVER M: Ike Panhc ike.pan@canonical.com L: platform-driver-x86@vger.kernel.org @@@ -9256,12 -9247,6 +9268,12 @@@ F: Documentation/admin-guide/media/ipu3 F: Documentation/userspace-api/media/v4l/pixfmt-meta-intel-ipu3.rst F: drivers/staging/media/ipu3/
+INTEL IXP4XX CRYPTO SUPPORT +M: Corentin Labbe clabbe@baylibre.com +L: linux-crypto@vger.kernel.org +S: Maintained +F: drivers/crypto/ixp4xx_crypto.c + INTEL IXP4XX QMGR, NPE, ETHERNET and HSS SUPPORT M: Krzysztof Halasa khalasa@piap.pl S: Maintained @@@ -9405,11 -9390,6 +9417,11 @@@ S: Maintaine F: arch/x86/include/asm/intel_scu_ipc.h F: drivers/platform/x86/intel_scu_*
+INTEL SKYLAKE INT3472 ACPI DEVICE DRIVER +M: Daniel Scally djrscally@gmail.com +S: Maintained +F: drivers/platform/x86/intel/int3472/ + INTEL SPEED SELECT TECHNOLOGY M: Srinivas Pandruvada srinivas.pandruvada@linux.intel.com L: platform-driver-x86@vger.kernel.org @@@ -9430,7 -9410,7 +9442,7 @@@ F: include/linux/firmware/intel/stratix F: include/linux/firmware/intel/stratix10-svc-client.h
INTEL TELEMETRY DRIVER -M: Rajneesh Bhardwaj rajneesh.bhardwaj@linux.intel.com +M: Rajneesh Bhardwaj irenic.rajneesh@gmail.com M: "David E. Box" david.e.box@linux.intel.com L: platform-driver-x86@vger.kernel.org S: Maintained @@@ -10018,8 -9998,6 +10030,8 @@@ F: arch/arm64/include/asm/kvm F: arch/arm64/include/uapi/asm/kvm* F: arch/arm64/kvm/ F: include/kvm/arm_* +F: tools/testing/selftests/kvm/*/aarch64/ +F: tools/testing/selftests/kvm/aarch64/
KERNEL VIRTUAL MACHINE FOR MIPS (KVM/mips) M: Huacai Chen chenhuacai@kernel.org @@@ -10885,7 -10863,6 +10897,7 @@@ S: Maintaine F: drivers/mailbox/ F: include/linux/mailbox_client.h F: include/linux/mailbox_controller.h +F: include/dt-bindings/mailbox/ F: Documentation/devicetree/bindings/mailbox/
MAILBOX ARM MHUv2 @@@ -10972,7 -10949,7 +10984,7 @@@ F: include/linux/mv643xx.
MARVELL MV88X3310 PHY DRIVER M: Russell King linux@armlinux.org.uk -M: Marek Behun marek.behun@nic.cz +M: Marek Beh��n kabel@kernel.org L: netdev@vger.kernel.org S: Maintained F: drivers/net/phy/marvell10g.c @@@ -11318,7 -11295,6 +11330,7 @@@ F: include/media/imx.
MEDIA DRIVERS FOR FREESCALE IMX7 M: Rui Miguel Silva rmfrfs@gmail.com +M: Laurent Pinchart laurent.pinchart@ideasonboard.com L: linux-media@vger.kernel.org S: Maintained T: git git://linuxtv.org/media_tree.git @@@ -11428,7 -11404,6 +11440,7 @@@ L: linux-renesas-soc@vger.kernel.or S: Supported T: git git://linuxtv.org/media_tree.git F: Documentation/devicetree/bindings/media/renesas,csi2.yaml +F: Documentation/devicetree/bindings/media/renesas,isp.yaml F: Documentation/devicetree/bindings/media/renesas,vin.yaml F: drivers/media/platform/rcar-vin/
@@@ -12018,13 -11993,11 +12030,13 @@@ MICROCHIP ISC DRIVE M: Eugen Hristev eugen.hristev@microchip.com L: linux-media@vger.kernel.org S: Supported -F: Documentation/devicetree/bindings/media/atmel-isc.txt +F: Documentation/devicetree/bindings/media/atmel,isc.yaml +F: Documentation/devicetree/bindings/media/microchip,xisc.yaml F: drivers/media/platform/atmel/atmel-isc-base.c F: drivers/media/platform/atmel/atmel-isc-regs.h F: drivers/media/platform/atmel/atmel-isc.h F: drivers/media/platform/atmel/atmel-sama5d2-isc.c +F: drivers/media/platform/atmel/atmel-sama7g5-isc.c F: include/linux/atmel-isc-media.h
MICROCHIP ISI DRIVER @@@ -12219,10 -12192,9 +12231,10 @@@ F: drivers/platform/surface/surfacepro3
MICROSOFT SURFACE SYSTEM AGGREGATOR SUBSYSTEM M: Maximilian Luz luzmaximilian@gmail.com +L: platform-driver-x86@vger.kernel.org S: Maintained W: https://github.com/linux-surface/surface-aggregator-module -C: irc://chat.freenode.net/##linux-surface +C: irc://irc.libera.chat/linux-surface F: Documentation/driver-api/surface_aggregator/ F: drivers/platform/surface/aggregator/ F: drivers/platform/surface/surface_acpi_notify.c @@@ -12632,7 -12604,7 +12644,7 @@@ S: Orpha F: drivers/net/ethernet/natsemi/natsemi.c
NCR 5380 SCSI DRIVERS -M: Finn Thain fthain@telegraphics.com.au +M: Finn Thain fthain@linux-m68k.org M: Michael Schmitz schmitzmic@gmail.com L: linux-scsi@vger.kernel.org S: Maintained @@@ -12720,9 -12692,9 +12732,9 @@@ F: drivers/rtc/rtc-ntxec. F: include/linux/mfd/ntxec.h
NETRONOME ETHERNET DRIVERS -M: Simon Horman simon.horman@netronome.com +M: Simon Horman simon.horman@corigine.com R: Jakub Kicinski kuba@kernel.org -L: oss-drivers@netronome.com +L: oss-drivers@corigine.com S: Maintained F: drivers/net/ethernet/netronome/
@@@ -12749,6 -12721,7 +12761,6 @@@ M: "David S. Miller" <davem@davemloft.n M: Jakub Kicinski kuba@kernel.org L: netdev@vger.kernel.org S: Maintained -W: http://www.linuxfoundation.org/en/Net Q: https://patchwork.kernel.org/project/netdevbpf/list/ T: git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git T: git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git @@@ -12793,6 -12766,7 +12805,6 @@@ M: "David S. Miller" <davem@davemloft.n M: Jakub Kicinski kuba@kernel.org L: netdev@vger.kernel.org S: Maintained -W: http://www.linuxfoundation.org/en/Net Q: https://patchwork.kernel.org/project/netdevbpf/list/ B: mailto:netdev@vger.kernel.org T: git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git @@@ -12934,10 -12908,8 +12946,10 @@@ F: include/uapi/linux/nexthop. F: net/ipv4/nexthop.c
NFC SUBSYSTEM +M: Krzysztof Kozlowski krzysztof.kozlowski@canonical.com +L: linux-nfc@lists.01.org (subscribers-only) L: netdev@vger.kernel.org -S: Orphan +S: Maintained F: Documentation/devicetree/bindings/net/nfc/ F: drivers/nfc/ F: include/linux/platform_data/nfcmrvl.h @@@ -12948,7 -12920,7 +12960,7 @@@ F: net/nfc NFC VIRTUAL NCI DEVICE DRIVER M: Bongsu Jeon bongsu.jeon@samsung.com L: netdev@vger.kernel.org -L: linux-nfc@lists.01.org (moderated for non-subscribers) +L: linux-nfc@lists.01.org (subscribers-only) S: Supported F: drivers/nfc/virtual_ncidev.c F: tools/testing/selftests/nci/ @@@ -13104,7 -13076,7 +13116,7 @@@ F: Documentation/filesystems/ntfs.rs F: fs/ntfs/
NUBUS SUBSYSTEM -M: Finn Thain fthain@telegraphics.com.au +M: Finn Thain fthain@linux-m68k.org L: linux-m68k@lists.linux-m68k.org S: Maintained F: arch/*/include/asm/nubus.h @@@ -13245,8 -13217,9 +13257,8 @@@ F: Documentation/devicetree/bindings/so F: sound/soc/codecs/tfa9879*
NXP-NCI NFC DRIVER -M: Cl��ment Perrochaud clement.perrochaud@effinnov.com R: Charles Gorand charles.gorand@effinnov.com -L: linux-nfc@lists.01.org (moderated for non-subscribers) +L: linux-nfc@lists.01.org (subscribers-only) S: Supported F: drivers/nfc/nxp-nci
@@@ -14149,7 -14122,6 +14161,7 @@@ F: drivers/pci/controller/pci-v3-semi. PCI ENDPOINT SUBSYSTEM M: Kishon Vijay Abraham I kishon@ti.com M: Lorenzo Pieralisi lorenzo.pieralisi@arm.com +R: Krzysztof Wilczy��ski kw@linux.com L: linux-pci@vger.kernel.org S: Supported F: Documentation/PCI/endpoint/* @@@ -14198,7 -14170,6 +14210,7 @@@ F: drivers/pci/controller/pci-xgene-msi PCI NATIVE HOST BRIDGE AND ENDPOINT DRIVERS M: Lorenzo Pieralisi lorenzo.pieralisi@arm.com R: Rob Herring robh@kernel.org +R: Krzysztof Wilczy��ski kw@linux.com L: linux-pci@vger.kernel.org S: Supported Q: http://patchwork.ozlabs.org/project/linux-pci/list/ @@@ -14358,12 -14329,10 +14370,12 @@@ PER-CPU MEMORY ALLOCATO M: Dennis Zhou dennis@kernel.org M: Tejun Heo tj@kernel.org M: Christoph Lameter cl@linux.com +L: linux-mm@kvack.org S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu.git F: arch/*/include/asm/percpu.h F: include/linux/percpu*.h +F: lib/percpu*.c F: mm/percpu*.c
PER-TASK DELAY ACCOUNTING @@@ -14777,6 -14746,7 +14789,6 @@@ W: https://wireless.wiki.kernel.org/en/ F: drivers/net/wireless/intersil/prism54/
PROC FILESYSTEM -R: Alexey Dobriyan adobriyan@gmail.com L: linux-kernel@vger.kernel.org L: linux-fsdevel@vger.kernel.org S: Maintained @@@ -15171,13 -15141,6 +15183,13 @@@ S: Maintaine F: Documentation/devicetree/bindings/opp/qcom-nvmem-cpufreq.txt F: drivers/cpufreq/qcom-cpufreq-nvmem.c
+QUALCOMM CRYPTO DRIVERS +M: Thara Gopinath thara.gopinath@linaro.org +L: linux-crypto@vger.kernel.org +L: linux-arm-msm@vger.kernel.org +S: Maintained +F: drivers/crypto/qce/ + QUALCOMM EMAC GIGABIT ETHERNET DRIVER M: Timur Tabi timur@kernel.org L: netdev@vger.kernel.org @@@ -15742,14 -15705,6 +15754,14 @@@ F: arch/riscv N: riscv K: riscv
+RISC-V/MICROCHIP POLARFIRE SOC SUPPORT +M: Lewis Hanly lewis.hanly@microchip.com +L: linux-riscv@lists.infradead.org +S: Supported +F: drivers/mailbox/mailbox-mpfs.c +F: drivers/soc/microchip/ +F: include/soc/microchip/mpfs.h + RNBD BLOCK DRIVERS M: Md. Haris Iqbal haris.iqbal@ionos.com M: Jack Wang jinpu.wang@ionos.com @@@ -16002,7 -15957,6 +16014,7 @@@ S390 IUCV NETWORK LAYE M: Julian Wiedmann jwi@linux.ibm.com M: Karsten Graul kgraul@linux.ibm.com L: linux-s390@vger.kernel.org +L: netdev@vger.kernel.org S: Supported W: http://www.ibm.com/developerworks/linux/linux390/ F: drivers/s390/net/*iucv* @@@ -16013,7 -15967,6 +16025,7 @@@ S390 NETWORK DRIVER M: Julian Wiedmann jwi@linux.ibm.com M: Karsten Graul kgraul@linux.ibm.com L: linux-s390@vger.kernel.org +L: netdev@vger.kernel.org S: Supported W: http://www.ibm.com/developerworks/linux/linux390/ F: drivers/s390/net/ @@@ -16192,7 -16145,7 +16204,7 @@@ F: include/media/drv-intf/s3c_camif. SAMSUNG S3FWRN5 NFC DRIVER M: Krzysztof Kozlowski krzysztof.kozlowski@canonical.com M: Krzysztof Opasiak k.opasiak@samsung.com -L: linux-nfc@lists.01.org (moderated for non-subscribers) +L: linux-nfc@lists.01.org (subscribers-only) S: Maintained F: Documentation/devicetree/bindings/net/nfc/samsung,s3fwrn5.yaml F: drivers/nfc/s3fwrn5 @@@ -16605,7 -16558,6 +16617,7 @@@ F: drivers/misc/sgi-xp
SHARED MEMORY COMMUNICATIONS (SMC) SOCKETS M: Karsten Graul kgraul@linux.ibm.com +M: Guvenc Gulce guvenc@linux.ibm.com L: linux-s390@vger.kernel.org S: Supported W: http://www.ibm.com/developerworks/linux/linux390/ @@@ -17051,13 -17003,6 +17063,13 @@@ S: Maintaine F: drivers/ssb/ F: include/linux/ssb/
+SONY IMX208 SENSOR DRIVER +M: Sakari Ailus sakari.ailus@linux.intel.com +L: linux-media@vger.kernel.org +S: Maintained +T: git git://linuxtv.org/media_tree.git +F: drivers/media/i2c/imx208.c + SONY IMX214 SENSOR DRIVER M: Ricardo Ribalda ribalda@kernel.org L: linux-media@vger.kernel.org @@@ -17371,12 -17316,6 +17383,12 @@@ L: linux-i2c@vger.kernel.or S: Maintained F: drivers/i2c/busses/i2c-stm32*
+ST STM32 SPI DRIVER +M: Alain Volmat alain.volmat@foss.st.com +L: linux-spi@vger.kernel.org +S: Maintained +F: drivers/spi/spi-stm32.c + ST STPDDC60 DRIVER M: Daniel Nilsson daniel.nilsson@flex.com L: linux-hwmon@vger.kernel.org @@@ -17735,6 -17674,7 +17747,6 @@@ R: Mika Westerberg <mika.westerberg@lin L: linux-i2c@vger.kernel.org S: Maintained F: drivers/i2c/busses/i2c-designware-* -F: include/linux/platform_data/i2c-designware.h
SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER M: Jaehoon Chung jh80.chung@samsung.com @@@ -18228,13 -18168,6 +18240,13 @@@ W: http://thinkwiki.org/wiki/Ibm-acp T: git git://repo.or.cz/linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git F: drivers/platform/x86/thinkpad_acpi.c
+THINKPAD LMI DRIVER +M: Mark Pearson markpearson@lenovo.com +L: platform-driver-x86@vger.kernel.org +S: Maintained +F: Documentation/ABI/testing/sysfs-class-firmware-attributes +F: drivers/platform/x86/think-lmi.? + THUNDERBOLT DMA TRAFFIC TEST DRIVER M: Isaac Hazan isaac.hazan@intel.com L: linux-usb@vger.kernel.org @@@ -18397,7 -18330,7 +18409,7 @@@ F: sound/soc/codecs/tas571x TI TRF7970A NFC DRIVER M: Mark Greer mgreer@animalcreek.com L: linux-wireless@vger.kernel.org -L: linux-nfc@lists.01.org (moderated for non-subscribers) +L: linux-nfc@lists.01.org (subscribers-only) S: Supported F: Documentation/devicetree/bindings/net/nfc/trf7970a.txt F: drivers/nfc/trf7970a.c @@@ -18933,13 -18866,6 +18945,13 @@@ S: Maintaine F: drivers/usb/host/isp116x* F: include/linux/usb/isp116x.h
+USB ISP1760 DRIVER +M: Rui Miguel Silva rui.silva@linaro.org +L: linux-usb@vger.kernel.org +S: Maintained +F: drivers/usb/isp1760/* +F: Documentation/devicetree/bindings/usb/nxp,isp1760.yaml + USB LAN78XX ETHERNET DRIVER M: Woojung Huh woojung.huh@microchip.com M: UNGLinuxDriver@microchip.com @@@ -19637,10 -19563,6 +19649,10 @@@ F: include/dt-bindings/regulator F: include/linux/regulator/ K: regulator_get_optional
+VOLTAGE AND CURRENT REGULATOR IRQ HELPERS +R: Matti Vaittinen matti.vaittinen@fi.rohmeurope.com +F: drivers/regulator/irq_helpers.c + VRF M: David Ahern dsahern@kernel.org L: netdev@vger.kernel.org @@@ -19658,7 -19580,6 +19670,7 @@@ S: Maintaine T: git git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk.git F: Documentation/core-api/printk-formats.rst F: lib/test_printf.c +F: lib/test_scanf.c F: lib/vsprintf.c
VT1211 HARDWARE MONITOR DRIVER @@@ -20089,7 -20010,6 +20101,7 @@@ F: arch/x86/xen/*swiotlb F: drivers/xen/*swiotlb*
XFS FILESYSTEM +C: irc://irc.oftc.net/xfs M: Darrick J. Wong djwong@kernel.org M: linux-xfs@vger.kernel.org L: linux-xfs@vger.kernel.org diff --combined arch/arm64/Kconfig index a6a09cb95cc7,39bf982b06f8..be9083882f97 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@@ -93,6 -93,7 +93,7 @@@ config ARM6 select ARCH_WANT_FRAME_POINTERS select ARCH_WANT_HUGE_PMD_SHARE if ARM64_4K_PAGES || (ARM64_16K_PAGES && !ARM64_VA_BITS_36) select ARCH_WANT_LD_ORPHAN_WARN + select ARCH_WANTS_NO_INSTR select ARCH_HAS_UBSAN_SANITIZE_ALL select ARM_AMBA select ARM_ARCH_TIMER @@@ -1035,7 -1036,7 +1036,7 @@@ config NODES_SHIF int "Maximum NUMA Nodes (as a power of 2)" range 1 10 default "4" - depends on NEED_MULTIPLE_NODES + depends on NUMA help Specify the maximum number of NUMA Nodes available on the target system. Increases memory reserved to accommodate various tables. @@@ -1481,6 -1482,12 +1482,6 @@@ menu "ARMv8.3 architectural features config ARM64_PTR_AUTH bool "Enable support for pointer authentication" default y - depends on (CC_HAS_SIGN_RETURN_ADDRESS || CC_HAS_BRANCH_PROT_PAC_RET) && AS_HAS_PAC - # Modern compilers insert a .note.gnu.property section note for PAC - # which is only understood by binutils starting with version 2.33.1. - depends on LD_IS_LLD || LD_VERSION >= 23301 || (CC_IS_GCC && GCC_VERSION < 90100) - depends on !CC_IS_CLANG || AS_HAS_CFI_NEGATE_RA_STATE - depends on (!FUNCTION_GRAPH_TRACER || DYNAMIC_FTRACE_WITH_REGS) help Pointer authentication (part of the ARMv8.3 Extensions) provides instructions for signing and authenticating pointers against secret @@@ -1492,6 -1499,13 +1493,6 @@@ for each process at exec() time, with these keys being context-switched along with the process.
- If the compiler supports the -mbranch-protection or - -msign-return-address flag (e.g. GCC 7 or later), then this option - will also cause the kernel itself to be compiled with return address - protection. In this case, and if the target hardware is known to - support pointer authentication, then CONFIG_STACKPROTECTOR can be - disabled with minimal loss of protection. - The feature is detected at runtime. If the feature is not present in hardware it will not be advertised to userspace/KVM guest nor will it be enabled. @@@ -1502,24 -1516,6 +1503,24 @@@ but with the feature disabled. On such a system, this option should not be selected.
+config ARM64_PTR_AUTH_KERNEL + bool "Use pointer authentication for kernel" + default y + depends on ARM64_PTR_AUTH + depends on (CC_HAS_SIGN_RETURN_ADDRESS || CC_HAS_BRANCH_PROT_PAC_RET) && AS_HAS_PAC + # Modern compilers insert a .note.gnu.property section note for PAC + # which is only understood by binutils starting with version 2.33.1. + depends on LD_IS_LLD || LD_VERSION >= 23301 || (CC_IS_GCC && GCC_VERSION < 90100) + depends on !CC_IS_CLANG || AS_HAS_CFI_NEGATE_RA_STATE + depends on (!FUNCTION_GRAPH_TRACER || DYNAMIC_FTRACE_WITH_REGS) + help + If the compiler supports the -mbranch-protection or + -msign-return-address flag (e.g. GCC 7 or later), then this option + will cause the kernel itself to be compiled with return address + protection. In this case, and if the target hardware is known to + support pointer authentication, then CONFIG_STACKPROTECTOR can be + disabled with minimal loss of protection. + This feature works with FUNCTION_GRAPH_TRACER option only if DYNAMIC_FTRACE_WITH_REGS is enabled.
@@@ -1611,7 -1607,7 +1612,7 @@@ config ARM64_BTI_KERNE bool "Use Branch Target Identification for kernel" default y depends on ARM64_BTI - depends on ARM64_PTR_AUTH + depends on ARM64_PTR_AUTH_KERNEL depends on CC_HAS_BRANCH_PROT_PAC_RET_BTI # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94697 depends on !CC_IS_GCC || GCC_VERSION >= 100100 diff --combined arch/arm64/include/asm/memory.h index 7b360960cc35,ced44ca3e175..1a35a4473598 --- a/arch/arm64/include/asm/memory.h +++ b/arch/arm64/include/asm/memory.h @@@ -135,8 -135,10 +135,8 @@@ #define MT_NORMAL 0 #define MT_NORMAL_TAGGED 1 #define MT_NORMAL_NC 2 -#define MT_NORMAL_WT 3 -#define MT_DEVICE_nGnRnE 4 -#define MT_DEVICE_nGnRE 5 -#define MT_DEVICE_GRE 6 +#define MT_DEVICE_nGnRnE 3 +#define MT_DEVICE_nGnRE 4
/* * Memory types for Stage-2 translation @@@ -321,22 -323,6 +321,6 @@@ static inline void *phys_to_virt(phys_a #define virt_to_pfn(x) __phys_to_pfn(__virt_to_phys((unsigned long)(x))) #define sym_to_pfn(x) __phys_to_pfn(__pa_symbol(x))
- #ifdef CONFIG_CFI_CLANG - /* - * With CONFIG_CFI_CLANG, the compiler replaces function address - * references with the address of the function's CFI jump table - * entry. The function_nocfi macro always returns the address of the - * actual function instead. - */ - #define function_nocfi(x) ({ \ - void *addr; \ - asm("adrp %0, " __stringify(x) "\n\t" \ - "add %0, %0, :lo12:" __stringify(x) \ - : "=r" (addr)); \ - addr; \ - }) - #endif - /* * virt_to_page(x) convert a _valid_ virtual address to struct page * * virt_addr_valid(x) indicates whether a virtual address is valid diff --combined arch/s390/Kconfig index 707afbcd81c2,bd60310f33b9..a49971647f81 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@@ -117,6 -117,7 +117,7 @@@ config S39 select ARCH_USE_BUILTIN_BSWAP select ARCH_USE_CMPXCHG_LOCKREF select ARCH_WANTS_DYNAMIC_TASK_STRUCT + select ARCH_WANTS_NO_INSTR select ARCH_WANT_DEFAULT_BPF_JIT select ARCH_WANT_IPC_PARSE_VERSION select BUILDTIME_TABLE_SORT @@@ -475,7 -476,7 +476,7 @@@ config NUM
config NODES_SHIFT int - depends on NEED_MULTIPLE_NODES + depends on NUMA default "1"
config SCHED_SMT diff --combined arch/x86/Kconfig index 49ffb69e34dd,268a5dec8b3f..867e7936dbc5 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@@ -103,8 -103,8 +103,8 @@@ config X8 select ARCH_SUPPORTS_DEBUG_PAGEALLOC select ARCH_SUPPORTS_NUMA_BALANCING if X86_64 select ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP if NR_CPUS <= 4096 - select ARCH_SUPPORTS_LTO_CLANG if X86_64 - select ARCH_SUPPORTS_LTO_CLANG_THIN if X86_64 + select ARCH_SUPPORTS_LTO_CLANG + select ARCH_SUPPORTS_LTO_CLANG_THIN select ARCH_USE_BUILTIN_BSWAP select ARCH_USE_MEMTEST select ARCH_USE_QUEUED_RWLOCKS @@@ -113,6 -113,7 +113,7 @@@ select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH select ARCH_WANT_DEFAULT_BPF_JIT if X86_64 select ARCH_WANTS_DYNAMIC_TASK_STRUCT + select ARCH_WANTS_NO_INSTR select ARCH_WANT_HUGE_PMD_SHARE select ARCH_WANT_LD_ORPHAN_WARN select ARCH_WANTS_THP_SWAP if X86_64 @@@ -1597,7 -1598,7 +1598,7 @@@ config NODES_SHIF default "10" if MAXSMP default "6" if X86_64 default "3" - depends on NEED_MULTIPLE_NODES + depends on NUMA help Specify the maximum number of NUMA Nodes available on the target system. Increases memory reserved to accommodate various tables. @@@ -1693,6 -1694,35 +1694,6 @@@ config X86_BOOTPARAM_MEMORY_CORRUPTION_ Set whether the default state of memory_corruption_check is on or off.
-config X86_RESERVE_LOW - int "Amount of low memory, in kilobytes, to reserve for the BIOS" - default 64 - range 4 640 - help - Specify the amount of low memory to reserve for the BIOS. - - The first page contains BIOS data structures that the kernel - must not use, so that page must always be reserved. - - By default we reserve the first 64K of physical RAM, as a - number of BIOSes are known to corrupt that memory range - during events such as suspend/resume or monitor cable - insertion, so it must not be used by the kernel. - - You can set this to 4 if you are absolutely sure that you - trust the BIOS to get all its memory reservations and usages - right. If you know your BIOS have problems beyond the - default 64K area, you can set this to 640 to avoid using the - entire low memory range. - - If you have doubts about the BIOS (e.g. suspend/resume does - not work or there's kernel crashes after certain hardware - hotplug events) then you might want to enable - X86_CHECK_BIOS_CORRUPTION=y to allow the kernel to check - typical corruption patterns. - - Leave this to the default value of 64 if you are unsure. - config MATH_EMULATION bool depends on MODIFY_LDT_SYSCALL diff --combined include/linux/compiler.h index 77047904cf70,099e529a5d25..b67261a1e3e9 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h @@@ -115,24 -115,18 +115,24 @@@ void ftrace_likely_update(struct ftrace * The __COUNTER__ based labels are a hack to make each instance of the macros * unique, to convince GCC not to merge duplicate inline asm statements. */ -#define annotate_reachable() ({ \ - asm volatile("%c0:\n\t" \ +#define __stringify_label(n) #n + +#define __annotate_reachable(c) ({ \ + asm volatile(__stringify_label(c) ":\n\t" \ ".pushsection .discard.reachable\n\t" \ - ".long %c0b - .\n\t" \ - ".popsection\n\t" : : "i" (__COUNTER__)); \ + ".long " __stringify_label(c) "b - .\n\t" \ + ".popsection\n\t"); \ }) -#define annotate_unreachable() ({ \ - asm volatile("%c0:\n\t" \ +#define annotate_reachable() __annotate_reachable(__COUNTER__) + +#define __annotate_unreachable(c) ({ \ + asm volatile(__stringify_label(c) ":\n\t" \ ".pushsection .discard.unreachable\n\t" \ - ".long %c0b - .\n\t" \ - ".popsection\n\t" : : "i" (__COUNTER__)); \ + ".long " __stringify_label(c) "b - .\n\t" \ + ".popsection\n\t"); \ }) +#define annotate_unreachable() __annotate_unreachable(__COUNTER__) + #define ASM_UNREACHABLE \ "999:\n\t" \ ".pushsection .discard.unreachable\n\t" \ @@@ -219,6 -213,16 +219,16 @@@ __v; \ })
+ /* + * With CONFIG_CFI_CLANG, the compiler replaces function addresses in + * instrumented C code with jump table addresses. Architectures that + * support CFI can define this macro to return the actual function address + * when needed. + */ + #ifndef function_nocfi + #define function_nocfi(x) (x) + #endif + #endif /* __KERNEL__ */
/* diff --combined include/linux/compiler_attributes.h index 183ddd5fd072,84b1c970acb3..2487be0e7199 --- a/include/linux/compiler_attributes.h +++ b/include/linux/compiler_attributes.h @@@ -27,15 -27,16 +27,16 @@@ */ #ifndef __has_attribute # define __has_attribute(x) __GCC4_has_attribute_##x - # define __GCC4_has_attribute___assume_aligned__ (__GNUC_MINOR__ >= 9) + # define __GCC4_has_attribute___assume_aligned__ 1 # define __GCC4_has_attribute___copy__ 0 # define __GCC4_has_attribute___designated_init__ 0 # define __GCC4_has_attribute___externally_visible__ 1 # define __GCC4_has_attribute___no_caller_saved_registers__ 0 # define __GCC4_has_attribute___noclone__ 1 + # define __GCC4_has_attribute___no_profile_instrument_function__ 0 # define __GCC4_has_attribute___nonstring__ 0 - # define __GCC4_has_attribute___no_sanitize_address__ (__GNUC_MINOR__ >= 8) - # define __GCC4_has_attribute___no_sanitize_undefined__ (__GNUC_MINOR__ >= 9) + # define __GCC4_has_attribute___no_sanitize_address__ 1 + # define __GCC4_has_attribute___no_sanitize_undefined__ 1 # define __GCC4_has_attribute___fallthrough__ 0 #endif
@@@ -199,7 -200,6 +200,7 @@@ * must end with any of these keywords: * break; * fallthrough; + * continue; * goto <label>; * return [expression]; * @@@ -238,6 -238,18 +239,18 @@@ # define __nonstring #endif
+ /* + * Optional: only supported since GCC >= 7.1, clang >= 13.0. + * + * gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-no_... + * clang: https://clang.llvm.org/docs/AttributeReference.html#no-profile-instrument-fu... + */ + #if __has_attribute(__no_profile_instrument_function__) + # define __no_profile __attribute__((__no_profile_instrument_function__)) + #else + # define __no_profile + #endif + /* * gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-nor... * clang: https://clang.llvm.org/docs/AttributeReference.html#noreturn diff --combined include/linux/mm.h index 6d0f827ca4eb,b8c28b10f25d..7ec25dd2f8a9 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@@ -46,7 -46,7 +46,7 @@@ extern int sysctl_page_lock_unfairness
void init_mm_internals(void);
-#ifndef CONFIG_NEED_MULTIPLE_NODES /* Don't use mapnrs, do it properly */ +#ifndef CONFIG_NUMA /* Don't use mapnrs, do it properly */ extern unsigned long max_mapnr;
static inline void set_max_mapnr(unsigned long limit) @@@ -124,16 -124,6 +124,6 @@@ extern int mmap_rnd_compat_bits __read_ #define lm_alias(x) __va(__pa_symbol(x)) #endif
- /* - * With CONFIG_CFI_CLANG, the compiler replaces function addresses in - * instrumented C code with jump table addresses. Architectures that - * support CFI can define this macro to return the actual function address - * when needed. - */ - #ifndef function_nocfi - #define function_nocfi(x) (x) - #endif - /* * To prevent common memory management code establishing * a zero page mapping on a read fault. @@@ -234,11 -224,7 +224,11 @@@ int overcommit_policy_handler(struct ct int __add_to_page_cache_locked(struct page *page, struct address_space *mapping, pgoff_t index, gfp_t gfp, void **shadowp);
+#if defined(CONFIG_SPARSEMEM) && !defined(CONFIG_SPARSEMEM_VMEMMAP) #define nth_page(page,n) pfn_to_page(page_to_pfn((page)) + (n)) +#else +#define nth_page(page,n) ((page) + (n)) +#endif
/* to align the pointer to the (next) page boundary */ #define PAGE_ALIGN(addr) ALIGN(addr, PAGE_SIZE) @@@ -1345,7 -1331,7 +1335,7 @@@ static inline bool page_needs_cow_for_d if (!is_cow_mapping(vma->vm_flags)) return false;
- if (!atomic_read(&vma->vm_mm->has_pinned)) + if (!test_bit(MMF_HAS_PINNED, &vma->vm_mm->flags)) return false;
return page_maybe_dma_pinned(page); @@@ -1713,8 -1699,8 +1703,8 @@@ extern bool can_do_mlock(void) #else static inline bool can_do_mlock(void) { return false; } #endif -extern int user_shm_lock(size_t, struct user_struct *); -extern void user_shm_unlock(size_t, struct user_struct *); +extern int user_shm_lock(size_t, struct ucounts *); +extern void user_shm_unlock(size_t, struct ucounts *);
/* * Parameter block passed down to zap_pte_range in exceptional cases. @@@ -1723,7 -1709,6 +1713,7 @@@ struct zap_details struct address_space *check_mapping; /* Check page->mapping if set */ pgoff_t first_index; /* Lowest page->index to unmap */ pgoff_t last_index; /* Highest page->index to unmap */ + struct page *single_page; /* Locked page to be unmapped */ };
struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr, @@@ -1771,7 -1756,6 +1761,7 @@@ extern vm_fault_t handle_mm_fault(struc extern int fixup_user_fault(struct mm_struct *mm, unsigned long address, unsigned int fault_flags, bool *unlocked); +void unmap_mapping_page(struct page *page); void unmap_mapping_pages(struct address_space *mapping, pgoff_t start, pgoff_t nr, bool even_cows); void unmap_mapping_range(struct address_space *mapping, @@@ -1792,7 -1776,6 +1782,7 @@@ static inline int fixup_user_fault(stru BUG(); return -EFAULT; } +static inline void unmap_mapping_page(struct page *page) { } static inline void unmap_mapping_pages(struct address_space *mapping, pgoff_t start, pgoff_t nr, bool even_cows) { } static inline void unmap_mapping_range(struct address_space *mapping, @@@ -1854,8 -1837,12 +1844,8 @@@ extern int try_to_release_page(struct p extern void do_invalidatepage(struct page *page, unsigned int offset, unsigned int length);
-void __set_page_dirty(struct page *, struct address_space *, int warn); -int __set_page_dirty_nobuffers(struct page *page); -int __set_page_dirty_no_writeback(struct page *page); int redirty_page_for_writepage(struct writeback_control *wbc, struct page *page); -void account_page_dirtied(struct page *page, struct address_space *mapping); void account_page_cleaned(struct page *page, struct address_space *mapping, struct bdi_writeback *wb); int set_page_dirty(struct page *page); @@@ -2420,7 -2407,7 +2410,7 @@@ static inline unsigned long free_initme extern char __init_begin[], __init_end[];
return free_reserved_area(&__init_begin, &__init_end, - poison, "unused kernel"); + poison, "unused kernel image (initmem)"); }
static inline unsigned long get_num_physpages(void) @@@ -2460,7 -2447,7 +2450,7 @@@ extern void get_pfn_range_for_nid(unsig unsigned long *start_pfn, unsigned long *end_pfn); extern unsigned long find_min_pfn_with_active_regions(void);
-#ifndef CONFIG_NEED_MULTIPLE_NODES +#ifndef CONFIG_NUMA static inline int early_pfn_to_nid(unsigned long pfn) { return 0; @@@ -2474,6 -2461,7 +2464,6 @@@ extern void set_dma_reserve(unsigned lo extern void memmap_init_range(unsigned long, int, unsigned long, unsigned long, unsigned long, enum meminit_context, struct vmem_altmap *, int migratetype); -extern void memmap_init_zone(struct zone *zone); extern void setup_per_zone_wmarks(void); extern int __meminit init_per_zone_wmark_min(void); extern void mem_init(void); @@@ -2680,45 -2668,17 +2670,45 @@@ extern struct vm_area_struct * find_vma extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr, struct vm_area_struct **pprev);
-/* Look up the first VMA which intersects the interval start_addr..end_addr-1, - NULL if none. Assume start_addr < end_addr. */ -static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr) +/** + * find_vma_intersection() - Look up the first VMA which intersects the interval + * @mm: The process address space. + * @start_addr: The inclusive start user address. + * @end_addr: The exclusive end user address. + * + * Returns: The first VMA within the provided range, %NULL otherwise. Assumes + * start_addr < end_addr. + */ +static inline +struct vm_area_struct *find_vma_intersection(struct mm_struct *mm, + unsigned long start_addr, + unsigned long end_addr) { - struct vm_area_struct * vma = find_vma(mm,start_addr); + struct vm_area_struct *vma = find_vma(mm, start_addr);
if (vma && end_addr <= vma->vm_start) vma = NULL; return vma; }
+/** + * vma_lookup() - Find a VMA at a specific address + * @mm: The process address space. + * @addr: The user address. + * + * Return: The vm_area_struct at the given address, %NULL otherwise. + */ +static inline +struct vm_area_struct *vma_lookup(struct mm_struct *mm, unsigned long addr) +{ + struct vm_area_struct *vma = find_vma(mm, addr); + + if (vma && addr < vma->vm_start) + vma = NULL; + + return vma; +} + static inline unsigned long vm_start_gap(struct vm_area_struct *vma) { unsigned long vm_start = vma->vm_start; diff --combined init/Kconfig index a61c92066c2e,31397a7a45fb..55f9f7738ebb --- a/init/Kconfig +++ b/init/Kconfig @@@ -83,6 -83,9 +83,9 @@@ config TOOLS_SUPPORT_REL config CC_HAS_ASM_INLINE def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)
+ config CC_HAS_NO_PROFILE_FN_ATTR + def_bool $(success,echo '__attribute__((no_profile_instrument_function)) int x();' | $(CC) -x c - -c -o /dev/null -Werror) + config CONSTRUCTORS bool
@@@ -442,7 -445,6 +445,7 @@@ config AUDITSYSCAL
source "kernel/irq/Kconfig" source "kernel/time/Kconfig" +source "kernel/bpf/Kconfig" source "kernel/Kconfig.preempt"
menu "CPU/Task time and stats accounting" @@@ -1714,6 -1716,46 +1717,6 @@@ config KALLSYMS_BASE_RELATIV
# syscall, maps, verifier
-config BPF_LSM - bool "LSM Instrumentation with BPF" - depends on BPF_EVENTS - depends on BPF_SYSCALL - depends on SECURITY - depends on BPF_JIT - help - Enables instrumentation of the security hooks with eBPF programs for - implementing dynamic MAC and Audit Policies. - - If you are unsure how to answer this question, answer N. - -config BPF_SYSCALL - bool "Enable bpf() system call" - select BPF - select IRQ_WORK - select TASKS_TRACE_RCU - select BINARY_PRINTF - select NET_SOCK_MSG if INET - default n - help - Enable the bpf() system call that allows to manipulate eBPF - programs and maps via file descriptors. - -config ARCH_WANT_DEFAULT_BPF_JIT - bool - -config BPF_JIT_ALWAYS_ON - bool "Permanently enable BPF JIT and remove BPF interpreter" - depends on BPF_SYSCALL && HAVE_EBPF_JIT && BPF_JIT - help - Enables BPF JIT and removes BPF interpreter to avoid - speculative execution of BPF instructions by the interpreter - -config BPF_JIT_DEFAULT_ON - def_bool ARCH_WANT_DEFAULT_BPF_JIT || BPF_JIT_ALWAYS_ON - depends on HAVE_EBPF_JIT && BPF_JIT - -source "kernel/bpf/preload/Kconfig" - config USERFAULTFD bool "Enable userfaultfd() system call" depends on MMU