The following commit has been merged in the master branch: commit b250e6d141ce4f0d0ada60e4b5db577050e5feb0 Merge: 4e71add02821bdd204dd29c35e66baecc9b6a235 bc7cd2dd1f8e5889cc68b69984033ac5bef6ba61 Author: Linus Torvalds torvalds@linux-foundation.org Date: Fri Sep 3 15:33:47 2021 -0700
Merge tag 'kbuild-v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
Pull Kbuild updates from Masahiro Yamada:
- Add -s option (strict mode) to merge_config.sh to make it fail when any symbol is redefined.
- Show a warning if a different compiler is used for building external modules.
- Infer --target from ARCH for CC=clang to let you cross-compile the kernel without CROSS_COMPILE.
- Make the integrated assembler default (LLVM_IAS=1) for CC=clang.
- Add <linux/stdarg.h> to the kernel source instead of borrowing <stdarg.h> from the compiler.
- Add Nick Desaulniers as a Kbuild reviewer.
- Drop stale cc-option tests.
- Fix the combination of CONFIG_TRIM_UNUSED_KSYMS and CONFIG_LTO_CLANG to handle symbols in inline assembly.
- Show a warning if 'FORCE' is missing for if_changed rules.
- Various cleanups
* tag 'kbuild-v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (39 commits) kbuild: redo fake deps at include/ksym/*.h kbuild: clean up objtool_args slightly modpost: get the *.mod file path more simply checkkconfigsymbols.py: Fix the '--ignore' option kbuild: merge vmlinux_link() between ARCH=um and other architectures kbuild: do not remove 'linux' link in scripts/link-vmlinux.sh kbuild: merge vmlinux_link() between the ordinary link and Clang LTO kbuild: remove stale *.symversions kbuild: remove unused quiet_cmd_update_lto_symversions gen_compile_commands: extract compiler command from a series of commands x86: remove cc-option-yn test for -mtune= arc: replace cc-option-yn uses with cc-option s390: replace cc-option-yn uses with cc-option ia64: move core-y in arch/ia64/Makefile to arch/ia64/Kbuild sparc: move the install rule to arch/sparc/Makefile security: remove unneeded subdir-$(CONFIG_...) kbuild: sh: remove unused install script kbuild: Fix 'no symbols' warning when CONFIG_TRIM_UNUSD_KSYMS=y kbuild: Switch to 'f' variants of integrated assembler flag kbuild: Shuffle blank line to improve comment meaning ...
diff --combined MAINTAINERS index fa87db67a249,f5a650eea80b..5ffe43730e43 --- a/MAINTAINERS +++ b/MAINTAINERS @@@ -459,12 -459,6 +459,12 @@@ S: Maintaine W: https://parisc.wiki.kernel.org/index.php/AD1889 F: sound/pci/ad1889.*
+AD5110 ANALOG DEVICES DIGITAL POTENTIOMETERS DRIVER +M: Mugilraj Dhavachelvan dmugil2000@gmail.com +L: linux-iio@vger.kernel.org +S: Supported +F: drivers/iio/potentiometer/ad5110.c + AD525X ANALOG DEVICES DIGITAL POTENTIOMETERS DRIVER M: Michael Hennerich michael.hennerich@analog.com S: Supported @@@ -798,7 -792,7 +798,7 @@@ F: Documentation/devicetree/bindings/i2 F: drivers/i2c/busses/i2c-altera.c
ALTERA MAILBOX DRIVER -M: Ley Foon Tan ley.foon.tan@intel.com +M: Joyce Ooi joyce.ooi@intel.com S: Maintained F: drivers/mailbox/mailbox-altera.c
@@@ -1268,13 -1262,6 +1268,13 @@@ L: linux-input@vger.kernel.or S: Odd fixes F: drivers/input/mouse/bcm5974.c
+APPLE DART IOMMU DRIVER +M: Sven Peter sven@svenpeter.dev +L: iommu@lists.linux-foundation.org +S: Maintained +F: Documentation/devicetree/bindings/iommu/apple,dart.yaml +F: drivers/iommu/apple-dart.c + APPLE SMC DRIVER M: Henrik Rydberg rydberg@bitmath.org L: linux-hwmon@vger.kernel.org @@@ -1329,13 -1316,6 +1329,13 @@@ L: linux-media@vger.kernel.or S: Maintained F: drivers/media/i2c/aptina-pll.*
+AQUACOMPUTER D5 NEXT PUMP SENSOR DRIVER +M: Aleksa Savic savicaleksa83@gmail.com +L: linux-hwmon@vger.kernel.org +S: Maintained +F: Documentation/hwmon/aquacomputer_d5next.rst +F: drivers/hwmon/aquacomputer_d5next.c + AQUANTIA ETHERNET DRIVER (atlantic) M: Igor Russkikh irusskikh@marvell.com L: netdev@vger.kernel.org @@@ -1402,7 -1382,7 +1402,7 @@@ F: Documentation/devicetree/bindings/ar F: Documentation/devicetree/bindings/arm/arm,realview.yaml F: Documentation/devicetree/bindings/arm/arm,versatile.yaml F: Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml -F: Documentation/devicetree/bindings/auxdisplay/arm-charlcd.txt +F: Documentation/devicetree/bindings/auxdisplay/arm,versatile-lcd.yaml F: Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml F: Documentation/devicetree/bindings/i2c/i2c-versatile.txt F: Documentation/devicetree/bindings/interrupt-controller/arm,versatile-fpga-irq.txt @@@ -1508,7 -1488,7 +1508,7 @@@ M: Miquel Raynal <miquel.raynal@bootlin M: Naga Sureshkumar Relli nagasure@xilinx.com L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) S: Maintained -F: Documentation/devicetree/bindings/mtd/arm,pl353-smc.yaml +F: Documentation/devicetree/bindings/memory-controllers/arm,pl353-smc.yaml F: drivers/memory/pl353-smc.c
ARM PRIMECELL CLCD PL110 DRIVER @@@ -1710,7 -1690,7 +1710,7 @@@ L: linux-arm-kernel@lists.infradead.or S: Maintained W: https://asahilinux.org B: https://github.com/AsahiLinux/linux/issues -C: irc://chat.freenode.net/asahi-dev +C: irc://irc.oftc.net/asahi-dev T: git https://github.com/AsahiLinux/linux.git F: Documentation/devicetree/bindings/arm/apple.yaml F: Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml @@@ -2030,12 -2010,10 +2030,12 @@@ M: Krzysztof Halasa <khalasa@piap.pl L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) S: Maintained F: Documentation/devicetree/bindings/arm/intel-ixp4xx.yaml +F: Documentation/devicetree/bindings/bus/intel,ixp4xx-expansion-bus-controller.yaml F: Documentation/devicetree/bindings/gpio/intel,ixp4xx-gpio.txt F: Documentation/devicetree/bindings/interrupt-controller/intel,ixp4xx-interrupt.yaml F: Documentation/devicetree/bindings/timer/intel,ixp4xx-timer.yaml F: arch/arm/mach-ixp4xx/ +F: drivers/bus/intel-ixp4xx-eb.c F: drivers/clocksource/timer-ixp4xx.c F: drivers/crypto/ixp4xx_crypto.c F: drivers/gpio/gpio-ixp4xx.c @@@ -2864,7 -2842,7 +2864,7 @@@ AS3645A LED FLASH CONTROLLER DRIVE M: Sakari Ailus sakari.ailus@iki.fi L: linux-leds@vger.kernel.org S: Maintained -F: drivers/leds/leds-as3645a.c +F: drivers/leds/flash/leds-as3645a.c
ASAHI KASEI AK7375 LENS VOICE COIL DRIVER M: Tianshu Qiu tian.shu.qiu@intel.com @@@ -3219,7 -3197,7 +3219,7 @@@ S: Maintaine W: https://www.open-mesh.org/ Q: https://patchwork.open-mesh.org/project/batman/list/ B: https://www.open-mesh.org/projects/batman-adv/issues -C: irc://chat.freenode.net/batman +C: ircs://irc.hackint.org/batadv T: git https://git.open-mesh.org/linux-merge.git F: Documentation/networking/batman-adv.rst F: include/uapi/linux/batadv_packet.h @@@ -3431,6 -3409,7 +3431,6 @@@ F: drivers/net/ethernet/netronome/nfp/b
BPF JIT for POWERPC (32-BIT AND 64-BIT) M: Naveen N. Rao naveen.n.rao@linux.ibm.com -M: Sandipan Das sandipan@linux.ibm.com L: netdev@vger.kernel.org L: bpf@vger.kernel.org S: Maintained @@@ -3876,7 -3855,7 +3876,7 @@@ M: Markus Mayer <mmayer@broadcom.com M: bcm-kernel-feedback-list@broadcom.com L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) S: Maintained -F: Documentation/devicetree/bindings/memory-controllers/brcm,dpfe-cpu.txt +F: Documentation/devicetree/bindings/memory-controllers/brcm,dpfe-cpu.yaml F: drivers/memory/brcmstb_dpfe.c
BROADCOM STB NAND FLASH DRIVER @@@ -3887,16 -3866,6 +3887,16 @@@ L: bcm-kernel-feedback-list@broadcom.co S: Maintained F: drivers/mtd/nand/raw/brcmnand/
+BROADCOM STB PCIE DRIVER +M: Jim Quinlan jim2101024@gmail.com +M: Nicolas Saenz Julienne nsaenz@kernel.org +M: Florian Fainelli f.fainelli@gmail.com +M: bcm-kernel-feedback-list@broadcom.com +L: linux-pci@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml +F: drivers/pci/controller/pcie-brcmstb.c + BROADCOM SYSTEMPORT ETHERNET DRIVER M: Florian Fainelli f.fainelli@gmail.com L: bcm-kernel-feedback-list@broadcom.com @@@ -4529,9 -4498,10 +4529,10 @@@ L: clang-built-linux@googlegroups.co S: Supported W: https://clangbuiltlinux.github.io/ B: https://github.com/ClangBuiltLinux/linux/issues -C: irc://chat.freenode.net/clangbuiltlinux +C: irc://irc.libera.chat/clangbuiltlinux F: Documentation/kbuild/llvm.rst F: include/linux/compiler-clang.h + F: scripts/Makefile.clang F: scripts/clang-tools/ K: \b(?i:clang|llvm)\b
@@@ -4641,7 -4611,7 +4642,7 @@@ F: include/linux/clk F: include/linux/of_clk.h X: drivers/clk/clkdev.c
-COMMON INTERNET FILE SYSTEM (CIFS) +COMMON INTERNET FILE SYSTEM CLIENT (CIFS) M: Steve French sfrench@samba.org L: linux-cifs@vger.kernel.org L: samba-technical@lists.samba.org (moderated for non-subscribers) @@@ -4650,7 -4620,6 +4651,7 @@@ W: http://linux-cifs.samba.org T: git git://git.samba.org/sfrench/cifs-2.6.git F: Documentation/admin-guide/cifs/ F: fs/cifs/ +F: fs/cifs_common/
COMPACTPCI HOTPLUG CORE M: Scott Murray scott@spiteful.org @@@ -5602,7 -5571,7 +5603,7 @@@ M: Lukasz Luba <lukasz.luba@arm.com L: linux-pm@vger.kernel.org L: linux-samsung-soc@vger.kernel.org S: Maintained -F: Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt +F: Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.yaml F: drivers/memory/samsung/exynos5422-dmc.c
DME1737 HARDWARE MONITOR DRIVER @@@ -5716,7 -5685,6 +5717,7 @@@ DPAA2 ETHERNET SWITCH DRIVE M: Ioana Ciornei ioana.ciornei@nxp.com L: netdev@vger.kernel.org S: Maintained +F: Documentation/networking/device_drivers/ethernet/freescale/dpaa2/switch-driver.rst F: drivers/net/ethernet/freescale/dpaa2/dpaa2-switch* F: drivers/net/ethernet/freescale/dpaa2/dpsw*
@@@ -5740,11 -5708,6 +5741,11 @@@ F: Documentation/admin-guide/blockdev F: drivers/block/drbd/ F: lib/lru_cache.c
+DRIVER COMPONENT FRAMEWORK +L: dri-devel@lists.freedesktop.org +F: drivers/base/component.c +F: include/linux/component.h + DRIVER CORE, KOBJECTS, DEBUGFS AND SYSFS M: Greg Kroah-Hartman gregkh@linuxfoundation.org R: "Rafael J. Wysocki" rafael@kernel.org @@@ -5808,7 -5771,7 +5809,7 @@@ M: Gerd Hoffmann <kraxel@redhat.com L: virtualization@lists.linux-foundation.org S: Maintained T: git git://anongit.freedesktop.org/drm/drm-misc -F: drivers/gpu/drm/bochs/ +F: drivers/gpu/drm/tiny/bochs.c
DRM DRIVER FOR BOE HIMAX8279D PANELS M: Jerry Han hanxu5@huaqin.corp-partner.google.com @@@ -5993,13 -5956,6 +5994,13 @@@ S: Maintaine F: Documentation/devicetree/bindings/display/panel/raydium,rm67191.yaml F: drivers/gpu/drm/panel/panel-raydium-rm67191.c
+DRM DRIVER FOR SAMSUNG DB7430 PANELS +M: Linus Walleij linus.walleij@linaro.org +S: Maintained +T: git git://anongit.freedesktop.org/drm/drm-misc +F: Documentation/devicetree/bindings/display/panel/samsung,lms397kf04.yaml +F: drivers/gpu/drm/panel/panel-samsung-db7430.c + DRM DRIVER FOR SITRONIX ST7703 PANELS M: Guido G��nther agx@sigxcpu.org R: Purism Kernel Team kernel@puri.sm @@@ -6098,27 -6054,21 +6099,27 @@@ F: drivers/gpu/drm/vboxvideo
DRM DRIVER FOR VMWARE VIRTUAL GPU M: "VMware Graphics" linux-graphics-maintainer@vmware.com -M: Roland Scheidegger sroland@vmware.com M: Zack Rusin zackr@vmware.com L: dri-devel@lists.freedesktop.org S: Supported -T: git git://people.freedesktop.org/~sroland/linux +T: git git://anongit.freedesktop.org/drm/drm-misc F: drivers/gpu/drm/vmwgfx/ F: include/uapi/drm/vmwgfx_drm.h
+DRM DRIVER FOR WIDECHIPS WS2401 PANELS +M: Linus Walleij linus.walleij@linaro.org +S: Maintained +T: git git://anongit.freedesktop.org/drm/drm-misc +F: Documentation/devicetree/bindings/display/panel/samsung,lms380kf01.yaml +F: drivers/gpu/drm/panel/panel-widechips-ws2401.c + DRM DRIVERS M: David Airlie airlied@linux.ie M: Daniel Vetter daniel@ffwll.ch L: dri-devel@lists.freedesktop.org S: Maintained B: https://gitlab.freedesktop.org/drm -C: irc://chat.freenode.net/dri-devel +C: irc://irc.oftc.net/dri-devel T: git git://anongit.freedesktop.org/drm/drm F: Documentation/devicetree/bindings/display/ F: Documentation/devicetree/bindings/gpu/ @@@ -6611,7 -6561,6 +6612,7 @@@ EDAC-ARMAD M: Jan Luebbe jlu@pengutronix.de L: linux-edac@vger.kernel.org S: Maintained +F: Documentation/devicetree/bindings/memory-controllers/marvell,mvebu-sdram-controller.yaml F: drivers/edac/armada_xp_*
EDAC-AST2500 @@@ -6853,6 -6802,7 +6854,6 @@@ F: Documentation/admin-guide/media/em28 F: drivers/media/usb/em28xx/
EMBEDDED LINUX -M: Paul Gortmaker paul.gortmaker@windriver.com M: Matt Mackall mpm@selenic.com M: David Woodhouse dwmw2@infradead.org L: linux-embedded@vger.kernel.org @@@ -6955,12 -6905,6 +6956,12 @@@ M: Mark Einon <mark.einon@gmail.com S: Odd Fixes F: drivers/net/ethernet/agere/
+ETAS ES58X CAN/USB DRIVER +M: Vincent Mailhol mailhol.vincent@wanadoo.fr +L: linux-can@vger.kernel.org +S: Maintained +F: drivers/net/can/usb/etas_es58x/ + ETHERNET BRIDGE M: Roopa Prabhu roopa@nvidia.com M: Nikolay Aleksandrov nikolay@nvidia.com @@@ -7002,7 -6946,7 +7003,7 @@@ F: include/uapi/linux/mdio. F: include/uapi/linux/mii.h
EXFAT FILE SYSTEM -M: Namjae Jeon namjae.jeon@samsung.com +M: Namjae Jeon linkinjeon@kernel.org M: Sungjong Seo sj1557.seo@samsung.com L: linux-fsdevel@vger.kernel.org S: Maintained @@@ -8452,7 -8396,7 +8453,7 @@@ F: drivers/crypto/hisilicon/sgl. F: drivers/crypto/hisilicon/zip/
HISILICON ROCE DRIVER -M: Lijun Ou oulijun@huawei.com +M: Wenpeng Liang liangwenpeng@huawei.com M: Weihang Li liweihang@huawei.com L: linux-rdma@vger.kernel.org S: Maintained @@@ -8490,12 -8434,10 +8491,12 @@@ S: Maintaine F: Documentation/devicetree/bindings/spmi/hisilicon,hisi-spmi-controller.yaml F: drivers/spmi/hisi-spmi-controller.c
-HISILICON STAGING DRIVERS FOR HIKEY 960/970 +HISILICON SPMI PMIC DRIVER FOR HIKEY 6421v600 M: Mauro Carvalho Chehab mchehab+huawei@kernel.org +L: linux-kernel@vger.kernel.org S: Maintained -F: drivers/staging/hikey9xx/ +F: Documentation/devicetree/bindings/mfd/hisilicon,hi6421-spmi-pmic.yaml +F: drivers/mfd/hi6421-spmi-pmic.c
HISILICON TRUE RANDOM NUMBER GENERATOR V2 SUPPORT M: Zaibo Xu xuzaibo@huawei.com @@@ -8654,9 -8596,6 +8655,9 @@@ T: git git://git.kernel.org/pub/scm/lin F: Documentation/ABI/stable/sysfs-bus-vmbus F: Documentation/ABI/testing/debugfs-hyperv F: Documentation/networking/device_drivers/ethernet/microsoft/netvsc.rst +F: arch/arm64/hyperv +F: arch/arm64/include/asm/hyperv-tlfs.h +F: arch/arm64/include/asm/mshyperv.h F: arch/x86/hyperv F: arch/x86/include/asm/hyperv-tlfs.h F: arch/x86/include/asm/mshyperv.h @@@ -9103,7 -9042,7 +9104,7 @@@ F: drivers/usb/atm/ueagle-atm. IMGTEC ASCII LCD DRIVER M: Paul Burton paulburton@kernel.org S: Maintained -F: Documentation/devicetree/bindings/auxdisplay/img-ascii-lcd.txt +F: Documentation/devicetree/bindings/auxdisplay/img,ascii-lcd.yaml F: drivers/auxdisplay/img-ascii-lcd.c
IMGTEC IR DECODER DRIVER @@@ -9275,20 -9214,13 +9276,20 @@@ INTEL ATOMISP2 DUMMY / POWER-MANAGEMEN M: Hans de Goede hdegoede@redhat.com L: platform-driver-x86@vger.kernel.org S: Maintained -F: drivers/platform/x86/intel_atomisp2_pm.c +F: drivers/platform/x86/intel/atomisp2/pm.c
INTEL ATOMISP2 LED DRIVER M: Hans de Goede hdegoede@redhat.com L: platform-driver-x86@vger.kernel.org S: Maintained -F: drivers/platform/x86/intel_atomisp2_led.c +F: drivers/platform/x86/intel/atomisp2/led.c + +INTEL BIOS SAR INT1092 DRIVER +M: Shravan S s.shravan@intel.com +M: Intel Corporation linuxwwan@intel.com +L: platform-driver-x86@vger.kernel.org +S: Maintained +F: drivers/platform/x86/intel/int1092/
INTEL BROXTON PMC DRIVER M: Mika Westerberg mika.westerberg@linux.intel.com @@@ -9320,7 -9252,7 +9321,7 @@@ S: Supporte W: https://01.org/linuxgraphics/ Q: http://patchwork.freedesktop.org/project/intel-gfx/ B: https://gitlab.freedesktop.org/drm/intel/-/wikis/How-to-file-i915-bugs -C: irc://chat.freenode.net/intel-gfx +C: irc://irc.oftc.net/intel-gfx T: git git://anongit.freedesktop.org/drm-intel F: Documentation/gpu/i915.rst F: drivers/gpu/drm/i915/ @@@ -9384,7 -9316,7 +9385,7 @@@ INTEL HID EVENT DRIVE M: Alex Hung alex.hung@canonical.com L: platform-driver-x86@vger.kernel.org S: Maintained -F: drivers/platform/x86/intel-hid.c +F: drivers/platform/x86/intel/hid.c
INTEL I/OAT DMA DRIVER M: Dave Jiang dave.jiang@intel.com @@@ -9528,17 -9460,17 +9529,17 @@@ F: include/linux/mfd/intel-m10-bmc.
INTEL MENLOW THERMAL DRIVER M: Sujith Thomas sujith.thomas@intel.com -L: platform-driver-x86@vger.kernel.org +L: linux-pm@vger.kernel.org S: Supported W: https://01.org/linux-acpi -F: drivers/platform/x86/intel_menlow.c +F: drivers/thermal/intel/intel_menlow.c
INTEL P-Unit IPC DRIVER M: Zha Qipeng qipeng.zha@intel.com L: platform-driver-x86@vger.kernel.org S: Maintained F: arch/x86/include/asm/intel_punit_ipc.h -F: drivers/platform/x86/intel_punit_ipc.c +F: drivers/platform/x86/intel/punit_ipc.c
INTEL PMC CORE DRIVER M: Rajneesh Bhardwaj irenic.rajneesh@gmail.com @@@ -9546,7 -9478,7 +9547,7 @@@ M: David E Box <david.e.box@intel.com L: platform-driver-x86@vger.kernel.org S: Maintained F: Documentation/ABI/testing/sysfs-platform-intel-pmc -F: drivers/platform/x86/intel_pmc_core* +F: drivers/platform/x86/intel/pmc/
INTEL PMIC GPIO DRIVERS M: Andy Shevchenko andy@kernel.org @@@ -9564,7 -9496,7 +9565,7 @@@ INTEL PMT DRIVE M: "David E. Box" david.e.box@linux.intel.com S: Maintained F: drivers/mfd/intel_pmt.c -F: drivers/platform/x86/intel_pmt_* +F: drivers/platform/x86/intel/pmt/
INTEL PRO/WIRELESS 2100, 2200BG, 2915ABG NETWORK CONNECTION SUPPORT M: Stanislav Yakovlev stas.yakovlev@gmail.com @@@ -9601,7 -9533,7 +9602,7 @@@ INTEL SPEED SELECT TECHNOLOG M: Srinivas Pandruvada srinivas.pandruvada@linux.intel.com L: platform-driver-x86@vger.kernel.org S: Maintained -F: drivers/platform/x86/intel_speed_select_if/ +F: drivers/platform/x86/intel/speed_select_if/ F: include/uapi/linux/isst_if.h F: tools/power/x86/intel-speed-select/
@@@ -9622,19 -9554,19 +9623,19 @@@ M: "David E. Box" <david.e.box@linux.in L: platform-driver-x86@vger.kernel.org S: Maintained F: arch/x86/include/asm/intel_telemetry.h -F: drivers/platform/x86/intel_telemetry* +F: drivers/platform/x86/intel/telemetry/
INTEL UNCORE FREQUENCY CONTROL M: Srinivas Pandruvada srinivas.pandruvada@linux.intel.com L: platform-driver-x86@vger.kernel.org S: Maintained -F: drivers/platform/x86/intel-uncore-frequency.c +F: drivers/platform/x86/intel/uncore-frequency.c
INTEL VIRTUAL BUTTON DRIVER M: AceLan Kao acelan.kao@canonical.com L: platform-driver-x86@vger.kernel.org S: Maintained -F: drivers/platform/x86/intel-vbtn.c +F: drivers/platform/x86/intel/vbtn.c
INTEL WIRELESS 3945ABG/BG, 4965AGN (iwlegacy) M: Stanislaw Gruszka stf_xl@wp.pl @@@ -9655,12 -9587,12 +9656,12 @@@ M: Jithu Joseph <jithu.joseph@intel.com R: Maurice Ma maurice.ma@intel.com S: Maintained W: https://slimbootloader.github.io/security/firmware-update.html -F: drivers/platform/x86/intel-wmi-sbl-fw-update.c +F: drivers/platform/x86/intel/wmi/sbl-fw-update.c
INTEL WMI THUNDERBOLT FORCE POWER DRIVER L: Dell.Client.Kernel@dell.com S: Maintained -F: drivers/platform/x86/intel-wmi-thunderbolt.c +F: drivers/platform/x86/intel/wmi/thunderbolt.c
INTEL WWAN IOSM DRIVER M: M Chetan Kumar m.chetan.kumar@intel.com @@@ -9818,6 -9750,11 +9819,6 @@@ M: David Sterba <dsterba@suse.com S: Odd Fixes F: drivers/tty/ipwireless/
-IPX NETWORK LAYER -L: netdev@vger.kernel.org -S: Obsolete -F: include/uapi/linux/ipx.h - IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY) M: Marc Zyngier maz@kernel.org S: Maintained @@@ -10116,6 -10053,7 +10117,7 @@@ F: fs/autofs KERNEL BUILD + files below scripts/ (unless maintained elsewhere) M: Masahiro Yamada masahiroy@kernel.org M: Michal Marek michal.lkml@markovi.net + R: Nick Desaulniers ndesaulniers@google.com L: linux-kbuild@vger.kernel.org S: Maintained T: git git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git @@@ -10167,17 -10105,6 +10169,17 @@@ T: git git://git.kernel.org/pub/scm/lin F: Documentation/dev-tools/kselftest* F: tools/testing/selftests/
+KERNEL SMB3 SERVER (KSMBD) +M: Namjae Jeon linkinjeon@kernel.org +M: Sergey Senozhatsky senozhatsky@chromium.org +M: Steve French sfrench@samba.org +M: Hyunchul Lee hyc.lee@gmail.com +L: linux-cifs@vger.kernel.org +S: Maintained +T: git git://git.samba.org/ksmbd.git +F: fs/cifs_common/ +F: fs/ksmbd/ + KERNEL UNIT TESTING FRAMEWORK (KUnit) M: Brendan Higgins brendanhiggins@google.com L: linux-kselftest@vger.kernel.org @@@ -10463,7 -10390,6 +10465,7 @@@ F: net/core/skmsg. F: net/core/sock_map.c F: net/ipv4/tcp_bpf.c F: net/ipv4/udp_bpf.c +F: net/unix/unix_bpf.c
LANDLOCK SECURITY MODULE M: Micka��l Sala��n mic@digikod.net @@@ -10685,6 -10611,15 +10687,6 @@@ F: LICENSES F: scripts/spdxcheck-test.sh F: scripts/spdxcheck.py
-LIGHTNVM PLATFORM SUPPORT -M: Matias Bjorling mb@lightnvm.io -L: linux-block@vger.kernel.org -S: Maintained -W: http://github/OpenChannelSSD -F: drivers/lightnvm/ -F: include/linux/lightnvm.h -F: include/uapi/linux/lightnvm.h - LINEAR RANGES HELPERS M: Mark Brown broonie@kernel.org R: Matti Vaittinen matti.vaittinen@fi.rohmeurope.com @@@ -11097,18 -11032,6 +11099,18 @@@ F: drivers/mailbox/arm_mhuv2. F: include/linux/mailbox/arm_mhuv2_message.h F: Documentation/devicetree/bindings/mailbox/arm,mhuv2.yaml
+MANAGEMENT COMPONENT TRANSPORT PROTOCOL (MCTP) +M: Jeremy Kerr jk@codeconstruct.com.au +M: Matt Johnston matt@codeconstruct.com.au +L: netdev@vger.kernel.org +S: Maintained +F: Documentation/networking/mctp.rst +F: drivers/net/mctp/ +F: include/net/mctp.h +F: include/net/mctpdevice.h +F: include/net/netns/mctp.h +F: net/mctp/ + MAN-PAGES: MANUAL PAGES FOR LINUX -- Sections 2, 3, 4, 5, and 7 M: Michael Kerrisk mtk.manpages@gmail.com L: linux-man@vger.kernel.org @@@ -11119,7 -11042,7 +11121,7 @@@ MARDUK (CREATOR CI40) DEVICE TREE SUPPO M: Rahul Bedarkar rahulbedarkar89@gmail.com L: linux-mips@vger.kernel.org S: Maintained -F: arch/mips/boot/dts/img/pistachio_marduk.dts +F: arch/mips/boot/dts/img/pistachio*
MARVELL 88E6XXX ETHERNET SWITCH FABRIC DRIVER M: Andrew Lunn andrew@lunn.ch @@@ -11406,13 -11329,7 +11408,13 @@@ W: https://linuxtv.or T: git git://linuxtv.org/media_tree.git F: drivers/media/radio/radio-maxiradio*
-MCAB MICROCHIP CAN BUS ANALYZER TOOL DRIVER +MAXLINEAR ETHERNET PHY DRIVER +M: Xu Liang lxu@maxlinear.com +L: netdev@vger.kernel.org +S: Supported +F: drivers/net/phy/mxl-gpy.c + +MCBA MICROCHIP CAN BUS ANALYZER TOOL DRIVER R: Yasushi SHOJI yashi@spacecubics.com L: linux-can@vger.kernel.org S: Maintained @@@ -13865,15 -13782,6 +13867,15 @@@ T: git git://linuxtv.org/media_tree.gi F: Documentation/devicetree/bindings/media/i2c/ov8856.yaml F: drivers/media/i2c/ov8856.c
+OMNIVISION OV9282 SENSOR DRIVER +M: Paul J. Murphy paul.j.murphy@intel.com +M: Daniele Alessandrelli daniele.alessandrelli@intel.com +L: linux-media@vger.kernel.org +S: Maintained +T: git git://linuxtv.org/media_tree.git +F: Documentation/devicetree/bindings/media/i2c/ovti,ov9282.yaml +F: drivers/media/i2c/ov9282.c + OMNIVISION OV9640 SENSOR DRIVER M: Petr Cvek petrcvekcz@gmail.com L: linux-media@vger.kernel.org @@@ -13964,12 -13872,6 +13966,12 @@@ F: Documentation/devicetree F: arch/*/boot/dts/ F: include/dt-bindings/
+OPENCOMPUTE PTP CLOCK DRIVER +M: Jonathan Lemon jonathan.lemon@gmail.com +L: netdev@vger.kernel.org +S: Maintained +F: drivers/ptp/ptp_ocp.c + OPENCORES I2C BUS DRIVER M: Peter Korsgaard peter@korsgaard.com M: Andrew Lunn andrew@lunn.ch @@@ -14295,7 -14197,7 +14297,7 @@@ M: Lucas Stach <l.stach@pengutronix.de L: linux-pci@vger.kernel.org L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) S: Maintained -F: Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt +F: Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml F: drivers/pci/controller/dwc/*imx6*
PCI DRIVER FOR FU740 @@@ -14383,8 -14285,7 +14385,8 @@@ M: Jingoo Han <jingoohan1@gmail.com M: Gustavo Pimentel gustavo.pimentel@synopsys.com L: linux-pci@vger.kernel.org S: Maintained -F: Documentation/devicetree/bindings/pci/designware-pcie.txt +F: Documentation/devicetree/bindings/pci/snps,dw-pcie.yaml +F: Documentation/devicetree/bindings/pci/snps,dw-pcie-ep.yaml F: drivers/pci/controller/dwc/*designware*
PCI DRIVER FOR TI DRA7XX/J721E @@@ -14521,7 -14422,7 +14523,7 @@@ M: Xiaowei Song <songxiaowei@hisilicon. M: Binghui Wang wangbinghui@hisilicon.com L: linux-pci@vger.kernel.org S: Maintained -F: Documentation/devicetree/bindings/pci/kirin-pcie.txt +F: Documentation/devicetree/bindings/pci/hisilicon,kirin-pcie.yaml F: drivers/pci/controller/dwc/pcie-kirin.c
PCIE DRIVER FOR HISILICON STB @@@ -14531,13 -14432,6 +14533,13 @@@ S: Maintaine F: Documentation/devicetree/bindings/pci/hisilicon-histb-pcie.txt F: drivers/pci/controller/dwc/pcie-histb.c
+PCIE DRIVER FOR INTEL LGM GW SOC +M: Rahul Tanwar rtanwar@maxlinear.com +L: linux-pci@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml +F: drivers/pci/controller/dwc/pcie-intel-gw.c + PCIE DRIVER FOR MEDIATEK M: Ryder Lee ryder.lee@mediatek.com M: Jianjun Wang jianjun.wang@mediatek.com @@@ -14733,12 -14627,6 +14735,12 @@@ F: Documentation/driver-api/pin-control F: drivers/pinctrl/ F: include/linux/pinctrl/
+PIN CONTROLLER - AMD +M: Basavaraj Natikar Basavaraj.Natikar@amd.com +M: Shyam Sundar S K Shyam-sundar.S-k@amd.com +S: Maintained +F: drivers/pinctrl/pinctrl-amd.c + PIN CONTROLLER - FREESCALE M: Dong Aisheng aisheng.dong@nxp.com M: Fabio Estevam festevam@gmail.com @@@ -14757,19 -14645,12 +14759,19 @@@ S: Maintaine T: git git://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/intel.git F: drivers/pinctrl/intel/
+PIN CONTROLLER - KEEMBAY +M: Lakshmi Sowjanya D lakshmi.sowjanya.d@intel.com +S: Supported +F: drivers/pinctrl/pinctrl-keembay* + PIN CONTROLLER - MEDIATEK M: Sean Wang sean.wang@kernel.org L: linux-mediatek@lists.infradead.org (moderated for non-subscribers) S: Maintained -F: Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt -F: Documentation/devicetree/bindings/pinctrl/pinctrl-mt7622.txt +F: Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml +F: Documentation/devicetree/bindings/pinctrl/mediatek,mt6797-pinctrl.yaml +F: Documentation/devicetree/bindings/pinctrl/mediatek,mt7622-pinctrl.yaml +F: Documentation/devicetree/bindings/pinctrl/mediatek,mt8183-pinctrl.yaml F: drivers/pinctrl/mediatek/
PIN CONTROLLER - MICROCHIP AT91 @@@ -14823,6 -14704,14 +14825,6 @@@ S: Maintaine W: http://www.st.com/spear F: drivers/pinctrl/spear/
-PISTACHIO SOC SUPPORT -M: James Hartley james.hartley@sondrel.com -L: linux-mips@vger.kernel.org -S: Odd Fixes -F: arch/mips/boot/dts/img/pistachio* -F: arch/mips/configs/pistachio*_defconfig -F: arch/mips/pistachio/ - PKTCDVD DRIVER M: linux-block@vger.kernel.org S: Orphan @@@ -15039,10 -14928,12 +15041,10 @@@ S: Maintaine F: include/linux/printk.h F: kernel/printk/
-PRISM54 WIRELESS DRIVER -M: Luis Chamberlain mcgrof@kernel.org -L: linux-wireless@vger.kernel.org -S: Obsolete -W: https://wireless.wiki.kernel.org/en/users/Drivers/p54 -F: drivers/net/wireless/intersil/prism54/ +PRINTK INDEXING +R: Chris Down chris@chrisdown.name +S: Maintained +F: kernel/printk/index.c
PROC FILESYSTEM L: linux-kernel@vger.kernel.org @@@ -15914,7 -15805,7 +15916,7 @@@ F: Documentation/devicetree/bindings/i2 F: drivers/i2c/busses/i2c-emev2.c
RENESAS ETHERNET DRIVERS -R: Sergei Shtylyov sergei.shtylyov@gmail.com +R: Sergey Shtylyov s.shtylyov@omp.ru L: netdev@vger.kernel.org L: linux-renesas-soc@vger.kernel.org F: Documentation/devicetree/bindings/net/renesas,*.yaml @@@ -15959,14 -15850,6 +15961,14 @@@ L: linux-renesas-soc@vger.kernel.or S: Maintained F: drivers/phy/renesas/phy-rcar-gen3-usb*.c
+RENESAS RZ/G2L A/D DRIVER +M: Lad Prabhakar prabhakar.mahadev-lad.rj@bp.renesas.com +L: linux-iio@vger.kernel.org +L: linux-renesas-soc@vger.kernel.org +S: Supported +F: Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml +F: drivers/iio/adc/rzg2l_adc.c + RESET CONTROLLER FRAMEWORK M: Philipp Zabel p.zabel@pengutronix.de S: Maintained @@@ -16437,7 -16320,7 +16439,7 @@@ SAMSUNG EXYNOS TRUE RANDOM NUMBER GENER M: ��ukasz Stelmach l.stelmach@samsung.com L: linux-samsung-soc@vger.kernel.org S: Maintained -F: Documentation/devicetree/bindings/rng/samsung,exynos5250-trng.txt +F: Documentation/devicetree/bindings/rng/samsung,exynos5250-trng.yaml F: drivers/char/hw_random/exynos-trng.c
SAMSUNG FRAMEBUFFER DRIVER @@@ -16530,14 -16413,10 +16532,14 @@@ L: linux-samsung-soc@vger.kernel.or S: Supported T: git git://git.kernel.org/pub/scm/linux/kernel/git/snawrocki/clk.git F: Documentation/devicetree/bindings/clock/exynos*.txt +F: Documentation/devicetree/bindings/clock/samsung,*.yaml F: Documentation/devicetree/bindings/clock/samsung,s3c* F: Documentation/devicetree/bindings/clock/samsung,s5p* F: drivers/clk/samsung/ F: include/dt-bindings/clock/exynos*.h +F: include/dt-bindings/clock/s3c*.h +F: include/dt-bindings/clock/s5p*.h +F: include/dt-bindings/clock/samsung,*.h F: include/linux/clk/samsung.h F: include/linux/platform_data/clk-s3c2410.h
@@@ -16579,12 -16458,6 +16581,12 @@@ F: drivers/phy/samsung/phy-s5pv210-usb2 F: drivers/phy/samsung/phy-samsung-usb2.c F: drivers/phy/samsung/phy-samsung-usb2.h
+SANCLOUD BEAGLEBONE ENHANCED DEVICE TREE +M: Paul Barker paul.barker@sancloud.com +R: Marc Murphy marc.murphy@sancloud.com +S: Supported +F: arch/arm/boot/dts/am335x-sancloud* + SC1200 WDT DRIVER M: Zwane Mwaikambo zwanem@gmail.com S: Maintained @@@ -16844,12 -16717,6 +16846,12 @@@ F: drivers/iio/chemical/scd30_core. F: drivers/iio/chemical/scd30_i2c.c F: drivers/iio/chemical/scd30_serial.c
+SENSIRION SGP40 GAS SENSOR DRIVER +M: Andreas Klinger ak@it-klinger.de +S: Maintained +F: Documentation/ABI/testing/sysfs-bus-iio-chemical-sgp40 +F: drivers/iio/chemical/sgp40.c + SENSIRION SPS30 AIR POLLUTION SENSOR DRIVER M: Tomasz Duszynski tduszyns@gmail.com S: Maintained @@@ -17428,15 -17295,6 +17430,15 @@@ T: git git://linuxtv.org/media_tree.gi F: Documentation/devicetree/bindings/media/i2c/sony,imx334.yaml F: drivers/media/i2c/imx334.c
+SONY IMX335 SENSOR DRIVER +M: Paul J. Murphy paul.j.murphy@intel.com +M: Daniele Alessandrelli daniele.alessandrelli@intel.com +L: linux-media@vger.kernel.org +S: Maintained +T: git git://linuxtv.org/media_tree.git +F: Documentation/devicetree/bindings/media/i2c/sony,imx335.yaml +F: drivers/media/i2c/imx335.c + SONY IMX355 SENSOR DRIVER M: Tianshu Qiu tian.shu.qiu@intel.com L: linux-media@vger.kernel.org @@@ -17444,15 -17302,6 +17446,15 @@@ S: Maintaine T: git git://linuxtv.org/media_tree.git F: drivers/media/i2c/imx355.c
+SONY IMX412 SENSOR DRIVER +M: Paul J. Murphy paul.j.murphy@intel.com +M: Daniele Alessandrelli daniele.alessandrelli@intel.com +L: linux-media@vger.kernel.org +S: Maintained +T: git git://linuxtv.org/media_tree.git +F: Documentation/devicetree/bindings/media/i2c/sony,imx412.yaml +F: drivers/media/i2c/imx412.c + SONY MEMORYSTICK SUBSYSTEM M: Maxim Levitsky maximlevitsky@gmail.com M: Alex Dubov oakad@yahoo.com @@@ -17772,9 -17621,8 +17774,9 @@@ F: drivers/staging/olpc_dcon
STAGING - REALTEK RTL8188EU DRIVERS M: Larry Finger Larry.Finger@lwfinger.net -S: Odd Fixes -F: drivers/staging/rtl8188eu/ +M: Phillip Potter phil@philpotter.co.uk +S: Supported +F: drivers/staging/r8188eu/
STAGING - REALTEK RTL8712U DRIVERS M: Larry Finger Larry.Finger@lwfinger.net @@@ -17969,7 -17817,7 +17971,7 @@@ F: include/linux/sync_file. F: include/uapi/linux/sync_file.h
SYNOPSYS ARC ARCHITECTURE -M: Vineet Gupta vgupta@synopsys.com +M: Vineet Gupta vgupta@kernel.org L: linux-snps-arc@lists.infradead.org S: Supported T: git git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc.git @@@ -18111,7 -17959,6 +18113,7 @@@ F: drivers/regulator/scmi-regulator. F: drivers/reset/reset-scmi.c F: include/linux/sc[mp]i_protocol.h F: include/trace/events/scmi.h +F: include/uapi/linux/virtio_scmi.h
SYSTEM RESET/SHUTDOWN DRIVERS M: Sebastian Reichel sre@kernel.org @@@ -18962,14 -18809,6 +18964,14 @@@ F: arch/x86/mm/testmmiotrace. F: include/linux/mmiotrace.h F: kernel/trace/trace_mmiotrace.c
+TRADITIONAL CHINESE DOCUMENTATION +M: Hu Haowen src.res@email.cn +L: linux-doc-tw-discuss@lists.sourceforge.net +S: Maintained +W: https://github.com/srcres258/linux-doc +T: git git://github.com/srcres258/linux-doc.git doc-zh-tw +F: Documentation/translations/zh_TW/ + TRIVIAL PATCHES M: Jiri Kosina trivial@kernel.org S: Maintained @@@ -19629,7 -19468,6 +19631,7 @@@ T: git git://github.com/awilliam/linux- F: Documentation/driver-api/vfio.rst F: drivers/vfio/ F: include/linux/vfio.h +F: include/linux/vfio_pci_core.h F: include/uapi/linux/vfio.h
VFIO FSL-MC DRIVER @@@ -19880,15 -19718,6 +19882,15 @@@ S: Maintaine F: include/uapi/linux/virtio_snd.h F: sound/virtio/*
+VIRTIO I2C DRIVER +M: Jie Deng jie.deng@intel.com +M: Viresh Kumar viresh.kumar@linaro.org +L: linux-i2c@vger.kernel.org +L: virtualization@lists.linux-foundation.org +S: Maintained +F: drivers/i2c/busses/i2c-virtio.c +F: include/uapi/linux/virtio_i2c.h + VIRTUAL BOX GUEST DEVICE DRIVER M: Hans de Goede hdegoede@redhat.com M: Arnd Bergmann arnd@arndb.de @@@ -20190,8 -20019,7 +20192,8 @@@ F: Documentation/devicetree/bindings/ex F: Documentation/devicetree/bindings/mfd/wlf,arizona.yaml F: Documentation/devicetree/bindings/mfd/wm831x.txt F: Documentation/devicetree/bindings/regulator/wlf,arizona.yaml -F: Documentation/devicetree/bindings/sound/wlf,arizona.yaml +F: Documentation/devicetree/bindings/sound/wlf,*.yaml +F: Documentation/devicetree/bindings/sound/wm* F: Documentation/hwmon/wm83??.rst F: arch/arm/mach-s3c/mach-crag6410* F: drivers/clk/clk-wm83*.c diff --combined Makefile index ec9e8a0fe298,d1702ade1970..6bc1c5b17a62 --- a/Makefile +++ b/Makefile @@@ -2,7 -2,7 +2,7 @@@ VERSION = 5 PATCHLEVEL = 14 SUBLEVEL = 0 -EXTRAVERSION = -rc5 +EXTRAVERSION = NAME = Opossums on Parade
# *DOCUMENTATION* @@@ -191,10 -191,9 +191,9 @@@ endi ifneq ($(abs_srctree),$(abs_objtree)) # Look for make include files relative to root of kernel src # - # This does not become effective immediately because MAKEFLAGS is re-parsed - # once after the Makefile is read. We need to invoke sub-make. + # --included-dir is added for backward compatibility, but you should not rely on + # it. Please add $(srctree)/ prefix to include Makefiles in the source tree. MAKEFLAGS += --include-dir=$(abs_srctree) - need-sub-make := 1 endif
ifneq ($(filter 3.%,$(MAKE_VERSION)),) @@@ -404,11 -403,6 +403,11 @@@ ifeq ($(ARCH),sparc64 SRCARCH := sparc endif
+# Additional ARCH settings for parisc +ifeq ($(ARCH),parisc64) + SRCARCH := parisc +endif + export cross_compiling := ifneq ($(SRCARCH),$(SUBARCH)) cross_compiling := 1 @@@ -587,23 -581,10 +586,10 @@@ endi # Some architectures define CROSS_COMPILE in arch/$(SRCARCH)/Makefile. # CC_VERSION_TEXT is referenced from Kconfig (so it needs export), # and from include/config/auto.conf.cmd to detect the compiler upgrade. - CC_VERSION_TEXT = $(subst $(pound),,$(shell $(CC) --version 2>/dev/null | head -n 1)) + CC_VERSION_TEXT = $(subst $(pound),,$(shell LC_ALL=C $(CC) --version 2>/dev/null | head -n 1))
ifneq ($(findstring clang,$(CC_VERSION_TEXT)),) - ifneq ($(CROSS_COMPILE),) - CLANG_FLAGS += --target=$(notdir $(CROSS_COMPILE:%-=%)) - endif - ifeq ($(LLVM_IAS),1) - CLANG_FLAGS += -integrated-as - else - CLANG_FLAGS += -no-integrated-as - GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit)) - CLANG_FLAGS += --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE)) - endif - CLANG_FLAGS += -Werror=unknown-warning-option - KBUILD_CFLAGS += $(CLANG_FLAGS) - KBUILD_AFLAGS += $(CLANG_FLAGS) - export CLANG_FLAGS + include $(srctree)/scripts/Makefile.clang endif
# Include this also for config targets because some architectures need @@@ -688,9 -669,10 +674,10 @@@ endif # KBUILD_EXTMO # Defaults to vmlinux, but the arch makefile usually adds further targets all: vmlinux
- CFLAGS_GCOV := -fprofile-arcs -ftest-coverage \ - $(call cc-option,-fno-tree-loop-im) \ - $(call cc-disable-warning,maybe-uninitialized,) + CFLAGS_GCOV := -fprofile-arcs -ftest-coverage + ifdef CONFIG_CC_IS_GCC + CFLAGS_GCOV += -fno-tree-loop-im + endif export CFLAGS_GCOV
# The arch Makefiles can override CC_FLAGS_FTRACE. We may also append it later. @@@ -698,12 -680,14 +685,14 @@@ ifdef CONFIG_FUNCTION_TRACE CC_FLAGS_FTRACE := -pg endif
- RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register - RETPOLINE_VDSO_CFLAGS_GCC := -mindirect-branch=thunk-inline -mindirect-branch-register - RETPOLINE_CFLAGS_CLANG := -mretpoline-external-thunk - RETPOLINE_VDSO_CFLAGS_CLANG := -mretpoline - RETPOLINE_CFLAGS := $(call cc-option,$(RETPOLINE_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_CFLAGS_CLANG))) - RETPOLINE_VDSO_CFLAGS := $(call cc-option,$(RETPOLINE_VDSO_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_VDSO_CFLAGS_CLANG))) + ifdef CONFIG_CC_IS_GCC + RETPOLINE_CFLAGS := $(call cc-option,-mindirect-branch=thunk-extern -mindirect-branch-register) + RETPOLINE_VDSO_CFLAGS := $(call cc-option,-mindirect-branch=thunk-inline -mindirect-branch-register) + endif + ifdef CONFIG_CC_IS_CLANG + RETPOLINE_CFLAGS := -mretpoline-external-thunk + RETPOLINE_VDSO_CFLAGS := -mretpoline + endif export RETPOLINE_CFLAGS export RETPOLINE_VDSO_CFLAGS
@@@ -756,7 -740,7 +745,7 @@@ include/config/auto.conf endif # may-sync-config endif # need-config
- KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,) + KBUILD_CFLAGS += -fno-delete-null-pointer-checks KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,) KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation) KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow) @@@ -771,17 -755,19 +760,19 @@@ KBUILD_CFLAGS += -O endif
# Tell gcc to never replace conditional load with a non-conditional one + ifdef CONFIG_CC_IS_GCC + # gcc-10 renamed --param=allow-store-data-races=0 to + # -fno-allow-store-data-races. KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0) KBUILD_CFLAGS += $(call cc-option,-fno-allow-store-data-races) + endif
ifdef CONFIG_READABLE_ASM # Disable optimizations that make assembler listings hard to read. # reorder blocks reorders the control in the function # ipa clone creates specialized cloned functions # partial inlining inlines only parts of functions - KBUILD_CFLAGS += $(call cc-option,-fno-reorder-blocks,) \ - $(call cc-option,-fno-ipa-cp-clone,) \ - $(call cc-option,-fno-partial-inlining) + KBUILD_CFLAGS += -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining endif
ifneq ($(CONFIG_FRAME_WARN),0) @@@ -796,7 -782,7 +787,7 @@@ KBUILD_CFLAGS += $(stackp-flags-y
ifdef CONFIG_CC_IS_CLANG KBUILD_CPPFLAGS += -Qunused-arguments - KBUILD_CFLAGS += -Wno-format-invalid-specifier + # The kernel builds with '-std=gnu89' so use of GNU extensions is acceptable. KBUILD_CFLAGS += -Wno-gnu # CLANG uses a _MergedGlobals as optimization, but this breaks modpost, as the # source of a reference will be _MergedGlobals and not on of the whitelisted names. @@@ -813,8 -799,8 +804,8 @@@ endi # These warnings generated too much noise in a regular build. # Use make W=1 to enable them (see scripts/Makefile.extrawarn) KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable) - KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable) + ifdef CONFIG_FRAME_POINTER KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls else @@@ -846,11 -832,6 +837,11 @@@ endi # for the randomize_kstack_offset feature. Disable it for all compilers. KBUILD_CFLAGS += $(call cc-option, -fno-stack-clash-protection)
+# Clear used registers at func exit (to reduce data lifetime and ROP gadgets). +ifdef CONFIG_ZERO_CALL_USED_REGS +KBUILD_CFLAGS += -fzero-call-used-regs=used-gpr +endif + DEBUG_CFLAGS :=
# Workaround for GCC versions < 5.0 @@@ -867,7 -848,7 +858,7 @@@ els DEBUG_CFLAGS += -g endif
- ifneq ($(LLVM_IAS),1) + ifndef CONFIG_AS_IS_LLVM KBUILD_AFLAGS += -Wa,-gdwarf-2 endif
@@@ -878,8 -859,10 +869,10 @@@ DEBUG_CFLAGS += -gdwarf-$(dwarf-version endif
ifdef CONFIG_DEBUG_INFO_REDUCED - DEBUG_CFLAGS += $(call cc-option, -femit-struct-debug-baseonly) \ - $(call cc-option,-fno-var-tracking) + DEBUG_CFLAGS += -fno-var-tracking + ifdef CONFIG_CC_IS_GCC + DEBUG_CFLAGS += -femit-struct-debug-baseonly + endif endif
ifdef CONFIG_DEBUG_INFO_COMPRESSED @@@ -913,6 -896,7 +906,7 @@@ ifdef CONFIG_FTRACE_MCOUNT_USE_RECORDMC endif endif ifdef CONFIG_HAVE_FENTRY + # s390-linux-gnu-gcc did not support -mfentry until gcc-9. ifeq ($(call cc-option-yn, -mfentry),y) CC_FLAGS_FTRACE += -mfentry CC_FLAGS_USING += -DCC_USING_FENTRY @@@ -925,7 -909,7 +919,7 @@@ endi
# We trigger additional mismatches with less inlining ifdef CONFIG_DEBUG_SECTION_MISMATCH - KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once) + KBUILD_CFLAGS += -fno-inline-functions-called-once endif
ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION @@@ -1004,14 -988,16 +998,16 @@@ KBUILD_CFLAGS += $(call cc-disable-warn
# We'll want to enable this eventually, but it's not going away for 5.7 at least KBUILD_CFLAGS += $(call cc-disable-warning, zero-length-bounds) - KBUILD_CFLAGS += $(call cc-disable-warning, array-bounds) + KBUILD_CFLAGS += -Wno-array-bounds KBUILD_CFLAGS += $(call cc-disable-warning, stringop-overflow)
# Another good warning that we'll want to enable eventually KBUILD_CFLAGS += $(call cc-disable-warning, restrict)
# Enabled with W=2, disabled by default as noisy - KBUILD_CFLAGS += $(call cc-disable-warning, maybe-uninitialized) + ifdef CONFIG_CC_IS_GCC + KBUILD_CFLAGS += -Wno-maybe-uninitialized + endif
# disable invalid "can't wrap" optimizations for signed / pointers KBUILD_CFLAGS += -fno-strict-overflow @@@ -1020,7 -1006,9 +1016,9 @@@ KBUILD_CFLAGS += -fno-stack-check
# conserve stack if available - KBUILD_CFLAGS += $(call cc-option,-fconserve-stack) + ifdef CONFIG_CC_IS_GCC + KBUILD_CFLAGS += -fconserve-stack + endif
# Prohibit date/time macros, which would make the build non-deterministic KBUILD_CFLAGS += -Werror=date-time @@@ -1750,6 -1738,16 +1748,16 @@@ clean-dirs := $(KBUILD_EXTMOD clean: rm-files := $(KBUILD_EXTMOD)/Module.symvers $(KBUILD_EXTMOD)/modules.nsdeps \ $(KBUILD_EXTMOD)/compile_commands.json $(KBUILD_EXTMOD)/.thinlto-cache
+ PHONY += prepare + # now expand this into a simple variable to reduce the cost of shell evaluations + prepare: CC_VERSION_TEXT := $(CC_VERSION_TEXT) + prepare: + @if [ "$(CC_VERSION_TEXT)" != $(CONFIG_CC_VERSION_TEXT) ]; then \ + echo >&2 "warning: the compiler differs from the one used to build the kernel"; \ + echo >&2 " The kernel was built by: "$(CONFIG_CC_VERSION_TEXT); \ + echo >&2 " You are using: $(CC_VERSION_TEXT)"; \ + fi + PHONY += help help: @echo ' Building external modules.' @@@ -1761,7 -1759,7 +1769,7 @@@ @echo ''
# no-op for external module builds - PHONY += prepare modules_prepare + PHONY += modules_prepare
endif # KBUILD_EXTMOD
diff --combined arch/arm64/kernel/process.c index 2bd270cd603e,5f7ac9a0f9a3..19100fe8f7e4 --- a/arch/arm64/kernel/process.c +++ b/arch/arm64/kernel/process.c @@@ -6,9 -6,6 +6,6 @@@ * Copyright (C) 1996-2000 Russell King - Converted to ARM. * Copyright (C) 2012 ARM Ltd. */ - - #include <stdarg.h> - #include <linux/compat.h> #include <linux/efi.h> #include <linux/elf.h> @@@ -21,7 -18,6 +18,7 @@@ #include <linux/mman.h> #include <linux/mm.h> #include <linux/nospec.h> +#include <linux/sched.h> #include <linux/stddef.h> #include <linux/sysctl.h> #include <linux/unistd.h> @@@ -164,7 -160,7 +161,7 @@@ static void print_pstate(struct pt_reg u64 pstate = regs->pstate;
if (compat_user_mode(regs)) { - printk("pstate: %08llx (%c%c%c%c %c %s %s %c%c%c)\n", + printk("pstate: %08llx (%c%c%c%c %c %s %s %c%c%c %cDIT %cSSBS)\n", pstate, pstate & PSR_AA32_N_BIT ? 'N' : 'n', pstate & PSR_AA32_Z_BIT ? 'Z' : 'z', @@@ -175,14 -171,12 +172,14 @@@ pstate & PSR_AA32_E_BIT ? "BE" : "LE", pstate & PSR_AA32_A_BIT ? 'A' : 'a', pstate & PSR_AA32_I_BIT ? 'I' : 'i', - pstate & PSR_AA32_F_BIT ? 'F' : 'f'); + pstate & PSR_AA32_F_BIT ? 'F' : 'f', + pstate & PSR_AA32_DIT_BIT ? '+' : '-', + pstate & PSR_AA32_SSBS_BIT ? '+' : '-'); } else { const char *btype_str = btypes[(pstate & PSR_BTYPE_MASK) >> PSR_BTYPE_SHIFT];
- printk("pstate: %08llx (%c%c%c%c %c%c%c%c %cPAN %cUAO %cTCO BTYPE=%s)\n", + printk("pstate: %08llx (%c%c%c%c %c%c%c%c %cPAN %cUAO %cTCO %cDIT %cSSBS BTYPE=%s)\n", pstate, pstate & PSR_N_BIT ? 'N' : 'n', pstate & PSR_Z_BIT ? 'Z' : 'z', @@@ -195,8 -189,6 +192,8 @@@ pstate & PSR_PAN_BIT ? '+' : '-', pstate & PSR_UAO_BIT ? '+' : '-', pstate & PSR_TCO_BIT ? '+' : '-', + pstate & PSR_DIT_BIT ? '+' : '-', + pstate & PSR_SSBS_BIT ? '+' : '-', btype_str); } } @@@ -473,13 -465,16 +470,13 @@@ static void erratum_1418040_thread_swit write_sysreg(val, cntkctl_el1); }
-static void compat_thread_switch(struct task_struct *next) -{ - if (!is_compat_thread(task_thread_info(next))) - return; - - if (static_branch_unlikely(&arm64_mismatched_32bit_el0)) - set_tsk_thread_flag(next, TIF_NOTIFY_RESUME); -} - -static void update_sctlr_el1(u64 sctlr) +/* + * __switch_to() checks current->thread.sctlr_user as an optimisation. Therefore + * this function must be called with preemption disabled and the update to + * sctlr_user must be made in the same preemption disabled block so that + * __switch_to() does not see the variable update before the SCTLR_EL1 one. + */ +void update_sctlr_el1(u64 sctlr) { /* * EnIA must not be cleared while in the kernel as this is necessary for @@@ -491,6 -486,19 +488,6 @@@ isb(); }
-void set_task_sctlr_el1(u64 sctlr) -{ - /* - * __switch_to() checks current->thread.sctlr as an - * optimisation. Disable preemption so that it does not see - * the variable update before the SCTLR_EL1 one. - */ - preempt_disable(); - current->thread.sctlr_user = sctlr; - update_sctlr_el1(sctlr); - preempt_enable(); -} - /* * Thread switching. */ @@@ -507,6 -515,7 +504,6 @@@ __notrace_funcgraph struct task_struct ssbs_thread_switch(next); erratum_1418040_thread_switch(prev, next); ptrauth_thread_switch_user(next); - compat_thread_switch(next);
/* * Complete any pending TLB or cache maintenance on this CPU in case @@@ -567,28 -576,6 +564,28 @@@ unsigned long arch_align_stack(unsigne return sp & ~0xf; }
+#ifdef CONFIG_COMPAT +int compat_elf_check_arch(const struct elf32_hdr *hdr) +{ + if (!system_supports_32bit_el0()) + return false; + + if ((hdr)->e_machine != EM_ARM) + return false; + + if (!((hdr)->e_flags & EF_ARM_EABI_MASK)) + return false; + + /* + * Prevent execve() of a 32-bit program from a deadline task + * if the restricted affinity mask would be inadmissible on an + * asymmetric system. + */ + return !static_branch_unlikely(&arm64_mismatched_32bit_el0) || + !dl_task_check_affinity(current, system_32bit_el0_cpumask()); +} +#endif + /* * Called from setup_new_exec() after (COMPAT_)SET_PERSONALITY. */ @@@ -598,20 -585,8 +595,20 @@@ void arch_setup_new_exec(void
if (is_compat_task()) { mmflags = MMCF_AARCH32; + + /* + * Restrict the CPU affinity mask for a 32-bit task so that + * it contains only 32-bit-capable CPUs. + * + * From the perspective of the task, this looks similar to + * what would happen if the 64-bit-only CPUs were hot-unplugged + * at the point of execve(), although we try a bit harder to + * honour the cpuset hierarchy. + */ if (static_branch_unlikely(&arm64_mismatched_32bit_el0)) - set_tsk_thread_flag(current, TIF_NOTIFY_RESUME); + force_compatible_cpus_allowed_ptr(current); + } else if (static_branch_unlikely(&arm64_mismatched_32bit_el0)) { + relax_compatible_cpus_allowed_ptr(current); }
current->mm->context.flags = mmflags; diff --combined arch/mips/Makefile index 1fb97579b6b4,5fd26d514851..ea3cd080a1c7 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile @@@ -254,7 -254,7 +254,7 @@@ endi # # Board-dependent options and extra files # - include arch/mips/Kbuild.platforms + include $(srctree)/arch/mips/Kbuild.platforms
ifdef CONFIG_PHYSICAL_START load-y = $(CONFIG_PHYSICAL_START) @@@ -560,9 -560,6 +560,9 @@@ sead3micro_defconfig-y := micro32r2el_ legacy_defconfigs += xilfpga_defconfig xilfpga_defconfig-y := 32r2el_defconfig BOARDS=xilfpga
+legacy_defconfigs += pistachio_defconfig +pistachio_defconfig-y := 32r2el_defconfig BOARDS=marduk + .PHONY: $(legacy_defconfigs) $(legacy_defconfigs): $(Q)$(MAKE) -f $(srctree)/Makefile $($@-y) diff --combined arch/powerpc/kernel/prom.c index 44b2cdc0aae3,a1e7ba0fad09..2e67588f6f6e --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c @@@ -11,7 -11,6 +11,6 @@@
#undef DEBUG
- #include <stdarg.h> #include <linux/kernel.h> #include <linux/string.h> #include <linux/init.h> @@@ -640,9 -639,7 +639,9 @@@ static void __init early_reserve_mem(vo } #endif /* CONFIG_BLK_DEV_INITRD */
-#ifdef CONFIG_PPC32 + if (!IS_ENABLED(CONFIG_PPC32)) + return; + /* * Handle the case where we might be booting from an old kexec * image that setup the mem_rsvmap as pairs of 32-bit values @@@ -663,6 -660,7 +662,6 @@@ } return; } -#endif }
#ifdef CONFIG_PPC_TRANSACTIONAL_MEM diff --combined arch/powerpc/kernel/prom_init.c index 95a42d49e291,10664633f7e3..18b04b08b983 --- a/arch/powerpc/kernel/prom_init.c +++ b/arch/powerpc/kernel/prom_init.c @@@ -14,7 -14,7 +14,7 @@@ /* we cannot use FORTIFY as it brings in new symbols */ #define __NO_FORTIFY
- #include <stdarg.h> + #include <linux/stdarg.h> #include <linux/kernel.h> #include <linux/string.h> #include <linux/init.h> @@@ -1096,8 -1096,7 +1096,8 @@@ static const struct ibm_arch_vec ibm_ar #else 0, #endif - .associativity = OV5_FEAT(OV5_TYPE1_AFFINITY) | OV5_FEAT(OV5_PRRN), + .associativity = OV5_FEAT(OV5_FORM1_AFFINITY) | OV5_FEAT(OV5_PRRN) | + OV5_FEAT(OV5_FORM2_AFFINITY), .bin_opts = OV5_FEAT(OV5_RESIZE_HPT) | OV5_FEAT(OV5_HP_EVT), .micro_checkpoint = 0, .reserved0 = 0, diff --combined arch/s390/Makefile index 17dc4f1ac4fa,f5c399851d70..a3cf33ad009f --- a/arch/s390/Makefile +++ b/arch/s390/Makefile @@@ -70,7 -70,7 +70,7 @@@ cflags-y += -Wa,-I$(srctree)/arch/$(ARC # cflags-$(CONFIG_FRAME_POINTER) += -fno-optimize-sibling-calls
- ifeq ($(call cc-option-yn,-mpacked-stack -mbackchain -msoft-float),y) + ifneq ($(call cc-option,-mpacked-stack -mbackchain -msoft-float),) cflags-$(CONFIG_PACK_STACK) += -mpacked-stack -D__PACK_STACK aflags-$(CONFIG_PACK_STACK) += -D__PACK_STACK endif @@@ -78,22 -78,22 +78,22 @@@ KBUILD_AFLAGS_DECOMPRESSOR += $(aflags-y) KBUILD_CFLAGS_DECOMPRESSOR += $(cflags-y)
- ifeq ($(call cc-option-yn,-mstack-size=8192 -mstack-guard=128),y) + ifneq ($(call cc-option,-mstack-size=8192 -mstack-guard=128),) cflags-$(CONFIG_CHECK_STACK) += -mstack-size=$(STACK_SIZE) - ifneq ($(call cc-option-yn,-mstack-size=8192),y) + ifeq ($(call cc-option,-mstack-size=8192),) cflags-$(CONFIG_CHECK_STACK) += -mstack-guard=$(CONFIG_STACK_GUARD) endif endif
ifdef CONFIG_WARN_DYNAMIC_STACK - ifeq ($(call cc-option-yn,-mwarn-dynamicstack),y) + ifneq ($(call cc-option,-mwarn-dynamicstack),) KBUILD_CFLAGS += -mwarn-dynamicstack KBUILD_CFLAGS_DECOMPRESSOR += -mwarn-dynamicstack endif endif
ifdef CONFIG_EXPOLINE - ifeq ($(call cc-option-yn,$(CC_FLAGS_MARCH) -mindirect-branch=thunk),y) + ifneq ($(call cc-option,$(CC_FLAGS_MARCH) -mindirect-branch=thunk),) CC_FLAGS_EXPOLINE := -mindirect-branch=thunk CC_FLAGS_EXPOLINE += -mfunction-return=thunk CC_FLAGS_EXPOLINE += -mindirect-branch-table @@@ -104,10 -104,10 +104,10 @@@ endif
ifdef CONFIG_FUNCTION_TRACER - ifeq ($(call cc-option-yn,-mfentry -mnop-mcount),n) + ifeq ($(call cc-option,-mfentry -mnop-mcount),) # make use of hotpatch feature if the compiler supports it cc_hotpatch := -mhotpatch=0,3 - ifeq ($(call cc-option-yn,$(cc_hotpatch)),y) + ifneq ($(call cc-option,$(cc_hotpatch)),) CC_FLAGS_FTRACE := $(cc_hotpatch) KBUILD_AFLAGS += -DCC_USING_HOTPATCH KBUILD_CFLAGS += -DCC_USING_HOTPATCH @@@ -142,8 -142,7 +142,8 @@@ all: bzImag KBUILD_IMAGE := $(boot)/bzImage
install: - $(Q)$(MAKE) $(build)=$(boot) $@ + sh -x $(srctree)/$(boot)/install.sh $(KERNELRELEASE) $(KBUILD_IMAGE) \ + System.map "$(INSTALL_PATH)"
bzImage: vmlinux $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ diff --combined arch/s390/boot/pgm_check_info.c index 209f6ae5a197,b7d8dd88bbf2..75bcbfa27941 --- a/arch/s390/boot/pgm_check_info.c +++ b/arch/s390/boot/pgm_check_info.c @@@ -1,5 -1,6 +1,6 @@@ // SPDX-License-Identifier: GPL-2.0 #include <linux/kernel.h> + #include <linux/stdarg.h> #include <linux/string.h> #include <linux/ctype.h> #include <asm/stacktrace.h> @@@ -8,7 -9,6 +9,6 @@@ #include <asm/setup.h> #include <asm/sclp.h> #include <asm/uv.h> - #include <stdarg.h> #include "boot.h"
const char hex_asc[] = "0123456789abcdef"; @@@ -29,6 -29,7 +29,6 @@@ static char *symstart(char *p return p + 1; }
-extern char _decompressor_syms_start[], _decompressor_syms_end[]; static noinline char *findsym(unsigned long ip, unsigned short *off, unsigned short *len) { /* symbol entries are in a form "10000 c4 startup\0" */ @@@ -125,8 -126,8 +125,8 @@@ out
static noinline void print_stacktrace(void) { - struct stack_info boot_stack = { STACK_TYPE_TASK, BOOT_STACK_OFFSET, - BOOT_STACK_OFFSET + BOOT_STACK_SIZE }; + struct stack_info boot_stack = { STACK_TYPE_TASK, (unsigned long)_stack_start, + (unsigned long)_stack_end }; unsigned long sp = S390_lowcore.gpregs_save_area[15]; bool first = true;
diff --combined arch/sparc/kernel/process_64.c index 547b06b49ce3,0cabcdfb23fd..093849bfda50 --- a/arch/sparc/kernel/process_64.c +++ b/arch/sparc/kernel/process_64.c @@@ -9,9 -9,6 +9,6 @@@ /* * This file handles the architecture-dependent parts of process handling.. */ - - #include <stdarg.h> - #include <linux/errno.h> #include <linux/export.h> #include <linux/sched.h> @@@ -518,7 -515,7 +515,7 @@@ void synchronize_user_stack(void
static void stack_unaligned(unsigned long sp) { - force_sig_fault(SIGBUS, BUS_ADRALN, (void __user *) sp, 0); + force_sig_fault(SIGBUS, BUS_ADRALN, (void __user *) sp); }
static const char uwfault32[] = KERN_INFO \ diff --combined arch/x86/Makefile index d82d01490dd3,0fa7dc73b5d8..7488cfbbd2f6 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@@ -31,8 -31,8 +31,8 @@@ REALMODE_CFLAGS := -m16 -g -Os -DDISABL
REALMODE_CFLAGS += -ffreestanding REALMODE_CFLAGS += -fno-stack-protector -REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), -Wno-address-of-packed-member) -REALMODE_CFLAGS += $(call __cc-option, $(CC), $(REALMODE_CFLAGS), $(cc_stack_align4)) +REALMODE_CFLAGS += -Wno-address-of-packed-member +REALMODE_CFLAGS += $(cc_stack_align4) REALMODE_CFLAGS += $(CLANG_FLAGS) export REALMODE_CFLAGS
@@@ -48,7 -48,8 +48,7 @@@ export BIT # # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53383 # -KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -KBUILD_CFLAGS += $(call cc-option,-mno-avx,) +KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx
# Intel CET isn't enabled in the kernel KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none) @@@ -58,8 -59,9 +58,8 @@@ ifeq ($(CONFIG_X86_32),y UTS_MACHINE := i386 CHECKFLAGS += -D__i386__
- biarch := $(call cc-option,-m32) - KBUILD_AFLAGS += $(biarch) - KBUILD_CFLAGS += $(biarch) + KBUILD_AFLAGS += -m32 + KBUILD_CFLAGS += -m32
KBUILD_CFLAGS += -msoft-float -mregparm=3 -freg-struct-return
@@@ -70,10 -72,10 +70,10 @@@ # Align the stack to the register width instead of using the default # alignment of 16 bytes. This reduces stack usage and the number of # alignment instructions. - KBUILD_CFLAGS += $(call cc-option,$(cc_stack_align4)) + KBUILD_CFLAGS += $(cc_stack_align4)
# CPU-specific tuning. Anything which can be shared with UML should go here. - include arch/x86/Makefile_32.cpu + include $(srctree)/arch/x86/Makefile_32.cpu KBUILD_CFLAGS += $(cflags-y)
# temporary until string.h is fixed @@@ -91,6 -93,7 +91,6 @@@ els UTS_MACHINE := x86_64 CHECKFLAGS += -D__x86_64__
- biarch := -m64 KBUILD_AFLAGS += -m64 KBUILD_CFLAGS += -m64
@@@ -101,7 -104,7 +101,7 @@@ KBUILD_CFLAGS += $(call cc-option,-falign-loops=1)
# Don't autogenerate traditional x87 instructions - KBUILD_CFLAGS += $(call cc-option,-mno-80387) + KBUILD_CFLAGS += -mno-80387 KBUILD_CFLAGS += $(call cc-option,-mno-fp-ret-in-387)
# By default gcc and clang use a stack alignment of 16 bytes for x86. @@@ -111,17 -114,20 +111,17 @@@ # default alignment which keep the stack *mis*aligned. # Furthermore an alignment to the register width reduces stack usage # and the number of alignment instructions. - KBUILD_CFLAGS += $(call cc-option,$(cc_stack_align8)) + KBUILD_CFLAGS += $(cc_stack_align8)
# Use -mskip-rax-setup if supported. KBUILD_CFLAGS += $(call cc-option,-mskip-rax-setup)
# FIXME - should be integrated in Makefile.cpu (Makefile_32.cpu) - cflags-$(CONFIG_MK8) += $(call cc-option,-march=k8) - cflags-$(CONFIG_MPSC) += $(call cc-option,-march=nocona) - - cflags-$(CONFIG_MCORE2) += \ - $(call cc-option,-march=core2,$(call cc-option,-mtune=generic)) - cflags-$(CONFIG_MATOM) += $(call cc-option,-march=atom) \ - $(call cc-option,-mtune=atom,$(call cc-option,-mtune=generic)) - cflags-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=generic) + cflags-$(CONFIG_MK8) += -march=k8 + cflags-$(CONFIG_MPSC) += -march=nocona + cflags-$(CONFIG_MCORE2) += -march=core2 + cflags-$(CONFIG_MATOM) += -march=atom + cflags-$(CONFIG_GENERIC_CPU) += -mtune=generic KBUILD_CFLAGS += $(cflags-y)
KBUILD_CFLAGS += -mno-red-zone @@@ -152,6 -158,18 +152,6 @@@ export CONFIG_X86_X32_AB ifdef CONFIG_FUNCTION_GRAPH_TRACER ifndef CONFIG_HAVE_FENTRY ACCUMULATE_OUTGOING_ARGS := 1 - else - ifeq ($(call cc-option-yn, -mfentry), n) - ACCUMULATE_OUTGOING_ARGS := 1 - - # GCC ignores '-maccumulate-outgoing-args' when used with '-Os'. - # If '-Os' is enabled, disable it and print a warning. - ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE - undefine CONFIG_CC_OPTIMIZE_FOR_SIZE - $(warning Disabling CONFIG_CC_OPTIMIZE_FOR_SIZE. Your compiler does not have -mfentry so you cannot optimize for size with CONFIG_FUNCTION_GRAPH_TRACER.) - endif - - endif endif endif
@@@ -175,7 -193,7 +175,7 @@@ ifdef CONFIG_RETPOLIN # only been fixed starting from gcc stable version 8.4.0 and # onwards, but not for older ones. See gcc bug #86952. ifndef CONFIG_CC_IS_CLANG - KBUILD_CFLAGS += $(call cc-option,-fno-jump-tables) + KBUILD_CFLAGS += -fno-jump-tables endif endif
@@@ -257,10 -275,9 +257,10 @@@ endi $(BOOT_TARGETS): vmlinux $(Q)$(MAKE) $(build)=$(boot) $@
-PHONY += install bzlilo -install bzlilo: - $(Q)$(MAKE) $(build)=$(boot) $@ +PHONY += install +install: + $(CONFIG_SHELL) $(srctree)/$(boot)/install.sh $(KERNELRELEASE) \ + $(KBUILD_IMAGE) System.map "$(INSTALL_PATH)"
PHONY += vdso_install vdso_install: diff --combined drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h index 7b684e7f60df,68fd451aca23..7efe9ba8706e --- a/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h +++ b/drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h @@@ -23,8 -23,8 +23,8 @@@ * */
-#ifndef _DMUB_CMD_H_ -#define _DMUB_CMD_H_ +#ifndef DMUB_CMD_H +#define DMUB_CMD_H
#if defined(_TEST_HARNESS) || defined(FPGA_USB4) #include "dmub_fw_types.h" @@@ -39,7 -39,6 +39,6 @@@ #include <linux/types.h> #include <linux/string.h> #include <linux/delay.h> - #include <stdarg.h>
#include "atomfirmware.h"
@@@ -47,10 -46,10 +46,10 @@@
/* Firmware versioning. */ #ifdef DMUB_EXPOSE_VERSION -#define DMUB_FW_VERSION_GIT_HASH 0xf3da2b656 +#define DMUB_FW_VERSION_GIT_HASH 0x7383caadc #define DMUB_FW_VERSION_MAJOR 0 #define DMUB_FW_VERSION_MINOR 0 -#define DMUB_FW_VERSION_REVISION 71 +#define DMUB_FW_VERSION_REVISION 79 #define DMUB_FW_VERSION_TEST 0 #define DMUB_FW_VERSION_VBIOS 0 #define DMUB_FW_VERSION_HOTFIX 0 @@@ -322,10 -321,6 +321,10 @@@ union dmub_fw_boot_status uint32_t mailbox_rdy : 1; /**< 1 if mailbox ready */ uint32_t optimized_init_done : 1; /**< 1 if optimized init done */ uint32_t restore_required : 1; /**< 1 if driver should call restore */ + uint32_t defer_load : 1; /**< 1 if VBIOS data is deferred programmed */ + uint32_t reserved : 1; + uint32_t detection_required: 1; /**< if detection need to be triggered by driver */ + } bits; /**< status bits */ uint32_t all; /**< 32-bit access to status bits */ }; @@@ -338,8 -333,6 +337,8 @@@ enum dmub_fw_boot_status_bit DMUB_FW_BOOT_STATUS_BIT_MAILBOX_READY = (1 << 1), /**< 1 if mailbox ready */ DMUB_FW_BOOT_STATUS_BIT_OPTIMIZED_INIT_DONE = (1 << 2), /**< 1 if init done */ DMUB_FW_BOOT_STATUS_BIT_RESTORE_REQUIRED = (1 << 3), /**< 1 if driver should call restore */ + DMUB_FW_BOOT_STATUS_BIT_DEFERRED_LOADED = (1 << 4), /**< 1 if VBIOS data is deferred programmed */ + DMUB_FW_BOOT_STATUS_BIT_DETECTION_REQUIRED = (1 << 6), /**< 1 if detection need to be triggered by driver*/ };
/* Register bit definition for SCRATCH5 */ @@@ -358,7 -351,7 +357,7 @@@ enum dmub_lvtma_status_bit };
/** - * union dmub_fw_boot_options - Boot option definitions for SCRATCH15 + * union dmub_fw_boot_options - Boot option definitions for SCRATCH14 */ union dmub_fw_boot_options { struct { @@@ -369,10 -362,7 +368,10 @@@ uint32_t disable_clk_gate: 1; /**< 1 if clock gating should be disabled */ uint32_t skip_phy_init_panel_sequence: 1; /**< 1 to skip panel init seq */ uint32_t z10_disable: 1; /**< 1 to disable z10 */ - uint32_t reserved : 25; /**< reserved */ + uint32_t reserved2: 1; /**< reserved for an unreleased feature */ + uint32_t reserved_unreleased1: 1; /**< reserved for an unreleased feature */ + uint32_t invalid_vbios_data: 1; /**< 1 if VBIOS data table is invalid */ + uint32_t reserved : 23; /**< reserved */ } bits; /**< boot bits */ uint32_t all; /**< 32-bit access to bits */ }; @@@ -494,11 -484,6 +493,11 @@@ enum dmub_gpint_command * RETURN: PSR residency in milli-percent. */ DMUB_GPINT__PSR_RESIDENCY = 9, + + /** + * DESC: Notifies DMCUB detection is done so detection required can be cleared. + */ + DMUB_GPINT__NOTIFY_DETECTION_DONE = 12, };
/** @@@ -870,11 -855,6 +869,11 @@@ enum dmub_cmd_idle_opt_type * DCN hardware restore. */ DMUB_CMD__IDLE_OPT_DCN_RESTORE = 0, + + /** + * DCN hardware save. + */ + DMUB_CMD__IDLE_OPT_DCN_SAVE_INIT = 1 };
/** @@@ -1425,10 -1405,6 +1424,10 @@@ struct dmub_cmd_psr_copy_settings_data * Currently the support is only for 0 or 1 */ uint8_t panel_inst; + /** + * Explicit padding to 4 byte boundary. + */ + uint8_t pad3[4]; };
/** @@@ -1453,7 -1429,7 +1452,7 @@@ struct dmub_cmd_psr_set_level_data * 16-bit value dicated by driver that will enable/disable different functionality. */ uint16_t psr_level; - /** + /** * PSR control version. */ uint8_t cmd_version; @@@ -2485,14 -2461,16 +2484,14 @@@ static inline bool dmub_rb_full(struct static inline bool dmub_rb_push_front(struct dmub_rb *rb, const union dmub_rb_cmd *cmd) { - uint64_t volatile *dst = (uint64_t volatile *)(rb->base_address) + rb->wrpt / sizeof(uint64_t); - const uint64_t *src = (const uint64_t *)cmd; - uint8_t i; + uint8_t *dst = (uint8_t *)(rb->base_address) + rb->wrpt; + const uint8_t *src = (const uint8_t *)cmd;
if (dmub_rb_full(rb)) return false;
// copying data - for (i = 0; i < DMUB_RB_CMD_SIZE / sizeof(uint64_t); i++) - *dst++ = *src++; + dmub_memcpy(dst, src, DMUB_RB_CMD_SIZE);
rb->wrpt += DMUB_RB_CMD_SIZE;
@@@ -2514,7 -2492,7 +2513,7 @@@ static inline bool dmub_rb_out_push_fro const union dmub_rb_out_cmd *cmd) { uint8_t *dst = (uint8_t *)(rb->base_address) + rb->wrpt; - const uint8_t *src = (uint8_t *)cmd; + const uint8_t *src = (const uint8_t *)cmd;
if (dmub_rb_full(rb)) return false; @@@ -2599,16 -2577,18 +2598,16 @@@ static inline bool dmub_rb_peek_offset( * @return false otherwise */ static inline bool dmub_rb_out_front(struct dmub_rb *rb, - union dmub_rb_out_cmd *cmd) + union dmub_rb_out_cmd *cmd) { - const uint64_t volatile *src = (const uint64_t volatile *)(rb->base_address) + rb->rptr / sizeof(uint64_t); - uint64_t *dst = (uint64_t *)cmd; - uint8_t i; + const uint8_t *src = (const uint8_t *)(rb->base_address) + rb->rptr; + uint8_t *dst = (uint8_t *)cmd;
if (dmub_rb_empty(rb)) return false;
// copying data - for (i = 0; i < DMUB_RB_CMD_SIZE / sizeof(uint64_t); i++) - *dst++ = *src++; + dmub_memcpy(dst, src, DMUB_RB_CMD_SIZE);
return true; } @@@ -2643,14 -2623,15 +2642,14 @@@ static inline bool dmub_rb_pop_front(st */ static inline void dmub_rb_flush_pending(const struct dmub_rb *rb) { + uint8_t buf[DMUB_RB_CMD_SIZE]; uint32_t rptr = rb->rptr; uint32_t wptr = rb->wrpt;
while (rptr != wptr) { - uint64_t volatile *data = (uint64_t volatile *)rb->base_address + rptr / sizeof(uint64_t); - uint8_t i; + const uint8_t *data = (const uint8_t *)rb->base_address + rptr;
- for (i = 0; i < DMUB_RB_CMD_SIZE / sizeof(uint64_t); i++) - *data++; + dmub_memcpy(buf, data, DMUB_RB_CMD_SIZE);
rptr += DMUB_RB_CMD_SIZE; if (rptr >= rb->capacity) diff --combined drivers/gpu/drm/msm/disp/msm_disp_snapshot.h index c22b07f68670,0f9a5364cd86..4c619307612c --- a/drivers/gpu/drm/msm/disp/msm_disp_snapshot.h +++ b/drivers/gpu/drm/msm/disp/msm_disp_snapshot.h @@@ -16,6 -16,7 +16,6 @@@ #include <linux/delay.h> #include <linux/spinlock.h> #include <linux/ktime.h> -#include <linux/debugfs.h> #include <linux/uaccess.h> #include <linux/dma-buf.h> #include <linux/slab.h> @@@ -24,7 -25,6 +24,6 @@@ #include <linux/pm_runtime.h> #include <linux/kthread.h> #include <linux/devcoredump.h> - #include <stdarg.h> #include "msm_kms.h"
#define MSM_DISP_SNAPSHOT_MAX_BLKS 10 diff --combined include/linux/filter.h index 7d248941ecea,c1711c9f9439..4a93c12543ee --- a/include/linux/filter.h +++ b/include/linux/filter.h @@@ -5,8 -5,6 +5,6 @@@ #ifndef __LINUX_FILTER_H__ #define __LINUX_FILTER_H__
- #include <stdarg.h> - #include <linux/atomic.h> #include <linux/refcount.h> #include <linux/compat.h> @@@ -574,8 -572,7 +572,8 @@@ struct bpf_prog kprobe_override:1, /* Do we override a kprobe? */ has_callchain_buf:1, /* callchain buffer allocated? */ enforce_expected_attach_type:1, /* Enforce expected_attach_type checking at attach time */ - call_get_stack:1; /* Do we call bpf_get_stack() or bpf_get_stackid() */ + call_get_stack:1, /* Do we call bpf_get_stack() or bpf_get_stackid() */ + call_get_func_ip:1; /* Do we call get_func_ip() */ enum bpf_prog_type type; /* Type of BPF program */ enum bpf_attach_type expected_attach_type; /* For some prog types */ u32 len; /* Number of filter blocks */ @@@ -600,38 -597,25 +598,38 @@@ struct sk_filter
DECLARE_STATIC_KEY_FALSE(bpf_stats_enabled_key);
-#define __BPF_PROG_RUN(prog, ctx, dfunc) ({ \ - u32 __ret; \ - cant_migrate(); \ - if (static_branch_unlikely(&bpf_stats_enabled_key)) { \ - struct bpf_prog_stats *__stats; \ - u64 __start = sched_clock(); \ - __ret = dfunc(ctx, (prog)->insnsi, (prog)->bpf_func); \ - __stats = this_cpu_ptr(prog->stats); \ - u64_stats_update_begin(&__stats->syncp); \ - __stats->cnt++; \ - __stats->nsecs += sched_clock() - __start; \ - u64_stats_update_end(&__stats->syncp); \ - } else { \ - __ret = dfunc(ctx, (prog)->insnsi, (prog)->bpf_func); \ - } \ - __ret; }) - -#define BPF_PROG_RUN(prog, ctx) \ - __BPF_PROG_RUN(prog, ctx, bpf_dispatcher_nop_func) +typedef unsigned int (*bpf_dispatcher_fn)(const void *ctx, + const struct bpf_insn *insnsi, + unsigned int (*bpf_func)(const void *, + const struct bpf_insn *)); + +static __always_inline u32 __bpf_prog_run(const struct bpf_prog *prog, + const void *ctx, + bpf_dispatcher_fn dfunc) +{ + u32 ret; + + cant_migrate(); + if (static_branch_unlikely(&bpf_stats_enabled_key)) { + struct bpf_prog_stats *stats; + u64 start = sched_clock(); + + ret = dfunc(ctx, prog->insnsi, prog->bpf_func); + stats = this_cpu_ptr(prog->stats); + u64_stats_update_begin(&stats->syncp); + stats->cnt++; + stats->nsecs += sched_clock() - start; + u64_stats_update_end(&stats->syncp); + } else { + ret = dfunc(ctx, prog->insnsi, prog->bpf_func); + } + return ret; +} + +static __always_inline u32 bpf_prog_run(const struct bpf_prog *prog, const void *ctx) +{ + return __bpf_prog_run(prog, ctx, bpf_dispatcher_nop_func); +}
/* * Use in preemptible and therefore migratable context to make sure that @@@ -650,7 -634,7 +648,7 @@@ static inline u32 bpf_prog_run_pin_on_c u32 ret;
migrate_disable(); - ret = __BPF_PROG_RUN(prog, ctx, bpf_dispatcher_nop_func); + ret = bpf_prog_run(prog, ctx); migrate_enable(); return ret; } @@@ -723,7 -707,7 +721,7 @@@ static inline void bpf_restore_data_end cb->data_end = saved_data_end; }
-static inline u8 *bpf_skb_cb(struct sk_buff *skb) +static inline u8 *bpf_skb_cb(const struct sk_buff *skb) { /* eBPF programs may read/write skb->cb[] area to transfer meta * data between tail calls. Since this also needs to work with @@@ -744,9 -728,8 +742,9 @@@
/* Must be invoked with migration disabled */ static inline u32 __bpf_prog_run_save_cb(const struct bpf_prog *prog, - struct sk_buff *skb) + const void *ctx) { + const struct sk_buff *skb = ctx; u8 *cb_data = bpf_skb_cb(skb); u8 cb_saved[BPF_SKB_CB_LEN]; u32 res; @@@ -756,7 -739,7 +754,7 @@@ memset(cb_data, 0, sizeof(cb_saved)); }
- res = BPF_PROG_RUN(prog, skb); + res = bpf_prog_run(prog, skb);
if (unlikely(prog->cb_access)) memcpy(cb_data, cb_saved, sizeof(cb_saved)); @@@ -790,10 -773,6 +788,10 @@@ static inline u32 bpf_prog_run_clear_cb
DECLARE_BPF_DISPATCHER(xdp)
+DECLARE_STATIC_KEY_FALSE(bpf_master_redirect_enabled_key); + +u32 xdp_master_redirect(struct xdp_buff *xdp); + static __always_inline u32 bpf_prog_run_xdp(const struct bpf_prog *prog, struct xdp_buff *xdp) { @@@ -801,14 -780,7 +799,14 @@@ * under local_bh_disable(), which provides the needed RCU protection * for accessing map entries. */ - return __BPF_PROG_RUN(prog, xdp, BPF_DISPATCHER_FUNC(xdp)); + u32 act = __bpf_prog_run(prog, xdp, BPF_DISPATCHER_FUNC(xdp)); + + if (static_branch_unlikely(&bpf_master_redirect_enabled_key)) { + if (act == XDP_TX && netif_is_bond_slave(xdp->rxq->dev)) + act = xdp_master_redirect(xdp); + } + + return act; }
void bpf_prog_change_xdp(struct bpf_prog *prev_prog, struct bpf_prog *prog); @@@ -1454,7 -1426,7 +1452,7 @@@ static inline bool bpf_sk_lookup_run_v4 }; u32 act;
- act = BPF_PROG_SK_LOOKUP_RUN_ARRAY(run_array, ctx, BPF_PROG_RUN); + act = BPF_PROG_SK_LOOKUP_RUN_ARRAY(run_array, ctx, bpf_prog_run); if (act == SK_PASS) { selected_sk = ctx.selected_sk; no_reuseport = ctx.no_reuseport; @@@ -1492,7 -1464,7 +1490,7 @@@ static inline bool bpf_sk_lookup_run_v6 }; u32 act;
- act = BPF_PROG_SK_LOOKUP_RUN_ARRAY(run_array, ctx, BPF_PROG_RUN); + act = BPF_PROG_SK_LOOKUP_RUN_ARRAY(run_array, ctx, bpf_prog_run); if (act == SK_PASS) { selected_sk = ctx.selected_sk; no_reuseport = ctx.no_reuseport; diff --combined include/linux/printk.h index 259af4f97f50,9f3f29ea348e..85b656f82d75 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@@ -2,7 -2,7 +2,7 @@@ #ifndef __KERNEL_PRINTK__ #define __KERNEL_PRINTK__
- #include <stdarg.h> + #include <linux/stdarg.h> #include <linux/init.h> #include <linux/kern_levels.h> #include <linux/linkage.h> @@@ -70,7 -70,16 +70,7 @@@ extern int console_printk[] #define minimum_console_loglevel (console_printk[2]) #define default_console_loglevel (console_printk[3])
-static inline void console_silent(void) -{ - console_loglevel = CONSOLE_LOGLEVEL_SILENT; -} - -static inline void console_verbose(void) -{ - if (console_loglevel) - console_loglevel = CONSOLE_LOGLEVEL_MOTORMOUTH; -} +extern void console_verbose(void);
/* strlen("ratelimit") + 1 */ #define DEVKMSG_STR_MAX_SIZE 10 @@@ -141,6 -150,18 +141,6 @@@ static inline __printf(1, 2) __col void early_printk(const char *s, ...) { } #endif
-#ifdef CONFIG_PRINTK_NMI -extern void printk_nmi_enter(void); -extern void printk_nmi_exit(void); -extern void printk_nmi_direct_enter(void); -extern void printk_nmi_direct_exit(void); -#else -static inline void printk_nmi_enter(void) { } -static inline void printk_nmi_exit(void) { } -static inline void printk_nmi_direct_enter(void) { } -static inline void printk_nmi_direct_exit(void) { } -#endif /* PRINTK_NMI */ - struct dev_printk_info;
#ifdef CONFIG_PRINTK @@@ -153,22 -174,12 +153,22 @@@ asmlinkage __printf(1, 0 int vprintk(const char *fmt, va_list args);
asmlinkage __printf(1, 2) __cold -int printk(const char *fmt, ...); +int _printk(const char *fmt, ...);
/* * Special printk facility for scheduler/timekeeping use only, _DO_NOT_USE_ ! */ -__printf(1, 2) __cold int printk_deferred(const char *fmt, ...); +__printf(1, 2) __cold int _printk_deferred(const char *fmt, ...); + +extern void __printk_safe_enter(void); +extern void __printk_safe_exit(void); +/* + * The printk_deferred_enter/exit macros are available only as a hack for + * some code paths that need to defer all printk console printing. Interrupts + * must be disabled for the deferred duration. + */ +#define printk_deferred_enter __printk_safe_enter +#define printk_deferred_exit __printk_safe_exit
/* * Please don't use printk_ratelimit(), because it shares ratelimiting state @@@ -198,6 -209,8 +198,6 @@@ void dump_stack_print_info(const char * void show_regs_print_info(const char *log_lvl); extern asmlinkage void dump_stack_lvl(const char *log_lvl) __cold; extern asmlinkage void dump_stack(void) __cold; -extern void printk_safe_flush(void); -extern void printk_safe_flush_on_panic(void); #else static inline __printf(1, 0) int vprintk(const char *s, va_list args) @@@ -205,24 -218,15 +205,24 @@@ return 0; } static inline __printf(1, 2) __cold -int printk(const char *s, ...) +int _printk(const char *s, ...) { return 0; } static inline __printf(1, 2) __cold -int printk_deferred(const char *s, ...) +int _printk_deferred(const char *s, ...) { return 0; } + +static inline void printk_deferred_enter(void) +{ +} + +static inline void printk_deferred_exit(void) +{ +} + static inline int printk_ratelimit(void) { return 0; @@@ -274,6 -278,14 +274,6 @@@ static inline void dump_stack_lvl(cons static inline void dump_stack(void) { } - -static inline void printk_safe_flush(void) -{ -} - -static inline void printk_safe_flush_on_panic(void) -{ -} #endif
#ifdef CONFIG_SMP @@@ -336,117 -348,6 +336,117 @@@ extern int kptr_restrict #define pr_fmt(fmt) fmt #endif
+struct module; + +#ifdef CONFIG_PRINTK_INDEX +struct pi_entry { + const char *fmt; + const char *func; + const char *file; + unsigned int line; + + /* + * While printk and pr_* have the level stored in the string at compile + * time, some subsystems dynamically add it at runtime through the + * format string. For these dynamic cases, we allow the subsystem to + * tell us the level at compile time. + * + * NULL indicates that the level, if any, is stored in fmt. + */ + const char *level; + + /* + * The format string used by various subsystem specific printk() + * wrappers to prefix the message. + * + * Note that the static prefix defined by the pr_fmt() macro is stored + * directly in the message format (@fmt), not here. + */ + const char *subsys_fmt_prefix; +} __packed; + +#define __printk_index_emit(_fmt, _level, _subsys_fmt_prefix) \ + do { \ + if (__builtin_constant_p(_fmt) && __builtin_constant_p(_level)) { \ + /* + * We check __builtin_constant_p multiple times here + * for the same input because GCC will produce an error + * if we try to assign a static variable to fmt if it + * is not a constant, even with the outer if statement. + */ \ + static const struct pi_entry _entry \ + __used = { \ + .fmt = __builtin_constant_p(_fmt) ? (_fmt) : NULL, \ + .func = __func__, \ + .file = __FILE__, \ + .line = __LINE__, \ + .level = __builtin_constant_p(_level) ? (_level) : NULL, \ + .subsys_fmt_prefix = _subsys_fmt_prefix,\ + }; \ + static const struct pi_entry *_entry_ptr \ + __used __section(".printk_index") = &_entry; \ + } \ + } while (0) + +#else /* !CONFIG_PRINTK_INDEX */ +#define __printk_index_emit(...) do {} while (0) +#endif /* CONFIG_PRINTK_INDEX */ + +/* + * Some subsystems have their own custom printk that applies a va_format to a + * generic format, for example, to include a device number or other metadata + * alongside the format supplied by the caller. + * + * In order to store these in the way they would be emitted by the printk + * infrastructure, the subsystem provides us with the start, fixed string, and + * any subsequent text in the format string. + * + * We take a variable argument list as pr_fmt/dev_fmt/etc are sometimes passed + * as multiple arguments (eg: `"%s: ", "blah"`), and we must only take the + * first one. + * + * subsys_fmt_prefix must be known at compile time, or compilation will fail + * (since this is a mistake). If fmt or level is not known at compile time, no + * index entry will be made (since this can legitimately happen). + */ +#define printk_index_subsys_emit(subsys_fmt_prefix, level, fmt, ...) \ + __printk_index_emit(fmt, level, subsys_fmt_prefix) + +#define printk_index_wrap(_p_func, _fmt, ...) \ + ({ \ + __printk_index_emit(_fmt, NULL, NULL); \ + _p_func(_fmt, ##__VA_ARGS__); \ + }) + + +/** + * printk - print a kernel message + * @fmt: format string + * + * This is printk(). It can be called from any context. We want it to work. + * + * If printk indexing is enabled, _printk() is called from printk_index_wrap. + * Otherwise, printk is simply #defined to _printk. + * + * We try to grab the console_lock. If we succeed, it's easy - we log the + * output and call the console drivers. If we fail to get the semaphore, we + * place the output into the log buffer and return. The current holder of + * the console_sem will notice the new output in console_unlock(); and will + * send it to the consoles before releasing the lock. + * + * One effect of this deferred printing is that code which calls printk() and + * then changes console_loglevel may break. This is because console_loglevel + * is inspected when the actual printing occurs. + * + * See also: + * printf(3) + * + * See the vsnprintf() documentation for format string extensions over C99. + */ +#define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__) +#define printk_deferred(fmt, ...) \ + printk_index_wrap(_printk_deferred, fmt, ##__VA_ARGS__) + /** * pr_emerg - Print an emergency-level message * @fmt: format string diff --combined lib/Kconfig.debug index a2ccad6855f8,7d3d29203a72..0f61b1ec385d --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@@ -346,7 -346,7 +346,7 @@@ config FRAME_WAR int "Warn for stack frames larger than" range 0 8192 default 2048 if GCC_PLUGIN_LATENT_ENTROPY - default 1280 if (!64BIT && PARISC) + default 1536 if (!64BIT && PARISC) default 1024 if (!64BIT && !PARISC) default 2048 if 64BIT help @@@ -365,6 -365,7 +365,7 @@@ config STRIP_ASM_SYM config READABLE_ASM bool "Generate readable assembler code" depends on DEBUG_KERNEL + depends on CC_IS_GCC help Disable some compiler optimizations that tend to generate human unreadable assembler output. This may make the kernel slightly slower, but it helps @@@ -383,6 -384,7 +384,7 @@@ config HEADERS_INSTAL
config DEBUG_SECTION_MISMATCH bool "Enable full Section mismatch analysis" + depends on CC_IS_GCC help The section mismatch analysis checks if there are illegal references from one section to another section. @@@ -1235,7 -1237,7 +1237,7 @@@ config PROVE_LOCKIN depends on DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT select LOCKDEP select DEBUG_SPINLOCK - select DEBUG_MUTEXES + select DEBUG_MUTEXES if !PREEMPT_RT select DEBUG_RT_MUTEXES if RT_MUTEXES select DEBUG_RWSEMS select DEBUG_WW_MUTEX_SLOWPATH @@@ -1299,7 -1301,7 +1301,7 @@@ config LOCK_STA depends on DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT select LOCKDEP select DEBUG_SPINLOCK - select DEBUG_MUTEXES + select DEBUG_MUTEXES if !PREEMPT_RT select DEBUG_RT_MUTEXES if RT_MUTEXES select DEBUG_LOCK_ALLOC default n @@@ -1335,7 -1337,7 +1337,7 @@@ config DEBUG_SPINLOC
config DEBUG_MUTEXES bool "Mutex debugging: basic checks" - depends on DEBUG_KERNEL + depends on DEBUG_KERNEL && !PREEMPT_RT help This feature allows mutex semantics violations to be detected and reported. @@@ -1345,8 -1347,7 +1347,8 @@@ config DEBUG_WW_MUTEX_SLOWPAT depends on DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT select DEBUG_LOCK_ALLOC select DEBUG_SPINLOCK - select DEBUG_MUTEXES + select DEBUG_MUTEXES if !PREEMPT_RT + select DEBUG_RT_MUTEXES if PREEMPT_RT help This feature enables slowpath testing for w/w mutex users by injecting additional -EDEADLK wound/backoff cases. Together with @@@ -1369,7 -1370,7 +1371,7 @@@ config DEBUG_LOCK_ALLO bool "Lock debugging: detect incorrect freeing of live locks" depends on DEBUG_KERNEL && LOCK_DEBUGGING_SUPPORT select DEBUG_SPINLOCK - select DEBUG_MUTEXES + select DEBUG_MUTEXES if !PREEMPT_RT select DEBUG_RT_MUTEXES if RT_MUTEXES select LOCKDEP help @@@ -1680,6 -1681,33 +1682,6 @@@ config DEBUG_WQ_FORCE_RR_CP feature by default. When enabled, memory and cache locality will be impacted.
-config DEBUG_BLOCK_EXT_DEVT - bool "Force extended block device numbers and spread them" - depends on DEBUG_KERNEL - depends on BLOCK - default n - help - BIG FAT WARNING: ENABLING THIS OPTION MIGHT BREAK BOOTING ON - SOME DISTRIBUTIONS. DO NOT ENABLE THIS UNLESS YOU KNOW WHAT - YOU ARE DOING. Distros, please enable this and fix whatever - is broken. - - Conventionally, block device numbers are allocated from - predetermined contiguous area. However, extended block area - may introduce non-contiguous block device numbers. This - option forces most block device numbers to be allocated from - the extended space and spreads them to discover kernel or - userland code paths which assume predetermined contiguous - device number allocation. - - Note that turning on this debug option shuffles all the - device numbers for all IDE and SCSI devices including libata - ones, so root partition specified using device number - directly (via rdev or root=MAJ:MIN) won't work anymore. - Textual device names (root=/dev/sdXn) will continue to work. - - Say N if you are unsure. - config CPU_HOTPLUG_STATE_CONTROL bool "Enable CPU hotplug state control" depends on DEBUG_KERNEL @@@ -1945,13 -1973,6 +1947,13 @@@ config FAIL_MMC_REQUES and to test how the mmc host driver handles retries from the block device.
+config FAIL_SUNRPC + bool "Fault-injection capability for SunRPC" + depends on FAULT_INJECTION_DEBUG_FS && SUNRPC_DEBUG + help + Provide fault-injection capability for SunRPC and + its consumers. + config FAULT_INJECTION_STACKTRACE_FILTER bool "stacktrace filter for fault-injection capabilities" depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT diff --combined scripts/Makefile.lib index c57f14ac6f99,cd011f3f6f78..54582673fc1a --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@@ -225,17 -225,23 +225,23 @@@ dtc_cpp_flags = -Wp,-MMD,$(depfile).pr $(addprefix -I,$(DTC_INCLUDE)) \ -undef -D__DTS__
+ ifeq ($(CONFIG_LTO_CLANG),y) + # With CONFIG_LTO_CLANG, .o files in modules might be LLVM bitcode, so we + # need to run LTO to compile them into native code (.lto.o) before further + # processing. + mod-prelink-ext := .lto + endif + # Objtool arguments are also needed for modfinal with LTO, so we define # then here to avoid duplication. objtool_args = \ $(if $(CONFIG_UNWINDER_ORC),orc generate,check) \ - $(if $(part-of-module), --module,) \ + $(if $(part-of-module), --module) \ $(if $(CONFIG_FRAME_POINTER),, --no-fp) \ - $(if $(or $(CONFIG_GCOV_KERNEL),$(CONFIG_LTO_CLANG)), \ - --no-unreachable,) \ - $(if $(CONFIG_RETPOLINE), --retpoline,) \ - $(if $(CONFIG_X86_SMAP), --uaccess,) \ - $(if $(CONFIG_FTRACE_MCOUNT_USE_OBJTOOL), --mcount,) + $(if $(CONFIG_GCOV_KERNEL)$(CONFIG_LTO_CLANG), --no-unreachable)\ + $(if $(CONFIG_RETPOLINE), --retpoline) \ + $(if $(CONFIG_X86_SMAP), --uaccess) \ + $(if $(CONFIG_FTRACE_MCOUNT_USE_OBJTOOL), --mcount)
# Useful for describing the dependency of composite objects # Usage: @@@ -309,7 -315,8 +315,7 @@@ DTC_FLAGS += -Wno-unit_address_vs_reg -Wno-alias_paths \ -Wno-graph_child_address \ -Wno-simple_bus_reg \ - -Wno-unique_unit_address \ - -Wno-pci_device_reg + -Wno-unique_unit_address endif
ifneq ($(findstring 2,$(KBUILD_EXTRA_WARN)),) diff --combined scripts/mod/modpost.c index 1209e1786af7,a26139aa57fd..cb8ab7d91d30 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@@ -17,6 -17,7 +17,7 @@@ #include <ctype.h> #include <string.h> #include <limits.h> + #include <stdbool.h> #include <errno.h> #include "modpost.h" #include "../../include/linux/license.h" @@@ -89,6 -90,14 +90,14 @@@ modpost_log(enum loglevel loglevel, con error_occurred = true; }
+ static inline bool strends(const char *str, const char *postfix) + { + if (strlen(str) < strlen(postfix)) + return false; + + return strcmp(str + strlen(str) - strlen(postfix), postfix) == 0; + } + void *do_nofail(void *ptr, const char *expr) { if (!ptr) @@@ -931,7 -940,7 +940,7 @@@ static void check_section(const char *m ".kprobes.text", ".cpuidle.text", ".noinstr.text" #define OTHER_TEXT_SECTIONS ".ref.text", ".head.text", ".spinlock.text", \ ".fixup", ".entry.text", ".exception.text", ".text.*", \ - ".coldtext" + ".coldtext", ".softirqentry.text"
#define INIT_SECTIONS ".init.*" #define MEM_INIT_SECTIONS ".meminit.*" @@@ -2060,7 -2069,7 +2069,7 @@@ static void read_symbols(const char *mo if (!mod->is_vmlinux) { version = get_modinfo(&info, "version"); if (version || all_versions) - get_src_version(modname, mod->srcversion, + get_src_version(mod->name, mod->srcversion, sizeof(mod->srcversion) - 1); }
linux-merge@lists.open-mesh.org