1. 14 May, 2024 37 commits
    • Linus Torvalds's avatar
      Merge tag 'pm-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 0c181b1d
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These are mostly cpufreq updates, including a significant intel-pstate
        driver update and several amd-pstate improvements plus some updates of
        ARM cpufreq drivers, general fixes and cleanups.
      
        Also included are changes related to system sleep, power capping
        updates adding support for a new platform and a new hardware feature
        (among other things), a Samsung exynos-asv driver update allowing it
        to change its Energy Model after adjusting voltage, minor cpuidle and
        devfreq updates and a small documentation cleanup.
      
        Specifics:
      
         - Rework the handling of disabled turbo in the intel_pstate driver
           and make it update the maximum CPU frequency consistently
           regardless of the reason on top of a number of cleanups (Rafael
           Wysocki)
      
         - Add missing checks for NULL .exit() cpufreq driver callback to the
           cpufreq core (Viresh Kumar)
      
         - Prevent pulicy->max from going above the frequency QoS maximum
           value when cpufreq_frequency_table_verify() is used (Xuewen Yan)
      
         - Prevent a negative CPU number or frequency value from being printed
           if they are really large (Joshua Yeong)
      
         - Update MAINTAINERS entry for amd-pstate to add two new
           submaintainers and a designated reviewer (Huang Rui)
      
         - Clean up the amd-pstate driver and update its documentation
           (Gautham Shenoy)
      
         - Fix the highest frequency issue in the amd-pstate driver which
           limits performance (Perry Yuan)
      
         - Enable CPPC v2 for certain processors in the family 17H, as
           requested by TR40 processor users who expect improved performance
           and lower system temperature (Perry Yuan)
      
         - Change latency and delay values to be read from platform firmware
           firstly for more accurate timing (Perry Yuan)
      
         - A new quirk is introduced for supporting amd-pstate on legacy
           processors which either lack CPPC capability, or only only have
           CPPC v2 capability (Perry Yuan)
      
         - Sun50i cpufreq: Add support for opp_supported_hw, H616 platform and
           general cleanups (Andre Przywara, Martin Botka, Brandon Cheo Fusi,
           Dan Carpenter, Viresh Kumar)
      
         - CPPC cpufreq: Fix possible null pointer dereference (Aleksandr
           Mishin)
      
         - Eliminate uses of of_node_put() from cpufreq (Javier Carrasco,
           Shivani Gupta)
      
         - brcmstb-avs: ISO C90 forbids mixed declarations (Portia Stephens)
      
         - mediatek cpufreq: Add support for MT7988A (Sam Shih)
      
         - cpufreq-qcom-hw: Add SM4450 compatibles in DT bindings (Tengfei
           Fan)
      
         - Fix struct cpudata::epp_cached kernel-doc in the intel_pstate
           cpufreq driver (Jeff Johnson)
      
         - Fix kerneldoc description of ladder_do_selection() (Jeff Johnson)
      
         - Convert the cpuidle kirkwood driver to platform remove callback
           returning void (Yangtao Li)
      
         - Replace deprecated strncpy() with strscpy() in the hibernation core
           code (Justin Stitt)
      
         - Use %ps to simplify debug output in the core system-wide suspend
           and resume code (Len Brown)
      
         - Remove unnecessary else from device_init_wakeup() and make
           device_wakeup_disable() return void (Dhruva Gole)
      
         - Enable PMU support in the Intel TPMI RAPL driver (Zhang Rui)
      
         - Add support for ArrowLake-H platform to the Intel RAPL driver
           (Zhang Rui)
      
         - Avoid explicit cpumask allocation on stack in DTPM (Dawei Li)
      
         - Make the Samsung exynos-asv driver update the Energy Model after
           adjusting voltage on top of some preliminary changes of the OPP and
           Enery Model generic code (Lukasz Luba)
      
         - Remove a reference to a function that has been dropped from the
           power management documentation (Bjorn Helgaas)
      
         - Convert the platfrom remove callback to .remove_new for the
           exyno-nocp, exynos-ppmu, mtk-cci-devfreq, sun8i-a33-mbus, and
           rk3399_dmc devfreq drivers (Uwe Kleine-König)
      
         - Use DEFINE_SIMPLE_PM_OPS for exyno-bus.c driver (Anand Moon)"
      
      * tag 'pm-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (68 commits)
        PM / devfreq: exynos: Use DEFINE_SIMPLE_DEV_PM_OPS for PM functions
        PM / devfreq: rk3399_dmc: Convert to platform remove callback returning void
        PM / devfreq: sun8i-a33-mbus: Convert to platform remove callback returning void
        PM / devfreq: mtk-cci: Convert to platform remove callback returning void
        PM / devfreq: exynos-ppmu: Convert to platform remove callback returning void
        PM / devfreq: exynos-nocp: Convert to platform remove callback returning void
        cpufreq: amd-pstate: fix the highest frequency issue which limits performance
        cpufreq: intel_pstate: fix struct cpudata::epp_cached kernel-doc
        cpuidle: ladder: fix ladder_do_selection() kernel-doc
        powercap: intel_rapl_tpmi: Enable PMU support
        powercap: intel_rapl: Introduce APIs for PMU support
        PM: hibernate: replace deprecated strncpy() with strscpy()
        cpufreq: Fix up printing large CPU numbers and frequency values
        MAINTAINERS: cpufreq: amd-pstate: Add co-maintainers and reviewer
        cpufreq: amd-pstate: remove unused variable lowest_nonlinear_freq
        cpufreq: amd-pstate: fix code format problems
        cpufreq: amd-pstate: Add quirk for the pstate CPPC capabilities missing
        cppc_acpi: print error message if CPPC is unsupported
        cpufreq: amd-pstate: get transition delay and latency value from ACPI tables
        cpufreq: amd-pstate: Bail out if min/max/nominal_freq is 0
        ...
      0c181b1d
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · f952b6c8
      Linus Torvalds authored
      Pull thermal control updates from Rafael Wysocki:
       "The most significant part of this is a rework of thermal governors,
        including a redesign of the thermal governor interface and changes to
        make some of them take trip point hysteresis into account properly, as
        well as some related cleanups of the thermal governors and thermal
        core.
      
        The above is based on preliminary changes refactoring thermal data
        structures and moving the definitions of some of them into the thermal
        core which also ensure that trip point crossing notifications will be
        sent to user space via netlink and recorded in the debug statistics in
        temperature order.
      
        In addition, netlink bind/unbind notifications are added to the
        thermal core and the Intel HFI driver is modified to use them to avoid
        sending netlink messages until there are subscribers.
      
        Apart from that, multiple thermal drivers are updated which includes
        new hardware support (MediaTek MT8188 and MT8186, Amlogic A1 thermal
        sensor, Loongson-2K2000, Lmh QCM2290), fixes, cleanups and
        documentation updates, and the recently added thermal debug code is
        fixed and cleaned up.
      
        Specifics:
      
         - Redesign the thermal governor interface to allow the governors to
           work in a more straightforward way (Rafael Wysocki)
      
         - Make thermal governors take the current trip point thresholds into
           account in their computations which allows trip hysteresis to be
           observed more accurately (Rafael Wysocki)
      
         - Make the thermal core manage passive polling for thermal zones and
           remove passive polling management from thermal governors (Rafael
           Wysocki)
      
         - Refactor trip point representation and move the definition of
           thermal governor and thermal zone device structures to the thermal
           core (Rafael Wysocki)
      
         - Sort trip point crossing notifications and debug recording of trip
           point crossing events by temperature (Rafael Wysocki)
      
         - Improve the handling of cooling device states and thermal
           mitigation episodes in progress in the thermal debug code (Rafael
           Wysocki)
      
         - Avoid excessive updates of trip point statistics and clean up the
           printing of thermal mitigation episode information (Rafael Wysocki)
      
         - Clean up thermal governors and thermal core (Rafael Wysocki)
      
         - Allow thermal drivers to register notifiers that will be invoked on
           netlink events like BIND and UNBIND, so that they can adjust their
           activity depending on whether or not there are any subscribers of
           netlink messages coming from them, and make the Intel HFI driver
           use this mechanism (Stanislaw Gruszka)
      
         - Adjust the update delay and capabilities-per-event values in the
           Intel HFI thermal driver to prevent it from missing events and
           allow it to process more data in one go (Ricardo Neri)
      
         - Add missing MODULE_DESCRIPTION() to multiple files in the
           int340x_thermal and intel_soc_dts_iosf drivers (Srinivas
           Pandruvada)
      
         - Replace deprecated strncpy() with strscpy() in the int340x_thermal
           driver (Justin Stitt)
      
         - Add QCM2290 compatible DT bindings for Lmh and fix a NULL pointer
           dereference in the lmh driver when the SCM is not present (Konrad
           Dybcio)
      
         - Use the strreplace() function instead of doing it manually in the
           Armada driver (Rasmus Villemoes)
      
         - Convert st,stih407-thermal to DT schema and fix up missing
           properties (Raphael Gallais-Pou)
      
         - Add suspend/resume by restoring the context of the tsens sensor
           (Priyansh Jain)
      
         - Support A1 SoC family Thermal Sensor controller and add the DT
           bindings (Dmitry Rokosov)
      
         - Improve the temperature approximation calculation and consolidate
           the Tj constant into a shared area of the structure instead of
           duplicating it on the Rcar Gen3 (Niklas Söderlund)
      
         - Fix the Mediatek LVTS sensor coefficient for the MT8192 in order to
           support it correctly (Hsin-Te Yuan)
      
         - Fix a NULL pointer dereference in the tsens driver when the
           function compute_intercept_slope() is called with a NULL parameter
           (Aleksandr Mishin)
      
         - Remove some unused fields in struct qpnp_tm_chip and k3_bandgap
           (Christophe Jaillet)
      
         - Fix up calibration efuse data decoding, consolidate the code by
           checking boundaries and refactor some part of the LVTS Mediatek
           driver. After setting the scene, add MT8186 and MT8188 along with
           the DT bindings (Nicolas Pitre)
      
         - Add Loongson-2K2000 support after some minor code adjustements and
           providing the DT bindings definition (Binbin Zhou)"
      
      * tag 'thermal-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (72 commits)
        thermal: intel: hfi: Increase the number of CPU capabilities per netlink event
        thermal: intel: hfi: Rename HFI_MAX_THERM_NOTIFY_COUNT
        thermal: intel: hfi: Shorten the thermal netlink event delay to 100ms
        thermal: intel: hfi: Rename HFI_UPDATE_INTERVAL
        thermal: intel: Add missing module description
        thermal: core: Move passive polling management to the core
        thermal: core: Do not call handle_thermal_trip() if zone temperature is invalid
        thermal: trip: Add missing empty code line
        thermal/debugfs: Avoid printing zero duration for mitigation events in progress
        thermal/debugfs: Pass cooling device state to thermal_debug_cdev_add()
        thermal/debugfs: Create records for cdev states as they get used
        thermal: core: Introduce thermal_governor_trip_crossed()
        thermal/debugfs: Make tze_seq_show() skip invalid trips and trips with no stats
        thermal/debugfs: Rename thermal_debug_update_temp() to thermal_debug_update_trip_stats()
        thermal/debugfs: Clean up thermal_debug_update_temp()
        thermal/debugfs: Avoid excessive updates of trip point statistics
        thermal: core: Relocate critical and hot trip handling
        thermal: core: Drop the .throttle() governor callback
        thermal: gov_user_space: Use .trip_crossed() instead of .throttle()
        thermal: gov_fair_share: Eliminate unnecessary integer divisions
        ...
      f952b6c8
    • Linus Torvalds's avatar
      Merge tag 'linux_kselftest-next-6.10-rc1' of... · 4b95dc87
      Linus Torvalds authored
      Merge tag 'linux_kselftest-next-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest updates from Shuah Khan:
      
       - make framework and tests reporting KTAP compliant
      
       - make ktap_helpers and power_supply test POSIX compliant
      
       - add ksft_exit_fail_perror() to include errono in string form
      
       - avoid clang reporting false positive static analysis errors about
         functions that exit and never return. ksft_exit* functions are marked
         __noreturn to address this problem
      
       - add mechanism for reporting a KSFT_ result code
      
       - fix build warnings related missing headers and unused variables
      
       - fix clang build failures
      
       - cleanups to resctrl test
      
       - add host arch for LLVM builds
      
      * tag 'linux_kselftest-next-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (44 commits)
        selftests/sgx: Include KHDR_INCLUDES in Makefile
        selftests: Compile kselftest headers with -D_GNU_SOURCE
        selftests/resctrl: fix clang build warnings related to abs(), labs() calls
        selftests/ftrace: Fix checkbashisms errors
        selftests/ftrace: Fix BTFARG testcase to check fprobe is enabled correctly
        selftests/capabilities: fix warn_unused_result build warnings
        selftests: filesystems: add missing stddef header
        selftests: kselftest_deps: fix l5_test() empty variable
        selftests: default to host arch for LLVM builds
        selftests/resctrl: fix clang build failure: use LOCAL_HDRS
        selftests/binderfs: use the Makefile's rules, not Make's implicit rules
        Documentation: kselftest: fix codeblock
        selftests: kselftest: Make ksft_exit functions return void instead of int
        selftests: x86: ksft_exit_pass() does not return
        selftests: timers: ksft_exit functions do not return
        selftests: sync: ksft_exit_pass() does not return
        selftests/resctrl: ksft_exit_skip() does not return
        selftests: pidfd: ksft_exit functions do not return
        selftests/mm: ksft_exit functions do not return
        selftests: membarrier: ksft_exit_pass() does not return
        ...
      4b95dc87
    • Linus Torvalds's avatar
      Merge tag 'linux_kselftest-kunit-6.10-rc1' of... · 896d3fce
      Linus Torvalds authored
      Merge tag 'linux_kselftest-kunit-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kunit updates from Shuah Khan:
      
       - fix race condition in try-catch completion
      
       - change __kunit_test_suites_init() to exit early if there is
         nothing to test
      
       - change string-stream-test to use KUNIT_DEFINE_ACTION_WRAPPER
      
       - move fault tests behind KUNIT_FAULT_TEST Kconfig option
      
       - kthread test fixes and improvements
      
       - iov_iter test fixes
      
      * tag 'linux_kselftest-kunit-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        kunit: bail out early in __kunit_test_suites_init() if there are no suites to test
        kunit: string-stream-test: use KUNIT_DEFINE_ACTION_WRAPPER
        kunit: test: Move fault tests behind KUNIT_FAULT_TEST Kconfig option
        kunit: unregister the device on error
        kunit: Fix race condition in try-catch completion
        kunit: Add tests for fault
        kunit: Print last test location on fault
        kunit: Fix KUNIT_SUCCESS() calls in iov_iter tests
        kunit: Handle test faults
        kunit: Fix timeout message
        kunit: Fix kthread reference
        kunit: Handle thread creation error
      896d3fce
    • Linus Torvalds's avatar
      Merge tag 'linux_kselftest-nolibc-6.10-rc1' of... · 4b768bf0
      Linus Torvalds authored
      Merge tag 'linux_kselftest-nolibc-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull nolibc updates from Shuah Khan:
      
       - add support for uname(2)
      
       - remove open-coded strnlen()
      
       - export strlen()
      
       - add tests for strlcat() and strlcpy()
      
       - fix memory error in realloc()
      
       - fix strlcat() and strlcpy() return code and size usage
      
      * tag 'linux_kselftest-nolibc-6.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        tools/nolibc: add support for uname(2)
        tools/nolibc/string: remove open-coded strnlen()
        selftests/nolibc: Add tests for strlcat() and strlcpy()
        tools/nolibc: Fix strlcpy() return code and size usage
        tools/nolibc: Fix strlcat() return code and size usage
        tools/nolibc/string: export strlen()
        tools/nolibc/stdlib: fix memory error in realloc()
      4b768bf0
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of https://github.com/openrisc/linux · 59010373
      Linus Torvalds authored
      Pull OpenRISC updates from Stafford Horne:
       "A few cleanups and fixups from me:
      
         - Add a few missing relocations to fix module loading
      
         - Cleanup FPU state save and restore to be more efficient
      
         - Cleanups to traps handling and logging
      
         - Fix issue with poweroff being broken after recent power driver
           refactorings"
      
      * tag 'for-linus' of https://github.com/openrisc/linux:
        openrisc: Move FPU state out of pt_regs
        openrisc: Add FPU config
        openrisc: traps: Don't send signals to kernel mode threads
        openrisc: traps: Remove calls to show_registers before die
        openrisc: traps: Convert printks to pr_<level> macros
        openrisc: Add support for more module relocations
        openrisc: Define openrisc relocation types
        openrisc: Use do_kernel_power_off()
      59010373
    • Linus Torvalds's avatar
      Merge tag 'sh-for-v6.10-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux · c59cebe8
      Linus Torvalds authored
      Pull sh updates from John Paul Adrian Glaubitz:
       "The majority of improvements are coming from Geert Uytterhoeven who
        took the time to fix a total of 30 cases of "-Wmissing-prototypes"
        compiler warnings, either by adding a missing header include, defining
        the missing forward declarations or making the functions in question
        static.
      
        In the case of several DMA functions, the fix was to actually just
        remove them as they were added but never used. Another one of these
        warnings was eliminated by removing the left-over sh5 cache handling
        support, a change that was suggested by Yoshinori Sato and, finally,
        the last of these warnings was fixed by guarding the function
        setup_profiling_timer() with CONFIG_PROFILING.
      
        While at it, Geert also removed two unneeded casts to kprobe_opcode_t
        in the kprobes code.
      
        Another change was contributed by Guenter Roeck to fix errors that
        were reported during checksum unit tests. The fix actually reverts the
        older change cadc4e1a ("sh: Handle calling csum_partial with
        misaligned data") which turned to be incorrect. It remains to be
        investigated whether there is a better way to handle misaligned data
        in csum_partial().
      
        A small fix contributed by Krzysztof Kozlowski drops the incorrect SPI
        controller spi-max-frequency property in the device tree source file
        for the J2 device platform while Uwe Kleine-König converted the
        push-switch driver to have its callback function return void, a change
        that is currently being applied to all drivers throughout the kernel
        in order to avoid resource leaks.
      
        Last but not least, Artur Rojek has fixed the IOPORT base address for
        the Sega Dreamcast platform which allows the Linux kernel to be
        successfully booted on this once popular video game console for the
        first time since a long time ago"
      
      * tag 'sh-for-v6.10-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux: (35 commits)
        sh: setup: Add missing forward declaration for sh_fdt_init()
        sh: smp: Protect setup_profiling_timer() by CONFIG_PROFILING
        sh: of-generic: Add missing #include <asm/clock.h>
        sh: dreamcast: Fix GAPS PCI bridge addressing
        sh: boot: Add proper forward declarations
        sh: boot: Remove sh5 cache handling
        Revert "sh: Handle calling csum_partial with misaligned data"
        sh: j2: Drop incorrect SPI controller spi-max-frequency property
        sh: push-switch: Convert to platform remove callback returning void
        sh: sh7785lcr: Make init_sh7785lcr_IRQ() static
        sh: sh7757: Add missing #include <asm/mmzone.h>
        sh: sh7757lcr: Make init_sh7757lcr_IRQ() static
        sh: mach-sh03: Make sh03_rtc_settimeofday() static
        sh: mach-highlander: Add missing #include <mach/highlander.h>
        sh: traps: Make is_dsp_inst() static
        sh: cache: Move forward declarations to <asm/cacheflush.h>
        sh: dma: Remove unused functionality
        sh: dwarf: Make dwarf_lookup_fde() static
        sh: kprobes: Remove unneeded kprobe_opcode_t casts
        sh: kprobes: Make trampoline_probe_handler() static
        ...
      c59cebe8
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 103916ff
      Linus Torvalds authored
      Pull arm64 updates from Will Deacon:
       "The most interesting parts are probably the mm changes from Ryan which
        optimise the creation of the linear mapping at boot and (separately)
        implement write-protect support for userfaultfd.
      
        Outside of our usual directories, the Kbuild-related changes under
        scripts/ have been acked by Masahiro whilst the drivers/acpi/ parts
        have been acked by Rafael and the addition of cpumask_any_and_but()
        has been acked by Yury.
      
        ACPI:
      
         - Support for the Firmware ACPI Control Structure (FACS) signature
           feature which is used to reboot out of hibernation on some systems
      
        Kbuild:
      
         - Support for building Flat Image Tree (FIT) images, where the kernel
           Image is compressed alongside a set of devicetree blobs
      
        Memory management:
      
         - Optimisation of our early page-table manipulation for creation of
           the linear mapping
      
         - Support for userfaultfd write protection, which brings along some
           nice cleanups to our handling of invalid but present ptes
      
         - Extend our use of range TLBI invalidation at EL1
      
        Perf and PMUs:
      
         - Ensure that the 'pmu->parent' pointer is correctly initialised by
           PMU drivers
      
         - Avoid allocating 'cpumask_t' types on the stack in some PMU drivers
      
         - Fix parsing of the CPU PMU "version" field in assembly code, as it
           doesn't follow the usual architectural rules
      
         - Add best-effort unwinding support for USER_STACKTRACE
      
         - Minor driver fixes and cleanups
      
        Selftests:
      
         - Minor cleanups to the arm64 selftests (missing NULL check, unused
           variable)
      
        Miscellaneous:
      
         - Add a command-line alias for disabling 32-bit application support
      
         - Add part number for Neoverse-V2 CPUs
      
         - Minor fixes and cleanups"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (64 commits)
        arm64/mm: Fix pud_user_accessible_page() for PGTABLE_LEVELS <= 2
        arm64/mm: Add uffd write-protect support
        arm64/mm: Move PTE_PRESENT_INVALID to overlay PTE_NG
        arm64/mm: Remove PTE_PROT_NONE bit
        arm64/mm: generalize PMD_PRESENT_INVALID for all levels
        arm64: simplify arch_static_branch/_jump function
        arm64: Add USER_STACKTRACE support
        arm64: Add the arm64.no32bit_el0 command line option
        drivers/perf: hisi: hns3: Actually use devm_add_action_or_reset()
        drivers/perf: hisi: hns3: Fix out-of-bound access when valid event group
        drivers/perf: hisi_pcie: Fix out-of-bound access when valid event group
        kselftest: arm64: Add a null pointer check
        arm64: defer clearing DAIF.D
        arm64: assembler: update stale comment for disable_step_tsk
        arm64/sysreg: Update PIE permission encodings
        kselftest/arm64: Remove unused parameters in abi test
        perf/arm-spe: Assign parents for event_source device
        perf/arm-smmuv3: Assign parents for event_source device
        perf/arm-dsu: Assign parents for event_source device
        perf/arm-dmc620: Assign parents for event_source device
        ...
      103916ff
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v6.10-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 1338acfe
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
       - Fix invalid context sleep and reboot hang on Mac
      
       - Fix spinlock race in kernel thread creation
      
       - Miscellaneous fixes and improvements
      
       - defconfig updates
      
      * tag 'm68k-for-v6.10-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: defconfig: Update defconfigs for v6.9-rc1
        m68k: Move ARCH_HAS_CPU_CACHE_ALIASING
        m68k: mac: Fix reboot hang on Mac IIci
        m68k: Fix spinlock race in kernel thread creation
        m68k: Let GENERIC_IOMAP depend on HAS_IOPORT
        m68k: amiga: Use str_plural() to fix Coccinelle warning
        macintosh/via-macii: Fix "BUG: sleeping function called from invalid context"
        zorro: Use helpers from ioport.h
        m68k: Calculate THREAD_SIZE from THREAD_SIZE_ORDER
      1338acfe
    • Linus Torvalds's avatar
      Merge tag 'x86-irq-2024-05-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9776dd36
      Linus Torvalds authored
      Pull x86 interrupt handling updates from Thomas Gleixner:
       "Add support for posted interrupts on bare metal.
      
        Posted interrupts is a virtualization feature which allows to inject
        interrupts directly into a guest without host interaction. The VT-d
        interrupt remapping hardware sets the bit which corresponds to the
        interrupt vector in a vector bitmap which is either used to inject the
        interrupt directly into the guest via a virtualized APIC or in case
        that the guest is scheduled out provides a host side notification
        interrupt which informs the host that an interrupt has been marked
        pending in the bitmap.
      
        This can be utilized on bare metal for scenarios where multiple
        devices, e.g. NVME storage, raise interrupts with a high frequency. In
        the default mode these interrupts are handles independently and
        therefore require a full roundtrip of interrupt entry/exit.
      
        Utilizing posted interrupts this roundtrip overhead can be avoided by
        coalescing these interrupt entries to a single entry for the posted
        interrupt notification. The notification interrupt then demultiplexes
        the pending bits in a memory based bitmap and invokes the
        corresponding device specific handlers.
      
        Depending on the usage scenario and device utilization throughput
        improvements between 10% and 130% have been measured.
      
        As this is only relevant for high end servers with multiple device
        queues per CPU attached and counterproductive for situations where
        interrupts are arriving at distinct times, the functionality is opt-in
        via a kernel command line parameter"
      
      * tag 'x86-irq-2024-05-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/irq: Use existing helper for pending vector check
        iommu/vt-d: Enable posted mode for device MSIs
        iommu/vt-d: Make posted MSI an opt-in command line option
        x86/irq: Extend checks for pending vectors to posted interrupts
        x86/irq: Factor out common code for checking pending interrupts
        x86/irq: Install posted MSI notification handler
        x86/irq: Factor out handler invocation from common_interrupt()
        x86/irq: Set up per host CPU posted interrupt descriptors
        x86/irq: Reserve a per CPU IDT vector for posted MSIs
        x86/irq: Add a Kconfig option for posted MSI
        x86/irq: Remove bitfields in posted interrupt descriptor
        x86/irq: Unionize PID.PIR for 64bit access w/o casting
        KVM: VMX: Move posted interrupt descriptor out of VMX code
      9776dd36
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2024-05-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6bfd2d44
      Linus Torvalds authored
      Pull interrupt subsystem updates from Thomas Gleixner:
       "Core code:
      
         - Interrupt storm detection for the lockup watchdog:
      
           Lockups which are caused by interrupt storms are not easy to debug
           because there is no information about the events which make the
           lockup detector trigger.
      
           To make this more user friendly, provide an extenstion to interrupt
           statistics which allows to take snapshots and an interface to
           retrieve the delta to the snapshot. Use this new mechanism in the
           watchdog code to do a two stage lockup analysis by taking the
           snapshot and printing the deltas for the topmost active interrupts
           on the second trigger.
      
           Note: This contains both the interrupt and the watchdog changes as
           the latter depend on the former obviously.
      
         - Avoid summation loops in the /proc/interrupts output and use the
           global counter when possible
      
         - Skip suspended interrupts on CPU hotplug operations to ensure that
           they are not delivered before the system resumes the device drivers
           when coming out of suspend.
      
         - On CPU hot-unplug interrupts which are affine to the outgoing CPU
           are migrated to a different CPU in the affinity mask. This can fail
           when the CPUs have no vectors left. Instead of giving up try to
           migrate it to any online CPU and thereby breaking the affinity
           setting in order to prevent a stale device interrupt which targets
           an offline CPU
      
         - The usual small cleanups
      
        Driver code:
      
         - Support for the RISCV AIA MSI controller
      
         - Make the interrupt allocation for the Loongson PCH controller more
           flexible to prevent vector exhaustion
      
         - The usual set of cleanups and fixes all over the place"
      
      * tag 'irq-core-2024-05-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (51 commits)
        irqchip/gic-v3-its: Remove BUG_ON in its_vpe_irq_domain_alloc
        cpuidle: Avoid explicit cpumask allocation on stack
        irqchip/sifive-plic: Avoid explicit cpumask allocation on stack
        irqchip/riscv-aplic-direct: Avoid explicit cpumask allocation on stack
        irqchip/loongson-eiointc: Avoid explicit cpumask allocation on stack
        irqchip/gic-v3-its: Avoid explicit cpumask allocation on stack
        irqchip/irq-bcm6345-l1: Avoid explicit cpumask allocation on stack
        cpumask: Introduce cpumask_first_and_and()
        irqchip/irq-brcmstb-l2: Avoid saving mask on shutdown
        genirq: Reuse irq_is_nmi()
        genirq/cpuhotplug: Retry with cpu_online_mask when migration fails
        genirq/cpuhotplug: Skip suspended interrupts when restoring affinity
        arm64: dts: st: Add interrupt parent to pinctrl on stm32mp251
        arm64: dts: st: Add exti1 and exti2 nodes on stm32mp251
        ARM: dts: stm32: List exti parent interrupts on stm32mp131
        ARM: dts: stm32: List exti parent interrupts on stm32mp151
        arm64: Kconfig.platforms: Enable STM32_EXTI for ARCH_STM32
        irqchip/stm32-exti: Mark events reserved with RIF configuration check
        irqchip/stm32-exti: Skip secure events
        irqchip/stm32-exti: Convert driver to standard PM
        ...
      6bfd2d44
    • Linus Torvalds's avatar
      Merge tag 'x86-timers-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a9d9ce3f
      Linus Torvalds authored
      Pull x86 timers update from Thomas Gleixner:
       "A single update for the TSC synchronixation sanity checks:
      
        The sad state of TSC being notoriously non-sychronized for several
        decades caused the kernel to grow quite rigorous sanity checks to
        detect whether the TSC is valid to be used for timekeeping.
      
        The TSC ADJUST MSR provides the offset between the initial TSC value
        after hardware reset and later modifications. This allows to detect
        cases where firmware tampers with the TSC and also allows to correct
        the firmware induced damage by resetting the offset in a controlled
        way.
      
        The universal correct rule is that the TSC ADJUST value has to be
        consistent within all CPUs of a socket.
      
        The kernel further assumes that the TSC offset should be consistent
        between sockets. That's not really correct as systems with a huge
        number of sockets are not architecurally guaranteed to reset the per
        socket TSC base synchronously.
      
        In case that the per socket offset is not consistent the kernel resets
        it to the offset of the boot CPU and then does a synchronization check
        which corrects for the inter socket delays.
      
        That works most of the time, but it is suboptimal as the firmware has
        eventually better information about the per socket offset and on sane
        systems that offset should just work in the validation checks"
      
      * tag 'x86-timers-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/tsc: Trust initial offset in architectural TSC-adjust MSRs
      a9d9ce3f
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2024-05-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2d9db778
      Linus Torvalds authored
      Pull timers and timekeeping updates from Thomas Gleixner:
       "Core code:
      
         - Make timekeeping and VDSO time readouts resilent against math
           overflow:
      
           In guest context the kernel is prone to math overflow when the host
           defers the timer interrupt due to overload, malfunction or malice.
      
           This can be mitigated by checking the clocksource delta for the
           maximum deferrement which is readily available. If that value is
           exceeded then the code uses a slowpath function which can handle
           the multiplication overflow.
      
           This functionality is enabled unconditionally in the kernel, but
           made conditional in the VDSO code. The latter is conditional
           because it allows architectures to optimize the check so it is not
           causing performance regressions.
      
           On X86 this is achieved by reworking the existing check for
           negative TSC deltas as a negative delta obviously exceeds the
           maximum deferrement when it is evaluated as an unsigned value. That
           avoids two conditionals in the hotpath and allows to hide both the
           negative delta and the large delta handling in the same slow path.
      
         - Add an initial minimal ktime_t abstraction for Rust
      
         - The usual boring cleanups and enhancements
      
        Drivers:
      
         - Boring updates to device trees and trivial enhancements in various
           drivers"
      
      * tag 'timers-core-2024-05-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (33 commits)
        clocksource/drivers/arm_arch_timer: Mark hisi_161010101_oem_info const
        clocksource/drivers/timer-ti-dm: Remove an unused field in struct dmtimer
        clocksource/drivers/renesas-ostm: Avoid reprobe after successful early probe
        clocksource/drivers/renesas-ostm: Allow OSTM driver to reprobe for RZ/V2H(P) SoC
        dt-bindings: timer: renesas: ostm: Document Renesas RZ/V2H(P) SoC
        rust: time: doc: Add missing C header links
        clocksource: Make the int help prompt unit readable in ncurses
        hrtimer: Rename __hrtimer_hres_active() to hrtimer_hres_active()
        timerqueue: Remove never used function timerqueue_node_expires()
        rust: time: Add Ktime
        vdso: Fix powerpc build U64_MAX undeclared error
        clockevents: Convert s[n]printf() to sysfs_emit()
        clocksource: Convert s[n]printf() to sysfs_emit()
        clocksource: Make watchdog and suspend-timing multiplication overflow safe
        timekeeping: Let timekeeping_cycles_to_ns() handle both under and overflow
        timekeeping: Make delta calculation overflow safe
        timekeeping: Prepare timekeeping_cycles_to_ns() for overflow safety
        timekeeping: Fold in timekeeping_delta_to_ns()
        timekeeping: Consolidate timekeeping helpers
        timekeeping: Refactor timekeeping helpers
        ...
      2d9db778
    • Linus Torvalds's avatar
      Merge tag 'x86_apic_for_6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 61deafa9
      Linus Torvalds authored
      Pull x86 APIC update from Dave Hansen:
       "Coccinelle complained about some 64-bit divisions, but the divisor was
        really just a 32-bit value being stored as 'unsigned long'.
      
        Fixing the types fixes the warning"
      
      * tag 'x86_apic_for_6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/apic: Improve data types to fix Coccinelle warnings
      61deafa9
    • Linus Torvalds's avatar
      Merge tag 'x86_sev_for_v6.10_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 964bbdfd
      Linus Torvalds authored
      Pull x86 SEV updates from Borislav Petkov:
      
       - Small cleanups and improvements
      
      * tag 'x86_sev_for_v6.10_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/sev: Make the VMPL0 checking more straight forward
        x86/sev: Rename snp_init() in boot/compressed/sev.c
        x86/sev: Shorten struct name snp_secrets_page_layout to snp_secrets_page
      964bbdfd
    • Linus Torvalds's avatar
      Merge tag 'x86_microcode_for_v6.10_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a1907ccd
      Linus Torvalds authored
      Pull x86 microcode loader updates from Borislav Petkov:
      
       - Fix a clang-15 build warning and other cleanups
      
      * tag 'x86_microcode_for_v6.10_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/microcode: Remove unused struct cpu_info_ctx
        x86/microcode/AMD: Remove unused PATCH_MAX_SIZE macro
        x86/microcode/AMD: Avoid -Wformat warning with clang-15
      a1907ccd
    • Linus Torvalds's avatar
      Merge tag 'x86_cache_for_v6.10_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5186ba33
      Linus Torvalds authored
      Pull x86 resource control updates from Borislav Petkov:
      
       - Add a tracepoint to read out LLC occupancy of resource monitor IDs
         with the goal of freeing them sooner rather than later
      
       - Other code improvements and cleanups
      
      * tag 'x86_cache_for_v6.10_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/resctrl: Add tracepoint for llc_occupancy tracking
        x86/resctrl: Rename pseudo_lock_event.h to trace.h
        x86/resctrl: Simplify call convention for MSR update functions
        x86/resctrl: Pass domain to target CPU
      5186ba33
    • Linus Torvalds's avatar
      Merge tag 'x86_alternatives_for_v6.10_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 25c7cb05
      Linus Torvalds authored
      Pull x86 asm alternatives updates from Borislav Petkov:
      
       - Switch the in-place instruction patching which lead to at least one
         weird bug with 32-bit guests, seeing stale instruction bytes, to one
         working on a buffer, like the rest of the alternatives code does
      
       - Add a long overdue check to the X86_FEATURE flag modifying functions
         to warn when former get changed in a non-compatible way after
         alternatives have been patched because those changes will be already
         wrong
      
       - Other cleanups
      
      * tag 'x86_alternatives_for_v6.10_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/alternatives: Remove alternative_input_2()
        x86/alternatives: Sort local vars in apply_alternatives()
        x86/alternatives: Optimize optimize_nops()
        x86/alternatives: Get rid of __optimize_nops()
        x86/alternatives: Use a temporary buffer when optimizing NOPs
        x86/alternatives: Catch late X86_FEATURE modifiers
      25c7cb05
    • Linus Torvalds's avatar
      Merge tag 'ras_core_for_v6.10_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b4864f65
      Linus Torvalds authored
      Pull RAS update from Borislav Petkov:
      
       - Change the fixed-size buffer for MCE records to a dynamically sized
         one based on the number of CPUs present in the system
      
      * tag 'ras_core_for_v6.10_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce: Dynamically size space for machine check records
      b4864f65
    • Linus Torvalds's avatar
      Merge tag 'edac_updates_for_v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · eba77c04
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
      
       - Have skx_edac decode error addresses belonging to SGX properly
      
       - Remove a bunch of unused struct members
      
       - Other cleanups
      
      * tag 'edac_updates_for_v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC/skx_common: Allow decoding of SGX addresses
        EDAC/mc_sysfs: Convert sprintf()/snprintf() to sysfs_emit()
        EDAC: Remove unused struct members
        EDAC: Remove dynamic attributes from edac_device_alloc_ctl_info()
        EDAC/device: Remove edac_dev_sysfs_block_attribute::store()
        EDAC/device: Remove edac_dev_sysfs_block_attribute::{block,value}
        EDAC/amd64: Remove unused struct member amd64_pvt::ext_nbcfg
      eba77c04
    • Linus Torvalds's avatar
      Merge tag 'idxd-for-linus-may2024' of git bundle from Arjan · 796aec4a
      Linus Torvalds authored
      Pull DSA and IAA accelerator mis-alignment fix from Arjan van de Ven:
       "The DSA (memory copy/zero/etc) and IAA (compression) accelerators in
        the Sapphire Rapids and Emerald Rapids SOCs turn out to have a bug
        that has security implications.
      
        Both of these accelerators work by the application submitting a 64
        byte command to the device; this command contains an opcode as well as
        the virtual address of the return value that the device will update on
        completion... and a set of opcode specific values.
      
        In a typical scenario a ring 3 application mmaps the device file and
        uses the ENQCMD or MOVDIR64 instructions (which are variations of a 64
        byte atomic write) on this mmap'd memory region to directly submit
        commands to a device hardware.
      
        The return value as specified in the command, is supposed to be 32 (or
        64) bytes aligned in memory, and generally the hardware checks and
        enforces this alignment.
      
        However in testing it has been found that there are conditions
        (controlled by the submitter) where this enforcement does not
        happen... which makes it possible for the return value to span a page
        boundary. And this is where it goes wrong - the accelerators will
        perform the virtual to physical address lookup on the first of the two
        pages, but end up continue writing to the next consecutive physical
        (host) page rather than the consecutive virtual page. In addition, the
        device will end up in a hung state on such unaligned write of the
        return value.
      
        This patch series has the proposed software side solution consisting
        of three parts:
      
         - Don't allow these two PCI devices to be assigned to VM guests (we
           cannot trust a VM guest to behave correctly and not cause this
           condition)
      
         - Don't allow ring 3 applications to set up the mmap unless they have
           CAP_SYS_RAWIO permissions. This makes it no longer possible for
           non-root applications to directly submit commands to the
           accelerator
      
         - Add a write() method to the device so that an application can
           submit its commands to the kernel driver, which performs the needed
           sanity checks before submitting it to the hardware.
      
        This switch from mmap to write is an incompatible interface change to
        non-root userspace, but we have not found a way to avoid this. All
        software we know of uses a small set of accessor libraries for these
        accelerators, for which libqpl and libdml (on github) are the most
        common. As part of the security release, updated versions of these
        libraries will be released that transparently fall back to write().
      
        Intel has assigned CVE-2024-21823 to this hardware issue"
      
      * tag 'idxd-for-linus-may2024' of git bundle from Arjan:
        dmaengine: idxd: add a write() method for applications to submit work
        dmaengine: idxd: add a new security check to deal with a hardware erratum
        VFIO: Add the SPR_DSA and SPR_IAX devices to the denylist
      796aec4a
    • Linus Torvalds's avatar
      Merge tag 'x86-shstk-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a5131c3f
      Linus Torvalds authored
      Pull x86 shadow stacks from Ingo Molnar:
       "Enable shadow stacks for x32.
      
        While we normally don't do such feature-enabling for 32-bit anymore,
        this change is small, straightforward & tested on upstream glibc"
      
      * tag 'x86-shstk-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/shstk: Enable shadow stacks for x32
      a5131c3f
    • Linus Torvalds's avatar
      Merge tag 'x86-platform-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5f487cd8
      Linus Torvalds authored
      Pull x86 platform updates from Ingo Molnar:
      
       - Improve the DeviceTree (OF) NUMA enumeration code to address
         kernel warnings & mis-mappings on DeviceTree platforms
      
       - Migrate x86 platform drivers to the .remove_new callback API
      
       - Misc cleanups & fixes
      
      * tag 'x86-platform-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/platform/olpc-xo1-sci: Convert to platform remove callback returning void
        x86/platform/olpc-x01-pm: Convert to platform remove callback returning void
        x86/platform/iris: Convert to platform remove callback returning void
        x86/of: Change x86_dtb_parse_smp_config() to static
        x86/of: Map NUMA node to CPUs as per DeviceTree
        x86/of: Set the parse_smp_cfg for all the DeviceTree platforms by default
        x86/hyperv/vtl: Correct x86_init.mpparse.parse_smp_cfg assignment
      5f487cd8
    • Linus Torvalds's avatar
      Merge tag 'x86-percpu-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e76f69b9
      Linus Torvalds authored
      Pull x86 percpu updates from Ingo Molnar:
      
       - Expand the named address spaces optimizations down to
         GCC 9.1+.
      
       - Re-enable named address spaces with sanitizers for GCC 13.3+
      
       - Generate better this_percpu_xchg_op() code
      
       - Introduce raw_cpu_read_long() to reduce ifdeffery
      
       - Simplify the x86_this_cpu_test_bit() et al macros
      
       - Address Sparse warnings
      
       - Misc cleanups & fixes
      
      * tag 'x86-percpu-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/percpu: Introduce raw_cpu_read_long() to reduce ifdeffery
        x86/percpu: Rewrite x86_this_cpu_test_bit() and friends as macros
        x86/percpu: Fix x86_this_cpu_variable_test_bit() asm template
        x86/percpu: Re-enable named address spaces with sanitizers for GCC 13.3+
        x86/percpu: Use __force to cast from __percpu address space
        x86/percpu: Do not use this_cpu_read_stable_8() for 32-bit targets
        x86/percpu: Unify arch_raw_cpu_ptr() defines
        x86/percpu: Enable named address spaces for GCC 9.1+
        x86/percpu: Re-enable named address spaces with KASAN for GCC 13.3+
        x86/percpu: Move raw_percpu_xchg_op() to a better place
        x86/percpu: Convert this_percpu_xchg_op() from asm() to C code, to generate better code
      e76f69b9
    • Linus Torvalds's avatar
      Merge tag 'x86-mm-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · eabb6297
      Linus Torvalds authored
      Pull x86 mm updates from Ingo Molnar:
      
       - Fix W^X violation check false-positives in the CPA code
         when running as a Xen PV guest
      
       - Fix W^X violation warning false-positives in show_fault_oops()
      
      * tag 'x86-mm-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/pat: Fix W^X violation false-positives when running as Xen PV guest
        x86/pat: Restructure _lookup_address_cpa()
        x86/mm: Use lookup_address_in_pgd_attr() in show_fault_oops()
        x86/pat: Introduce lookup_address_in_pgd_attr()
      eabb6297
    • Linus Torvalds's avatar
      Merge tag 'x86-fpu-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 963795f7
      Linus Torvalds authored
      Pull x86 fpu updates from Ingo Molnar:
      
       - Fix asm() constraints & modifiers in restore_fpregs_from_fpstate()
      
       - Update comments
      
       - Robustify the free_vm86() definition
      
      * tag 'x86-fpu-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/fpu: Update fpu_swap_kvm_fpu() uses in comments as well
        x86/vm86: Make sure the free_vm86(task) definition uses its parameter even in the !CONFIG_VM86 case
        x86/fpu: Fix AMD X86_BUG_FXSAVE_LEAK fixup
      963795f7
    • Linus Torvalds's avatar
      Merge tag 'x86-entry-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 31a568b5
      Linus Torvalds authored
      Pull x86 entry cleanup from Ingo Molnar:
      
       - Merge thunk_64.S and thunk_32.S into thunk.S
      
      * tag 'x86-entry-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/entry: Merge thunk_64.S and thunk_32.S into thunk.S
      31a568b5
    • Linus Torvalds's avatar
      Merge tag 'x86-cpu-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ecd83bcb
      Linus Torvalds authored
      Pull x86 cpu updates from Ingo Molnar:
      
       - Rework the x86 CPU vendor/family/model code: introduce the 'VFM'
         value that is an 8+8+8 bit concatenation of the vendor/family/model
         value, and add macros that work on VFM values. This simplifies the
         addition of new Intel models & families, and simplifies existing
         enumeration & quirk code.
      
       - Add support for the AMD 0x80000026 leaf, to better parse topology
         information
      
       - Optimize the NUMA allocation layout of more per-CPU data structures
      
       - Improve the workaround for AMD erratum 1386
      
       - Clear TME from /proc/cpuinfo as well, when disabled by the firmware
      
       - Improve x86 self-tests
      
       - Extend the mce_record tracepoint with the ::ppin and ::microcode fields
      
       - Implement recovery for MCE errors in TDX/SEAM non-root mode
      
       - Misc cleanups and fixes
      
      * tag 'x86-cpu-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits)
        x86/mm: Switch to new Intel CPU model defines
        x86/tsc_msr: Switch to new Intel CPU model defines
        x86/tsc: Switch to new Intel CPU model defines
        x86/cpu: Switch to new Intel CPU model defines
        x86/resctrl: Switch to new Intel CPU model defines
        x86/microcode/intel: Switch to new Intel CPU model defines
        x86/mce: Switch to new Intel CPU model defines
        x86/cpu: Switch to new Intel CPU model defines
        x86/cpu/intel_epb: Switch to new Intel CPU model defines
        x86/aperfmperf: Switch to new Intel CPU model defines
        x86/apic: Switch to new Intel CPU model defines
        perf/x86/msr: Switch to new Intel CPU model defines
        perf/x86/intel/uncore: Switch to new Intel CPU model defines
        perf/x86/intel/pt: Switch to new Intel CPU model defines
        perf/x86/lbr: Switch to new Intel CPU model defines
        perf/x86/intel/cstate: Switch to new Intel CPU model defines
        x86/bugs: Switch to new Intel CPU model defines
        x86/bugs: Switch to new Intel CPU model defines
        x86/cpu/vfm: Update arch/x86/include/asm/intel-family.h
        x86/cpu/vfm: Add new macros to work with (vendor/family/model) values
        ...
      ecd83bcb
    • Linus Torvalds's avatar
      Merge tag 'x86-cleanups-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c4273a66
      Linus Torvalds authored
      Pull x86 cleanups from Ingo Molnar:
      
       - Fix function prototypes to address clang function type cast
         warnings in the math-emu code
      
       - Reorder definitions in <asm/msr-index.h>
      
       - Remove unused code
      
       - Fix typos
      
       - Simplify #include sections
      
      * tag 'x86-cleanups-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/pci/ce4100: Remove unused 'struct sim_reg_op'
        x86/msr: Move ARCH_CAP_XAPIC_DISABLE bit definition to its rightful place
        x86/math-emu: Fix function cast warnings
        x86/extable: Remove unused fixup type EX_TYPE_COPY
        x86/rtc: Remove unused intel-mid.h
        x86/32: Remove unused IA32_STACK_TOP and two externs
        x86/head: Simplify relative include path to xen-head.S
        x86/fred: Fix typo in Kconfig description
        x86/syscall/compat: Remove ia32_unistd.h
        x86/syscall/compat: Remove unused macro __SYSCALL_ia32_NR
        x86/virt/tdx: Remove duplicate include
        x86/xen: Remove duplicate #include
      c4273a66
    • Linus Torvalds's avatar
      Merge tag 'x86-build-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d71ec0ed
      Linus Torvalds authored
      Pull x86 build updates from Ingo Molnar:
      
       - Use -fpic to build the kexec 'purgatory' (the self-contained
         code that runs between two kernels)
      
       - Clean up vmlinux.lds.S generation
      
       - Simplify the X86_EXTENDED_PLATFORM section of the x86 Kconfig
      
       - Misc cleanups & fixes
      
      * tag 'x86-build-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/Kconfig: Merge the two CONFIG_X86_EXTENDED_PLATFORM entries
        x86/purgatory: Switch to the position-independent small code model
        x86/boot: Replace __PHYSICAL_START with LOAD_PHYSICAL_ADDR
        x86/vmlinux.lds.S: Take __START_KERNEL out conditional definition
        x86/vmlinux.lds.S: Remove conditional definition of LOAD_OFFSET
        vmlinux.lds.h: Fix a typo in comment
      d71ec0ed
    • Linus Torvalds's avatar
      Merge tag 'x86-bugs-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7e359145
      Linus Torvalds authored
      Pull x86 oops message cleanup from Ingo Molnar:
      
       - Use uniform "Oops: " prefix for die() messages
      
      * tag 'x86-bugs-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/dumpstack: Use uniform "Oops: " prefix for die() messages
      7e359145
    • Linus Torvalds's avatar
      Merge tag 'x86-boot-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9d8e0d52
      Linus Torvalds authored
      Pull x86 boot updates from Ingo Molnar:
      
       - Move the kernel cmdline setup earlier in the boot process (again),
         to address a split_lock_detect= boot parameter bug
      
       - Ignore relocations in .notes sections
      
       - Simplify boot stack setup
      
       - Re-introduce a bootloader quirk wrt CR4 handling
      
       - Miscellaneous cleanups & fixes
      
      * tag 'x86-boot-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot/64: Clear most of CR4 in startup_64(), except PAE, MCE and LA57
        x86/boot: Move kernel cmdline setup earlier in the boot process (again)
        x86/build: Clean up arch/x86/tools/relocs.c a bit
        x86/boot: Ignore relocations in .notes sections in walk_relocs() too
        x86: Rename __{start,end}_init_task to __{start,end}_init_stack
        x86/boot: Simplify boot stack setup
      9d8e0d52
    • Linus Torvalds's avatar
      Merge tag 'x86-asm-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d791a4da
      Linus Torvalds authored
      Pull x86 asm updates from Ingo Molnar:
      
       - Clean up & fix asm() operand modifiers & constraints
      
       - Misc cleanups
      
      * tag 'x86-asm-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/alternatives: Remove a superfluous newline in _static_cpu_has()
        x86/asm/64: Clean up memset16(), memset32(), memset64() assembly constraints in <asm/string_64.h>
        x86/asm: Use "m" operand constraint in WRUSSQ asm template
        x86/asm: Use %a instead of %P operand modifier in asm templates
        x86/asm: Use %c/%n instead of %P operand modifier in asm templates
        x86/asm: Remove %P operand modifier from altinstr asm templates
      d791a4da
    • Linus Torvalds's avatar
      Merge tag 'x86-misc-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 019040fb
      Linus Torvalds authored
      Pull tip tree documentation update from Ingo Molnar:
      
       - Update the -tip maintainers merge policy document wrt
         merge window timing
      
      * tag 'x86-misc-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Documentation/maintainer-tip: Clarify merge window policy
      019040fb
    • Linus Torvalds's avatar
      Merge tag 'sched-core-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6e5a0c30
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
      
       - Add cpufreq pressure feedback for the scheduler
      
       - Rework misfit load-balancing wrt affinity restrictions
      
       - Clean up and simplify the code around ::overutilized and
         ::overload access.
      
       - Simplify sched_balance_newidle()
      
       - Bump SCHEDSTAT_VERSION to 16 due to a cleanup of CPU_MAX_IDLE_TYPES
         handling that changed the output.
      
       - Rework & clean up <asm/vtime.h> interactions wrt arch_vtime_task_switch()
      
       - Reorganize, clean up and unify most of the higher level
         scheduler balancing function names around the sched_balance_*()
         prefix
      
       - Simplify the balancing flag code (sched_balance_running)
      
       - Miscellaneous cleanups & fixes
      
      * tag 'sched-core-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (50 commits)
        sched/pelt: Remove shift of thermal clock
        sched/cpufreq: Rename arch_update_thermal_pressure() => arch_update_hw_pressure()
        thermal/cpufreq: Remove arch_update_thermal_pressure()
        sched/cpufreq: Take cpufreq feedback into account
        cpufreq: Add a cpufreq pressure feedback for the scheduler
        sched/fair: Fix update of rd->sg_overutilized
        sched/vtime: Do not include <asm/vtime.h> header
        s390/irq,nmi: Include <asm/vtime.h> header directly
        s390/vtime: Remove unused __ARCH_HAS_VTIME_TASK_SWITCH leftover
        sched/vtime: Get rid of generic vtime_task_switch() implementation
        sched/vtime: Remove confusing arch_vtime_task_switch() declaration
        sched/balancing: Simplify the sg_status bitmask and use separate ->overloaded and ->overutilized flags
        sched/fair: Rename set_rd_overutilized_status() to set_rd_overutilized()
        sched/fair: Rename SG_OVERLOAD to SG_OVERLOADED
        sched/fair: Rename {set|get}_rd_overload() to {set|get}_rd_overloaded()
        sched/fair: Rename root_domain::overload to ::overloaded
        sched/fair: Use helper functions to access root_domain::overload
        sched/fair: Check root_domain::overload value before update
        sched/fair: Combine EAS check with root_domain::overutilized access
        sched/fair: Simplify the continue_balancing logic in sched_balance_newidle()
        ...
      6e5a0c30
    • Linus Torvalds's avatar
      Merge tag 'perf-core-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 17ca7fc2
      Linus Torvalds authored
      Pull perf events updates from Ingo Molnar:
      
       - Combine perf and BPF for fast evalution of HW breakpoint
         conditions
      
       - Add LBR capture support outside of hardware events
      
       - Trigger IO signals for watermark_wakeup
      
       - Add RAPL support for Intel Arrow Lake and Lunar Lake
      
       - Optimize frequency-throttling
      
       - Miscellaneous cleanups & fixes
      
      * tag 'perf-core-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
        perf/bpf: Mark perf_event_set_bpf_handler() and perf_event_free_bpf_handler() as inline too
        selftests/perf_events: Test FASYNC with watermark wakeups
        perf/ring_buffer: Trigger IO signals for watermark_wakeup
        perf: Move perf_event_fasync() to perf_event.h
        perf/bpf: Change the !CONFIG_BPF_SYSCALL stubs to static inlines
        selftest/bpf: Test a perf BPF program that suppresses side effects
        perf/bpf: Allow a BPF program to suppress all sample side effects
        perf/bpf: Remove unneeded uses_default_overflow_handler()
        perf/bpf: Call BPF handler directly, not through overflow machinery
        perf/bpf: Remove #ifdef CONFIG_BPF_SYSCALL from struct perf_event members
        perf/bpf: Create bpf_overflow_handler() stub for !CONFIG_BPF_SYSCALL
        perf/bpf: Reorder bpf_overflow_handler() ahead of __perf_event_overflow()
        perf/x86/rapl: Add support for Intel Lunar Lake
        perf/x86/rapl: Add support for Intel Arrow Lake
        perf/core: Reduce PMU access to adjust sample freq
        perf/core: Optimize perf_adjust_freq_unthr_context()
        perf/x86/amd: Don't reject non-sampling events with configured LBR
        perf/x86/amd: Support capturing LBR from software events
        perf/x86/amd: Avoid taking branches before disabling LBR
        perf/x86/amd: Ensure amd_pmu_core_disable_all() is always inlined
        ...
      17ca7fc2
    • Linus Torvalds's avatar
      Merge tag 'locking-core-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 48fc82c4
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
      
       - Over a dozen code generation micro-optimizations for the atomic
         and spinlock code
      
       - Add more __ro_after_init attributes
      
       - Robustify the lockdevent_*() macros
      
      * tag 'locking-core-2024-05-13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/pvqspinlock/x86: Use _Q_LOCKED_VAL in PV_UNLOCK_ASM macro
        locking/qspinlock/x86: Micro-optimize virt_spin_lock()
        locking/atomic/x86: Merge __arch{,_try}_cmpxchg64_emu_local() with __arch{,_try}_cmpxchg64_emu()
        locking/atomic/x86: Introduce arch_try_cmpxchg64_local()
        locking/pvqspinlock/x86: Remove redundant CMP after CMPXCHG in __raw_callee_save___pv_queued_spin_unlock()
        locking/pvqspinlock: Use try_cmpxchg() in qspinlock_paravirt.h
        locking/pvqspinlock: Use try_cmpxchg_acquire() in trylock_clear_pending()
        locking/qspinlock: Use atomic_try_cmpxchg_relaxed() in xchg_tail()
        locking/atomic/x86: Define arch_atomic_sub() family using arch_atomic_add() functions
        locking/atomic/x86: Rewrite x86_32 arch_atomic64_{,fetch}_{and,or,xor}() functions
        locking/atomic/x86: Introduce arch_atomic64_read_nonatomic() to x86_32
        locking/atomic/x86: Introduce arch_atomic64_try_cmpxchg() to x86_32
        locking/atomic/x86: Introduce arch_try_cmpxchg64() for !CONFIG_X86_CMPXCHG64
        locking/atomic/x86: Modernize x86_32 arch_{,try_}_cmpxchg64{,_local}()
        locking/atomic/x86: Correct the definition of __arch_try_cmpxchg128()
        x86/tsc: Make __use_tsc __ro_after_init
        x86/kvm: Make kvm_async_pf_enabled __ro_after_init
        context_tracking: Make context_tracking_key __ro_after_init
        jump_label,module: Don't alloc static_key_mod for __ro_after_init keys
        locking/qspinlock: Always evaluate lockevent* non-event parameter once
      48fc82c4
  2. 13 May, 2024 3 commits
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-firmware-for-v6.10' of... · a7c840ba
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-firmware-for-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform firmware updates from Tzung-Bi Shih:
      
       - Set driver owner in the core registration so that coreboot drivers
         don't need to set it individually
      
      * tag 'tag-chrome-platform-firmware-for-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
        firmware: google: cbmem: drop driver owner initialization
        firmware: coreboot: store owner from modules with coreboot_driver_register()
      a7c840ba
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-for-v6.10' of... · 59729c8a
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-for-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform updates from Tzung-Bi Shih:
       "New:
         - Support Framework Laptop 13 and 16 (AMD Ryzen)
      
        Improvements:
         - Use sysfs_emit() instead of sprintf() for sysfs' show()
      
        Fixes:
         - Fix flex-array-member-not-at-end compiler warnings by using
           DEFINE_RAW_FLEX()
         - Add HAS_IOPORT dependencies
         - Fix long pending events during suspend after resume
      
        Misc cleanups:
         - Provide ID tables for avoiding fallback match
         - Replace deprecated UNIVERSAL_DEV_PM_OPS()"
      
      * tag 'tag-chrome-platform-for-v6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux: (22 commits)
        platform/chrome: cros_ec: Handle events during suspend after resume completion
        platform/chrome: cros_ec_lpc: add quirks for the Framework Laptop (AMD)
        platform/chrome: cros_ec_lpc: add a "quirks" system
        platform/chrome: cros_ec_lpc: pass driver_data from DMI to the device
        platform/chrome: cros_ec_lpc: introduce a priv struct for the lpc device
        platform/chrome: add HAS_IOPORT dependencies
        platform/chrome: cros_hps_i2c: Replace deprecated UNIVERSAL_DEV_PM_OPS()
        platform/chrome: cros_kbd_led_backlight: provide ID table for avoiding fallback match
        platform/chrome: wilco_ec: core: provide ID table for avoiding fallback match
        platform/chrome: wilco_ec: event: remove redundant MODULE_ALIAS
        platform/chrome: wilco_ec: debugfs: provide ID table for avoiding fallback match
        platform/chrome: wilco_ec: telemetry: provide ID table for avoiding fallback match
        platform/chrome: cros_ec_vbc: provide ID table for avoiding fallback match
        platform/chrome: cros_ec_lightbar: provide ID table for avoiding fallback match
        platform/chrome: cros_ec_sysfs: provide ID table for avoiding fallback match
        platform/chrome: cros_ec_debugfs: provide ID table for avoiding fallback match
        platform/chrome: cros_ec_chardev: provide ID table for avoiding fallback match
        platform/chrome: cros_usbpd_notify: provide ID table for avoiding fallback match
        platform/chrome: cros_usbpd_logger: provide ID table for avoiding fallback match
        platform/chrome: cros_ec_sensorhub: provide ID table for avoiding fallback match
        ...
      59729c8a
    • Linus Torvalds's avatar
      Merge tag 'rust-6.10' of https://github.com/Rust-for-Linux/linux · 8f5b5f78
      Linus Torvalds authored
      Pull Rust updates from Miguel Ojeda:
       "The most notable change is the drop of the 'alloc' in-tree fork. This
        is nicely reflected in the diffstat as a ~10k lines drop. In turn,
        this makes the version upgrades way simpler and smaller in the future,
        e.g. the latest one in commit 56f64b37 ("rust: upgrade to Rust
        1.78.0").
      
        More importantly, this increases the chances that a newer compiler
        version just works, which in turn means supporting several compiler
        versions is easier now. Thus we will look into finally setting a
        minimum version in the near future.
      
        Toolchain and infrastructure:
      
         - Upgrade to Rust 1.78.0
      
           This time around, due to how the kernel and Rust schedules have
           aligned, there are two upgrades in fact. These allow us to remove
           one more unstable feature ('offset_of') from the list, among other
           improvements
      
         - Drop 'alloc' in-tree fork of the standard library crate, which
           means all the unstable features used by 'alloc' (~30 language ones,
           ~60 library ones) are not a concern anymore
      
         - Support DWARFv5 via the '-Zdwarf-version' flag
      
         - Support zlib and zstd debuginfo compression via the
           '-Zdebuginfo-compression' flag
      
        'kernel' crate:
      
         - Support allocation flags ('GFP_*'), particularly in 'Box' (via
           'BoxExt'), 'Vec' (via 'VecExt'), 'Arc' and 'UniqueArc', as well as
           in the 'init' module APIs
      
         - Remove usage of the 'allocator_api' unstable feature
      
         - Remove 'try_' prefix in allocation APIs' names
      
         - Add 'VecExt' (an extension trait) to be able to drop the 'alloc'
           fork
      
         - Add the '{make,to}_{upper,lower}case()' methods to 'CStr'/'CString'
      
         - Add the 'as_ptr' method to 'ThisModule'
      
         - Add the 'from_raw' method to 'ArcBorrow'
      
         - Add the 'into_unique_or_drop' method to 'Arc'
      
         - Display column number in the 'dbg!' macro output by applying the
           equivalent change done to the standard library one
      
         - Migrate 'Work' to '#[pin_data]' thanks to the changes in the
           'macros' crate, which allows to remove an unsafe call in its 'new'
           associated function
      
         - Prevent namespacing issues when using the '[try_][pin_]init!'
           macros by changing the generated name of guard variables
      
         - Make the 'get' method in 'Opaque' const
      
         - Implement the 'Default' trait for 'LockClassKey'
      
         - Remove unneeded 'kernel::prelude' imports from doctests
      
         - Remove redundant imports
      
        'macros' crate:
      
         - Add 'decl_generics' to 'parse_generics()' to support default
           values, and use that to allow them in '#[pin_data]'
      
        Helpers:
      
         - Trivial English grammar fix
      
        Documentation:
      
         - Add section on Rust Kselftests to the 'Testing' document
      
         - Expand the 'Abstractions vs. bindings' section of the 'General
           Information' document"
      
      * tag 'rust-6.10' of https://github.com/Rust-for-Linux/linux: (31 commits)
        rust: alloc: fix dangling pointer in VecExt<T>::reserve()
        rust: upgrade to Rust 1.78.0
        rust: kernel: remove redundant imports
        rust: sync: implement `Default` for `LockClassKey`
        docs: rust: extend abstraction and binding documentation
        docs: rust: Add instructions for the Rust kselftest
        rust: remove unneeded `kernel::prelude` imports from doctests
        rust: update `dbg!()` to format column number
        rust: helpers: Fix grammar in comment
        rust: init: change the generated name of guard variables
        rust: sync: add `Arc::into_unique_or_drop`
        rust: sync: add `ArcBorrow::from_raw`
        rust: types: Make Opaque::get const
        rust: kernel: remove usage of `allocator_api` unstable feature
        rust: init: update `init` module to take allocation flags
        rust: sync: update `Arc` and `UniqueArc` to take allocation flags
        rust: alloc: update `VecExt` to take allocation flags
        rust: alloc: introduce the `BoxExt` trait
        rust: alloc: introduce allocation flags
        rust: alloc: remove our fork of the `alloc` crate
        ...
      8f5b5f78