Skip to content
Snippets Groups Projects
  1. Mar 26, 2025
    • Linus Torvalds's avatar
      Merge tag 'crc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux · ee6740fd
      Linus Torvalds authored
      Pull CRC updates from Eric Biggers:
       "Another set of improvements to the kernel's CRC (cyclic redundancy
        check) code:
      
         - Rework the CRC64 library functions to be directly optimized, like
           what I did last cycle for the CRC32 and CRC-T10DIF library
           functions
      
         - Rewrite the x86 PCLMULQDQ-optimized CRC code, and add VPCLMULQDQ
           support and acceleration for crc64_be and crc64_nvme
      
         - Rewrite the riscv Zbc-optimized CRC code, and add acceleration for
           crc_t10dif, crc64_be, and crc64_nvme
      
         - Remove crc_t10dif and crc64_rocksoft from the crypto API, since
           they are no longer needed there
      
         - Rename crc64_rocksoft to crc64_nvme, as the old name was incorrect
      
         - Add kunit test cases for crc64_nvme and crc7
      
         - Eliminate redundant functions for calculating the Castagnoli CRC32,
           settling on just crc32c()
      
         - Remove unnecessary prompts from some of the CRC kconfig options
      
         - Further optimize the x86 crc32c code"
      
      * tag 'crc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux: (36 commits)
        x86/crc: drop the avx10_256 functions and rename avx10_512 to avx512
        lib/crc: remove unnecessary prompt for CONFIG_CRC64
        lib/crc: remove unnecessary prompt for CONFIG_LIBCRC32C
        lib/crc: remove unnecessary prompt for CONFIG_CRC8
        lib/crc: remove unnecessary prompt for CONFIG_CRC7
        lib/crc: remove unnecessary prompt for CONFIG_CRC4
        lib/crc7: unexport crc7_be_syndrome_table
        lib/crc_kunit.c: update comment in crc_benchmark()
        lib/crc_kunit.c: add test and benchmark for crc7_be()
        x86/crc32: optimize tail handling for crc32c short inputs
        riscv/crc64: add Zbc optimized CRC64 functions
        riscv/crc-t10dif: add Zbc optimized CRC-T10DIF function
        riscv/crc32: reimplement the CRC32 functions using new template
        riscv/crc: add "template" for Zbc optimized CRC functions
        x86/crc: add ANNOTATE_NOENDBR to suppress objtool warnings
        x86/crc32: improve crc32c_arch() code generation with clang
        x86/crc64: implement crc64_be and crc64_nvme using new template
        x86/crc-t10dif: implement crc_t10dif using new template
        x86/crc32: implement crc32_le using new template
        x86/crc: add "template" for [V]PCLMULQDQ based CRC functions
        ...
      ee6740fd
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/linux · a86c6d0b
      Linus Torvalds authored
      Pull fscrypt updates from Eric Biggers:
       "A fix for an issue where CONFIG_FS_ENCRYPTION could be enabled without
        some of its dependencies, and a small documentation update"
      
      * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/linux:
        fscrypt: mention init_on_free instead of page poisoning
        fscrypt: drop obsolete recommendation to enable optimized ChaCha20
        Revert "fscrypt: relax Kconfig dependencies for crypto API algorithms"
      a86c6d0b
    • Linus Torvalds's avatar
      Merge tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fsverity/linux · bdab2977
      Linus Torvalds authored
      Pull fsverity updates from Eric Biggers:
       "A fix for an issue where CONFIG_FS_VERITY could be enabled without
        some of its dependencies, and a small documentation update"
      
      * tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fsverity/linux:
        Revert "fsverity: relax build time dependency on CRYPTO_SHA256"
        Documentation: add a usecase for FS_IOC_READ_VERITY_METADATA
      bdab2977
  2. Mar 25, 2025
    • Linus Torvalds's avatar
      Merge tag 'Smack-for-6.15' of https://github.com/cschaufler/smack-next · 61af143f
      Linus Torvalds authored
      Pull smack updates from Casey Schaufler:
       "This is a larger set of patches than usual, consisting of a set of
        build clean-ups, a rework of error handling in setting up CIPSO label
        specification and a bug fix in network labeling"
      
      * tag 'Smack-for-6.15' of https://github.com/cschaufler/smack-next:
        smack: recognize ipv4 CIPSO w/o categories
        smack: Revert "smackfs: Added check catlen"
        smack: remove /smack/logging if audit is not configured
        smack: ipv4/ipv6: tcp/dccp/sctp: fix incorrect child socket label
        smack: dont compile ipv6 code unless ipv6 is configured
        Smack: fix typos and spelling errors
      61af143f
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20250323' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · 59c017ce
      Linus Torvalds authored
      Pull selinux updates from Paul Moore:
      
       - Add additional SELinux access controls for kernel file reads/loads
      
         The SELinux kernel file read/load access controls were never updated
         beyond the initial kernel module support, this pull request adds
         support for firmware, kexec, policies, and x.509 certificates.
      
       - Add support for wildcards in network interface names
      
         There are a number of userspace tools which auto-generate network
         interface names using some pattern of <XXXX>-<NN> where <XXXX> is a
         fixed string, e.g. "podman", and <NN> is a increasing counter.
         Supporting wildcards in the SELinux policy for network interfaces
         simplifies the policy associted with these interfaces.
      
       - Fix a potential problem in the kernel read file SELinux code
      
         SELinux should always check the file label in the
         security_kernel_read_file() LSM hook, regardless of if the file is
         being read in chunks. Unfortunately, the existing code only
         considered the file label on the first chunk; this pull request fixes
         this problem.
      
         There is more detail in the individual commit, but thankfully the
         existing code didn't expose a bug due to multi-stage reads only
         taking place in one driver, and that driver loading a file type that
         isn't targeted by the SELinux policy.
      
       - Fix the subshell error handling in the example policy loader
      
         Minor fix to SELinux example policy loader in scripts/selinux due to
         an undesired interaction with subshells and errexit.
      
      * tag 'selinux-pr-20250323' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        selinux: get netif_wildcard policycap from policy instead of cache
        selinux: support wildcard network interface names
        selinux: Chain up tool resolving errors in install_policy.sh
        selinux: add permission checks for loading other kinds of kernel files
        selinux: always check the file label in selinux_kernel_read_file()
        selinux: fix spelling error
      59c017ce
    • Linus Torvalds's avatar
      Merge tag 'lsm-pr-20250323' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm · 05457026
      Linus Torvalds authored
      Pull lsm updates from Paul Moore:
      
       - Various minor updates to the LSM Rust bindings
      
         Changes include marking trivial Rust bindings as inlines and comment
         tweaks to better reflect the LSM hooks.
      
       - Add LSM/SELinux access controls to io_uring_allowed()
      
         Similar to the io_uring_disabled sysctl, add a LSM hook to
         io_uring_allowed() to enable LSMs a simple way to enforce security
         policy on the use of io_uring. This pull request includes SELinux
         support for this new control using the io_uring/allowed permission.
      
       - Remove an unused parameter from the security_perf_event_open() hook
      
         The perf_event_attr struct parameter was not used by any currently
         supported LSMs, remove it from the hook.
      
       - Add an explicit MAINTAINERS entry for the credentials code
      
         We've seen problems in the past where patches to the credentials code
         sent by non-maintainers would often languish on the lists for
         multiple months as there was no one explicitly tasked with the
         responsibility of reviewing and/or merging credentials related code.
      
         Considering that most of the code under security/ has a vested
         interest in ensuring that the credentials code is well maintained,
         I'm volunteering to look after the credentials code and Serge Hallyn
         has also volunteered to step up as an official reviewer. I posted the
         MAINTAINERS update as a RFC to LKML in hopes that someone else would
         jump up with an "I'll do it!", but beyond Serge it was all crickets.
      
       - Update Stephen Smalley's old email address to prevent confusion
      
         This includes a corresponding update to the mailmap file.
      
      * tag 'lsm-pr-20250323' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm:
        mailmap: map Stephen Smalley's old email addresses
        lsm: remove old email address for Stephen Smalley
        MAINTAINERS: add Serge Hallyn as a credentials reviewer
        MAINTAINERS: add an explicit credentials entry
        cred,rust: mark Credential methods inline
        lsm,rust: reword "destroy" -> "release" in SecurityCtx
        lsm,rust: mark SecurityCtx methods inline
        perf: Remove unnecessary parameter of security check
        lsm: fix a missing security_uring_allowed() prototype
        io_uring,lsm,selinux: add LSM hooks for io_uring_setup()
        io_uring: refactor io_uring_allowed()
      05457026
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · b3c623b9
      Linus Torvalds authored
      Pull thermal control updates from Rafael Wysocki:
       "These include one thermal core fix for an issue leading to a NULL
        pointer dereference, a similar fix for the int340x thermal driver
        (even though the issue may not actually occur in practice in this
        particular case), and a bunch of cleanups, mostly related to replacing
        kzalloc() with kcalloc() where applicable.
      
        Summary:
      
         - Delay exposing thermal zone sysfs interface to prevent user space
           from accessing thermal zones that have not been completely
           initialized yet (Lucas De Marchi)
      
         - Check a pointer against NULL early in int3402_thermal_probe() to
           avoid a potential NULL pointer dereference (Chenyuan Yang)
      
         - Use kcalloc() instead of kzalloc() in some places in the thermal
           control subsystem (Lukasz Luba, Ethan Carter Edwards)
      
         - Fix a spelling mistake in a comment in the thermal core (Colin Ian
           King)
      
         - Clean up variable initialization in int340x_thermal_zone_add()
           (Christophe JAILLET)"
      
      * tag 'thermal-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        thermal: int340x: Add NULL check for adev
        thermal: core: Delay exposing sysfs interface
        thermal: core: Fix spelling mistake "Occurences" -> "Occurrences"
        thermal: intel: Clean up zone_trips[] initialization in int340x_thermal_zone_add()
        thermal: hisi: Use kcalloc() instead of kzalloc() with multiplication
        thermal: int340x: Use kcalloc() instead of kzalloc() with multiplication
        thermal: k3_j72xx_bandgap: Use kcalloc() instead of kzalloc()
        thermal/of: Use kcalloc() instead of kzalloc() with multiplication
        thermal/debugfs: replace kzalloc() with kcalloc() in thermal_debug_tz_add()
      b3c623b9
    • Linus Torvalds's avatar
      Merge tag 'pm-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 7d20aa5c
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These are dominated by cpufreq updates which in turn are dominated by
        updates related to boost support in the core and drivers and
        amd-pstate driver optimizations.
      
        Apart from the above, there are some cpuidle updates including a
        rework of the most recent idle intervals handling in the venerable
        menu governor that leads to significant improvements in some
        performance benchmarks, as the governor is now more likely to predict
        a shorter idle duration in some cases, and there are updates of the
        core device power management code, mostly related to system suspend
        and resume, that should help to avoid potential issues arising when
        the drivers of devices depending on one another want to use different
        optimizations.
      
        There is also a usual collection of assorted fixes and cleanups,
        including removal of some unused code.
      
        Specifics:
      
         - Manage sysfs attributes and boost frequencies efficiently from
           cpufreq core to reduce boilerplate code in drivers (Viresh Kumar)
      
         - Minor cleanups to cpufreq drivers (Aaron Kling, Benjamin Schneider,
           Dhananjay Ugwekar, Imran Shaik, zuoqian)
      
         - Migrate some cpufreq drivers to using for_each_present_cpu() (Jacky
           Bai)
      
         - cpufreq-qcom-hw DT binding fixes (Krzysztof Kozlowski)
      
         - Use str_enable_disable() helper in cpufreq_online() (Lifeng Zheng)
      
         - Optimize the amd-pstate driver to avoid cases where call paths end
           up calling the same writes multiple times and needlessly caching
           variables through code reorganization, locking overhaul and tracing
           adjustments (Mario Limonciello, Dhananjay Ugwekar)
      
         - Make it possible to avoid enabling capacity-aware scheduling (CAS)
           in the intel_pstate driver and relocate a check for out-of-band
           (OOB) platform handling in it to make it detect OOB before checking
           HWP availability (Rafael Wysocki)
      
         - Fix dbs_update() to avoid inadvertent conversions of negative
           integer values to unsigned int which causes CPU frequency selection
           to be inaccurate in some cases when the "conservative" cpufreq
           governor is in use (Jie Zhan)
      
         - Update the handling of the most recent idle intervals in the menu
           cpuidle governor to prevent useful information from being discarded
           by it in some cases and improve the prediction accuracy (Rafael
           Wysocki)
      
         - Make it possible to tell the intel_idle driver to ignore its
           built-in table of idle states for the given processor, clean up the
           handling of auto-demotion disabling on Baytrail and Cherrytrail
           chips in it, and update its MAINTAINERS entry (David Arcari, Artem
           Bityutskiy, Rafael Wysocki)
      
         - Make some cpuidle drivers use for_each_present_cpu() instead of
           for_each_possible_cpu() during initialization to avoid issues
           occurring when nosmp or maxcpus=0 are used (Jacky Bai)
      
         - Clean up the Energy Model handling code somewhat (Rafael Wysocki)
      
         - Use kfree_rcu() to simplify the handling of runtime Energy Model
           updates (Li RongQing)
      
         - Add an entry for the Energy Model framework to MAINTAINERS as
           properly maintained (Lukasz Luba)
      
         - Address RCU-related sparse warnings in the Energy Model code
           (Rafael Wysocki)
      
         - Remove ENERGY_MODEL dependency on SMP and allow it to be selected
           when DEVFREQ is set without CPUFREQ so it can be used on a wider
           range of systems (Jeson Gao)
      
         - Unify error handling during runtime suspend and runtime resume in
           the core to help drivers to implement more consistent runtime PM
           error handling (Rafael Wysocki)
      
         - Drop a redundant check from pm_runtime_force_resume() and rearrange
           documentation related to __pm_runtime_disable() (Rafael Wysocki)
      
         - Rework the handling of the "smart suspend" driver flag in the PM
           core to avoid issues hat may occur when drivers using it depend on
           some other drivers and clean up the related PM core code (Rafael
           Wysocki, Colin Ian King)
      
         - Fix the handling of devices with the power.direct_complete flag set
           if device_suspend() returns an error for at least one device to
           avoid situations in which some of them may not be resumed (Rafael
           Wysocki)
      
         - Use mutex_trylock() in hibernate_compressor_param_set() to avoid a
           possible deadlock that may occur if the "compressor" hibernation
           module parameter is accessed during the registration of a new
           ieee80211 device (Lizhi Xu)
      
         - Suppress sleeping parent warning in device_pm_add() in the case
           when new children are added under a device with the
           power.direct_complete set after it has been processed by
           device_resume() (Xu Yang)
      
         - Remove needless return in three void functions related to system
           wakeup (Zijun Hu)
      
         - Replace deprecated kmap_atomic() with kmap_local_page() in the
           hibernation core code (David Reaver)
      
         - Remove unused helper functions related to system sleep (David Alan
           Gilbert)
      
         - Clean up s2idle_enter() so it does not lock and unlock CPU offline
           in vain and update comments in it (Ulf Hansson)
      
         - Clean up broken white space in dpm_wait_for_children() (Geert
           Uytterhoeven)
      
         - Update the cpupower utility to fix lib version-ing in it and memory
           leaks in error legs, remove hard-coded values, and implement CPU
           physical core querying (Thomas Renninger, John B. Wyatt IV, Shuah
           Khan, Yiwei Lin, Zhongqiu Han)"
      
      * tag 'pm-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (139 commits)
        PM: sleep: Fix bit masking operation
        dt-bindings: cpufreq: cpufreq-qcom-hw: Narrow properties on SDX75, SA8775p and SM8650
        dt-bindings: cpufreq: cpufreq-qcom-hw: Drop redundant minItems:1
        dt-bindings: cpufreq: cpufreq-qcom-hw: Add missing constraint for interrupt-names
        dt-bindings: cpufreq: cpufreq-qcom-hw: Add QCS8300 compatible
        cpufreq: Init cpufreq only for present CPUs
        PM: sleep: Fix handling devices with direct_complete set on errors
        cpuidle: Init cpuidle only for present CPUs
        PM: clk: Remove unused pm_clk_remove()
        PM: sleep: core: Fix indentation in dpm_wait_for_children()
        PM: s2idle: Extend comment in s2idle_enter()
        PM: s2idle: Drop redundant locks when entering s2idle
        PM: sleep: Remove unused pm_generic_ wrappers
        cpufreq: tegra186: Share policy per cluster
        cpupower: Make lib versioning scheme more obvious and fix version link
        PM: EM: Rework the depends on for CONFIG_ENERGY_MODEL
        PM: EM: Address RCU-related sparse warnings
        cpupower: Implement CPU physical core querying
        pm: cpupower: remove hard-coded topology depth values
        pm: cpupower: Fix cmd_monitor() error legs to free cpu_topology
        ...
      7d20aa5c
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 21e0ff5b
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "From the functional perspective, the most significant changes here are
        the ACPI fan driver update allowing it to handle fans with
        fine-grained state checking supported, but without fine-grained
        control, and the ACPI button driver update making it subscribe to
        system event notifications (in addition to device notifications) which
        on some systems is requisite for waking up the system from sleep.
      
        The rest is fixes and cleanups including removal of some dead code.
      
        Specifics:
      
         - Use the str_on_off() helper function instead of hard-coded strings
           in the ACPI power resources handling code (Thorsten Blum)
      
         - Add fan speed reporting for ACPI fans that have _FST, but otherwise
           do not support the entire ACPI 4 fan interface (Joshua Grisham)
      
         - Fix a stale comment regarding trip points in acpi_thermal_add()
           that diverged from the commented code after removing _CRT
           evaluation from acpi_thermal_get_trip_points() (xueqin Luo)
      
         - Make ACPI button driver also subscribe to system events (Mario
           Limonciello)
      
         - Use the str_yes_no() helper function instead of hard-coded strings
           in the ACPI backlight (video) driver (Thorsten Blum)
      
         - Add a missing header file include to the x86 arch CPPC code (Mario
           Limonciello)
      
         - Rework the sysfs attributes implementation in the ACPI
           platform-profile driver and improve the unregistration code in it
           (Nathan Chancellor, Kurt Borja)
      
         - Prevent the ACPI HED driver from being built as a module and change
           its initcall level to subsys_initcall to avoid initialization
           ordering issues related to it (Xiaofei Tan)
      
         - Update a maintainer email address in the ACPI PMIC entry in
           MAINTAINERS (Mika Westerberg)
      
         - Address a GCC 15's -Wunterminated-string-initialization warning in
           the core PNP subsystem code and remove some dead code from it (Kees
           Cook, David Alan Gilbert)"
      
      * tag 'acpi-6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PNP: Expand length of fixup id string
        PNP: Remove prehistoric deadcode
        ACPI: button: Install notifier for system events as well
        ACPI: fan: Add fan speed reporting for fans with only _FST
        ACPI: HED: Always initialize before evged
        x86/ACPI: CPPC: Add missing include
        ACPI: video: Use str_yes_no() helper in acpi_video_bus_add()
        ACPI: platform_profile: Improve platform_profile_unregister()
        ACPI: platform-profile: Fix CFI violation when accessing sysfs files
        ACPI: power: Use str_on_off() helper function
        ACPI: thermal: Fix stale comment regarding trip points
        MAINTAINERS: Use my kernel.org address for ACPI PMIC work
      21e0ff5b
    • Linus Torvalds's avatar
      Merge tag 'hyperv-next-signed-20250324' of... · a5b3d866
      Linus Torvalds authored
      Merge tag 'hyperv-next-signed-20250324' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux
      
      Pull hyperv updates from Wei Liu:
      
       - Add support for running as the root partition in Hyper-V (Microsoft
         Hypervisor) by exposing /dev/mshv (Nuno and various people)
      
       - Add support for CPU offlining in Hyper-V (Hamza Mahfooz)
      
       - Misc fixes and cleanups (Roman Kisel, Tianyu Lan, Wei Liu, Michael
         Kelley, Thorsten Blum)
      
      * tag 'hyperv-next-signed-20250324' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux: (24 commits)
        x86/hyperv: fix an indentation issue in mshyperv.h
        x86/hyperv: Add comments about hv_vpset and var size hypercall input args
        Drivers: hv: Introduce mshv_root module to expose /dev/mshv to VMMs
        hyperv: Add definitions for root partition driver to hv headers
        x86: hyperv: Add mshv_handler() irq handler and setup function
        Drivers: hv: Introduce per-cpu event ring tail
        Drivers: hv: Export some functions for use by root partition module
        acpi: numa: Export node_to_pxm()
        hyperv: Introduce hv_recommend_using_aeoi()
        arm64/hyperv: Add some missing functions to arm64
        x86/mshyperv: Add support for extended Hyper-V features
        hyperv: Log hypercall status codes as strings
        x86/hyperv: Fix check of return value from snp_set_vmsa()
        x86/hyperv: Add VTL mode callback for restarting the system
        x86/hyperv: Add VTL mode emergency restart callback
        hyperv: Remove unused union and structs
        hyperv: Add CONFIG_MSHV_ROOT to gate root partition support
        hyperv: Change hv_root_partition into a function
        hyperv: Convert hypercall statuses to linux error codes
        drivers/hv: add CPU offlining support
        ...
      a5b3d866
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.15-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · dce3ab4c
      Linus Torvalds authored
      Pull xen updates from Juergen Gross:
      
       - cleanup: remove an used function
      
       - add support for a XenServer specific virtual PCI device
      
       - fix the handling of a sparse Xen hypervisor symbol table
      
       - avoid warnings when building the kernel with gcc 15
      
       - fix use of devices behind a VMD bridge when running as a Xen PV dom0
      
      * tag 'for-linus-6.15-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        PCI/MSI: Convert pci_msi_ignore_mask to per MSI domain flag
        PCI: vmd: Disable MSI remapping bypass under Xen
        xen/pci: Do not register devices with segments >= 0x10000
        xen/pciback: Remove unused pcistub_get_pci_dev
        xenfs/xensyms: respect hypervisor's "next" indication
        xen/mcelog: Add __nonstring annotations for unterminated strings
        xen: Add support for XenServer 6.1 platform device
      dce3ab4c
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · edb0e8f6
      Linus Torvalds authored
      Pull kvm updates from Paolo Bonzini:
       "ARM:
      
         - Nested virtualization support for VGICv3, giving the nested
           hypervisor control of the VGIC hardware when running an L2 VM
      
         - Removal of 'late' nested virtualization feature register masking,
           making the supported feature set directly visible to userspace
      
         - Support for emulating FEAT_PMUv3 on Apple silicon, taking advantage
           of an IMPLEMENTATION DEFINED trap that covers all PMUv3 registers
      
         - Paravirtual interface for discovering the set of CPU
           implementations where a VM may run, addressing a longstanding issue
           of guest CPU errata awareness in big-little systems and
           cross-implementation VM migration
      
         - Userspace control of the registers responsible for identifying a
           particular CPU implementation (MIDR_EL1, REVIDR_EL1, AIDR_EL1),
           allowing VMs to be migrated cross-implementation
      
         - pKVM updates, including support for tracking stage-2 page table
           allocations in the protected hypervisor in the 'SecPageTable' stat
      
         - Fixes to vPMU, ensuring that userspace updates to the vPMU after
           KVM_RUN are reflected into the backing perf events
      
        LoongArch:
      
         - Remove unnecessary header include path
      
         - Assume constant PGD during VM context switch
      
         - Add perf events support for guest VM
      
        RISC-V:
      
         - Disable the kernel perf counter during configure
      
         - KVM selftests improvements for PMU
      
         - Fix warning at the time of KVM module removal
      
        x86:
      
         - Add support for aging of SPTEs without holding mmu_lock.
      
           Not taking mmu_lock allows multiple aging actions to run in
           parallel, and more importantly avoids stalling vCPUs. This includes
           an implementation of per-rmap-entry locking; aging the gfn is done
           with only a per-rmap single-bin spinlock taken, whereas locking an
           rmap for write requires taking both the per-rmap spinlock and the
           mmu_lock.
      
           Note that this decreases slightly the accuracy of accessed-page
           information, because changes to the SPTE outside aging might not
           use atomic operations even if they could race against a clear of
           the Accessed bit.
      
           This is deliberate because KVM and mm/ tolerate false
           positives/negatives for accessed information, and testing has shown
           that reducing the latency of aging is far more beneficial to
           overall system performance than providing "perfect" young/old
           information.
      
         - Defer runtime CPUID updates until KVM emulates a CPUID instruction,
           to coalesce updates when multiple pieces of vCPU state are
           changing, e.g. as part of a nested transition
      
         - Fix a variety of nested emulation bugs, and add VMX support for
           synthesizing nested VM-Exit on interception (instead of injecting
           #UD into L2)
      
         - Drop "support" for async page faults for protected guests that do
           not set SEND_ALWAYS (i.e. that only want async page faults at CPL3)
      
         - Bring a bit of sanity to x86's VM teardown code, which has
           accumulated a lot of cruft over the years. Particularly, destroy
           vCPUs before the MMU, despite the latter being a VM-wide operation
      
         - Add common secure TSC infrastructure for use within SNP and in the
           future TDX
      
         - Block KVM_CAP_SYNC_REGS if guest state is protected. It does not
           make sense to use the capability if the relevant registers are not
           available for reading or writing
      
         - Don't take kvm->lock when iterating over vCPUs in the suspend
           notifier to fix a largely theoretical deadlock
      
         - Use the vCPU's actual Xen PV clock information when starting the
           Xen timer, as the cached state in arch.hv_clock can be stale/bogus
      
         - Fix a bug where KVM could bleed PVCLOCK_GUEST_STOPPED across
           different PV clocks; restrict PVCLOCK_GUEST_STOPPED to kvmclock, as
           KVM's suspend notifier only accounts for kvmclock, and there's no
           evidence that the flag is actually supported by Xen guests
      
         - Clean up the per-vCPU "cache" of its reference pvclock, and instead
           only track the vCPU's TSC scaling (multipler+shift) metadata (which
           is moderately expensive to compute, and rarely changes for modern
           setups)
      
         - Don't write to the Xen hypercall page on MSR writes that are
           initiated by the host (userspace or KVM) to fix a class of bugs
           where KVM can write to guest memory at unexpected times, e.g.
           during vCPU creation if userspace has set the Xen hypercall MSR
           index to collide with an MSR that KVM emulates
      
         - Restrict the Xen hypercall MSR index to the unofficial synthetic
           range to reduce the set of possible collisions with MSRs that are
           emulated by KVM (collisions can still happen as KVM emulates
           Hyper-V MSRs, which also reside in the synthetic range)
      
         - Clean up and optimize KVM's handling of Xen MSR writes and
           xen_hvm_config
      
         - Update Xen TSC leaves during CPUID emulation instead of modifying
           the CPUID entries when updating PV clocks; there is no guarantee PV
           clocks will be updated between TSC frequency changes and CPUID
           emulation, and guest reads of the TSC leaves should be rare, i.e.
           are not a hot path
      
        x86 (Intel):
      
         - Fix a bug where KVM unnecessarily reads XFD_ERR from hardware and
           thus modifies the vCPU's XFD_ERR on a #NM due to CR0.TS=1
      
         - Pass XFD_ERR as the payload when injecting #NM, as a preparatory
           step for upcoming FRED virtualization support
      
         - Decouple the EPT entry RWX protection bit macros from the EPT
           Violation bits, both as a general cleanup and in anticipation of
           adding support for emulating Mode-Based Execution Control (MBEC)
      
         - Reject KVM_RUN if userspace manages to gain control and stuff
           invalid guest state while KVM is in the middle of emulating nested
           VM-Enter
      
         - Add a macro to handle KVM's sanity checks on entry/exit VMCS
           control pairs in anticipation of adding sanity checks for secondary
           exit controls (the primary field is out of bits)
      
        x86 (AMD):
      
         - Ensure the PSP driver is initialized when both the PSP and KVM
           modules are built-in (the initcall framework doesn't handle
           dependencies)
      
         - Use long-term pins when registering encrypted memory regions, so
           that the pages are migrated out of MIGRATE_CMA/ZONE_MOVABLE and
           don't lead to excessive fragmentation
      
         - Add macros and helpers for setting GHCB return/error codes
      
         - Add support for Idle HLT interception, which elides interception if
           the vCPU has a pending, unmasked virtual IRQ when HLT is executed
      
         - Fix a bug in INVPCID emulation where KVM fails to check for a
           non-canonical address
      
         - Don't attempt VMRUN for SEV-ES+ guests if the vCPU's VMSA is
           invalid, e.g. because the vCPU was "destroyed" via SNP's AP
           Creation hypercall
      
         - Reject SNP AP Creation if the requested SEV features for the vCPU
           don't match the VM's configured set of features
      
        Selftests:
      
         - Fix again the Intel PMU counters test; add a data load and do
           CLFLUSH{OPT} on the data instead of executing code. The theory is
           that modern Intel CPUs have learned new code prefetching tricks
           that bypass the PMU counters
      
         - Fix a flaw in the Intel PMU counters test where it asserts that an
           event is counting correctly without actually knowing what the event
           counts on the underlying hardware
      
         - Fix a variety of flaws, bugs, and false failures/passes
           dirty_log_test, and improve its coverage by collecting all dirty
           entries on each iteration
      
         - Fix a few minor bugs related to handling of stats FDs
      
         - Add infrastructure to make vCPU and VM stats FDs available to tests
           by default (open the FDs during VM/vCPU creation)
      
         - Relax an assertion on the number of HLT exits in the xAPIC IPI test
           when running on a CPU that supports AMD's Idle HLT (which elides
           interception of HLT if a virtual IRQ is pending and unmasked)"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (216 commits)
        RISC-V: KVM: Optimize comments in kvm_riscv_vcpu_isa_disable_allowed
        RISC-V: KVM: Teardown riscv specific bits after kvm_exit
        LoongArch: KVM: Register perf callbacks for guest
        LoongArch: KVM: Implement arch-specific functions for guest perf
        LoongArch: KVM: Add stub for kvm_arch_vcpu_preempted_in_kernel()
        LoongArch: KVM: Remove PGD saving during VM context switch
        LoongArch: KVM: Remove unnecessary header include path
        KVM: arm64: Tear down vGIC on failed vCPU creation
        KVM: arm64: PMU: Reload when resetting
        KVM: arm64: PMU: Reload when user modifies registers
        KVM: arm64: PMU: Fix SET_ONE_REG for vPMC regs
        KVM: arm64: PMU: Assume PMU presence in pmu-emul.c
        KVM: arm64: PMU: Set raw values from user to PM{C,I}NTEN{SET,CLR}, PMOVS{SET,CLR}
        KVM: arm64: Create each pKVM hyp vcpu after its corresponding host vcpu
        KVM: arm64: Factor out pKVM hyp vcpu creation to separate function
        KVM: arm64: Initialize HCRX_EL2 traps in pKVM
        KVM: arm64: Factor out setting HCRX_EL2 traps into separate function
        KVM: x86: block KVM_CAP_SYNC_REGS if guest state is protected
        KVM: x86: Add infrastructure for secure TSC
        KVM: x86: Push down setting vcpu.arch.user_set_tsc
        ...
      edb0e8f6
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v6.15-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 27bd3ce4
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
        - misc fixes and improvements
      
        - defconfig updates
      
      * tag 'm68k-for-v6.15-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: defconfig: Update defconfigs for v6.14-rc1
        m68k: setup: Remove size argument when calling strscpy()
        m68k: sun3: Fix DEBUG_MMU_EMU build
        m68k: sun3: Use str_read_write() helper in mmu_emu_handle_fault()
      27bd3ce4
    • Linus Torvalds's avatar
      Merge tag 'ras_core_for_v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0d86c239
      Linus Torvalds authored
      Pull RAS update from Borislav Petkov:
      
       - A cleanup to the MCE notification machinery
      
      * tag 'ras_core_for_v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce/inject: Remove call to mce_notify_irq()
      0d86c239
    • Linus Torvalds's avatar
      Merge tag 'edac_updates_for_v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · ae8371a4
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
      
       - Add infrastructure support to EDAC in order to be able to register
         memory scrubbing RAS functionality with the kernel and expose sysfs
         nodes to control such scrubbing functionality.
      
         The main use case is CXL devices which provide different scrubbers
         for their built-in memories so that tools like rasdaemon can
         configure and control memory scrubbing and other, more advanced RAS
         functionality (Shiju Jose and Jonathan Cameron)
      
       - Add support to ie31200_edac for client SoCs like Raptor Lake-S which
         have multiple memory controllers and out-of-band ECC capability
         (Qiuxu Zhuo)
      
       - The usual round of cleanups, simplifications and fixlets
      
      * tag 'edac_updates_for_v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras: (25 commits)
        MAINTAINERS: Add a secondary maintainer for bluefield_edac
        EDAC/ie31200: Switch Raptor Lake-S to interrupt mode
        EDAC/ie31200: Add Intel Raptor Lake-S SoCs support
        EDAC/ie31200: Break up ie31200_probe1()
        EDAC/ie31200: Fold the two channel loops into one loop
        EDAC/ie31200: Make struct dimm_data contain decoded information
        EDAC/ie31200: Make the memory controller resources configurable
        EDAC/ie31200: Simplify the pci_device_id table
        EDAC/ie31200: Fix the 3rd parameter name of *populate_dimm_info()
        EDAC/ie31200: Fix the error path order of ie31200_init()
        EDAC/ie31200: Fix the DIMM size mask for several SoCs
        EDAC/ie31200: Fix the size of EDAC_MC_LAYER_CHIP_SELECT layer
        EDAC/device: Fix dev_set_name() format string
        EDAC/pnd2: Make read-only const array intlv static
        EDAC/igen6: Constify struct res_config
        EDAC/amd64: Simplify return statement in dct_ecc_enabled()
        EDAC: Update memory repair control interface for memory sparing feature
        EDAC: Add a memory repair control feature
        EDAC: Use string choice helper functions
        EDAC: Add a Error Check Scrub control feature
        ...
      ae8371a4
    • Linus Torvalds's avatar
      Merge tag 'x86_cache_for_v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2899aa39
      Linus Torvalds authored
      Pull x86 resource control updates from Borislav Petkov:
      
       - First part of the MPAM work: split the architectural part of resctrl
         from the filesystem part so that ARM's MPAM varian of resource
         control can be added later while sharing the user interface with x86
         (James Morse)
      
      * tag 'x86_cache_for_v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (30 commits)
        x86/resctrl: Move get_{mon,ctrl}_domain_from_cpu() to live with their callers
        x86/resctrl: Move get_config_index() to a header
        x86/resctrl: Handle throttle_mode for SMBA resources
        x86/resctrl: Move RFTYPE flags to be managed by resctrl
        x86/resctrl: Make resctrl_arch_pseudo_lock_fn() take a plr
        x86/resctrl: Make prefetch_disable_bits belong to the arch code
        x86/resctrl: Allow an architecture to disable pseudo lock
        x86/resctrl: Add resctrl_arch_ prefix to pseudo lock functions
        x86/resctrl: Move mbm_cfg_mask to struct rdt_resource
        x86/resctrl: Move mba_mbps_default_event init to filesystem code
        x86/resctrl: Change mon_event_config_{read,write}() to be arch helpers
        x86/resctrl: Add resctrl_arch_is_evt_configurable() to abstract BMEC
        x86/resctrl: Move the is_mbm_*_enabled() helpers to asm/resctrl.h
        x86/resctrl: Rewrite and move the for_each_*_rdt_resource() walkers
        x86/resctrl: Move monitor init work to a resctrl init call
        x86/resctrl: Move monitor exit work to a resctrl exit call
        x86/resctrl: Add an arch helper to reset one resource
        x86/resctrl: Move resctrl types to a separate header
        x86/resctrl: Move rdt_find_domain() to be visible to arch and fs code
        x86/resctrl: Expose resctrl fs's init function to the rest of the kernel
        ...
      2899aa39
    • Linus Torvalds's avatar
      Merge tag 'x86_bugs_for_v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 90617477
      Linus Torvalds authored
      Pull x86 speculation mitigation updates from Borislav Petkov:
      
       - Some preparatory work to convert the mitigations machinery to
         mitigating attack vectors instead of single vulnerabilities
      
       - Untangle and remove a now unneeded X86_FEATURE_USE_IBPB flag
      
       - Add support for a Zen5-specific SRSO mitigation
      
       - Cleanups and minor improvements
      
      * tag 'x86_bugs_for_v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/bugs: Make spectre user default depend on MITIGATION_SPECTRE_V2
        x86/bugs: Use the cpu_smt_possible() helper instead of open-coded code
        x86/bugs: Add AUTO mitigations for mds/taa/mmio/rfds
        x86/bugs: Relocate mds/taa/mmio/rfds defines
        x86/bugs: Add X86_BUG_SPECTRE_V2_USER
        x86/bugs: Remove X86_FEATURE_USE_IBPB
        KVM: nVMX: Always use IBPB to properly virtualize IBRS
        x86/bugs: Use a static branch to guard IBPB on vCPU switch
        x86/bugs: Remove the X86_FEATURE_USE_IBPB check in ib_prctl_set()
        x86/mm: Remove X86_FEATURE_USE_IBPB checks in cond_mitigation()
        x86/bugs: Move the X86_FEATURE_USE_IBPB check into callers
        x86/bugs: KVM: Add support for SRSO_MSR_FIX
      90617477
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 2d09a944
      Linus Torvalds authored
      Pull arm64 updates from Catalin Marinas:
       "Nothing major this time around.
      
        Apart from the usual perf/PMU updates, some page table cleanups, the
        notable features are average CPU frequency based on the AMUv1
        counters, CONFIG_HOTPLUG_SMT and MOPS instructions (memcpy/memset) in
        the uaccess routines.
      
        Perf and PMUs:
      
         - Support for the 'Rainier' CPU PMU from Arm
      
         - Preparatory driver changes and cleanups that pave the way for BRBE
           support
      
         - Support for partial virtualisation of the Apple-M1 PMU
      
         - Support for the second event filter in Arm CSPMU designs
      
         - Minor fixes and cleanups (CMN and DWC PMUs)
      
         - Enable EL2 requirements for FEAT_PMUv3p9
      
        Power, CPU topology:
      
         - Support for AMUv1-based average CPU frequency
      
         - Run-time SMT control wired up for arm64 (CONFIG_HOTPLUG_SMT). It
           adds a generic topology_is_primary_thread() function overridden by
           x86 and powerpc
      
        New(ish) features:
      
         - MOPS (memcpy/memset) support for the uaccess routines
      
        Security/confidential compute:
      
         - Fix the DMA address for devices used in Realms with Arm CCA. The
           CCA architecture uses the address bit to differentiate between
           shared and private addresses
      
         - Spectre-BHB: assume CPUs Linux doesn't know about vulnerable by
           default
      
        Memory management clean-ups:
      
         - Drop the P*D_TABLE_BIT definition in preparation for 128-bit PTEs
      
         - Some minor page table accessor clean-ups
      
         - PIE/POE (permission indirection/overlay) helpers clean-up
      
        Kselftests:
      
         - MTE: skip hugetlb tests if MTE is not supported on such mappings
           and user correct naming for sync/async tag checking modes
      
        Miscellaneous:
      
         - Add a PKEY_UNRESTRICTED definition as 0 to uapi (toolchain people
           request)
      
         - Sysreg updates for new register fields
      
         - CPU type info for some Qualcomm Kryo cores"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (72 commits)
        arm64: mm: Don't use %pK through printk
        perf/arm_cspmu: Fix missing io.h include
        arm64: errata: Add newer ARM cores to the spectre_bhb_loop_affected() lists
        arm64: cputype: Add MIDR_CORTEX_A76AE
        arm64: errata: Add KRYO 2XX/3XX/4XX silver cores to Spectre BHB safe list
        arm64: errata: Assume that unknown CPUs _are_ vulnerable to Spectre BHB
        arm64: errata: Add QCOM_KRYO_4XX_GOLD to the spectre_bhb_k24_list
        arm64/sysreg: Enforce whole word match for open/close tokens
        arm64/sysreg: Fix unbalanced closing block
        arm64: Kconfig: Enable HOTPLUG_SMT
        arm64: topology: Support SMT control on ACPI based system
        arch_topology: Support SMT control for OF based system
        cpu/SMT: Provide a default topology_is_primary_thread()
        arm64/mm: Define PTDESC_ORDER
        perf/arm_cspmu: Add PMEVFILT2R support
        perf/arm_cspmu: Generalise event filtering
        perf/arm_cspmu: Move register definitons to header
        arm64/kernel: Always use level 2 or higher for early mappings
        arm64/mm: Drop PXD_TABLE_BIT
        arm64/mm: Check pmd_table() in pmd_trans_huge()
        ...
      2d09a944
    • Catalin Marinas's avatar
      Merge branch 'for-next/el2-enable-feat-pmuv3p9' into for-next/core · 64fa6b93
      Catalin Marinas authored
      * for-next/el2-enable-feat-pmuv3p9:
        : Enable EL2 requirements for FEAT_PMUv3p9
        arm64/boot: Enable EL2 requirements for FEAT_PMUv3p9
      64fa6b93
    • Catalin Marinas's avatar
      Merge branch 'for-next/smt-control' into for-next/core · 8ae9e2d8
      Catalin Marinas authored
      * for-next/smt-control:
        : Support SMT control on arm64
        arm64: Kconfig: Enable HOTPLUG_SMT
        arm64: topology: Support SMT control on ACPI based system
        arch_topology: Support SMT control for OF based system
        cpu/SMT: Provide a default topology_is_primary_thread()
      8ae9e2d8
    • Catalin Marinas's avatar
      Merge branches 'for-next/amuv1-avg-freq', 'for-next/pkey_unrestricted',... · 8cc14fdc
      Catalin Marinas authored
      Merge branches 'for-next/amuv1-avg-freq', 'for-next/pkey_unrestricted', 'for-next/sysreg', 'for-next/misc', 'for-next/pgtable-cleanups', 'for-next/kselftest', 'for-next/uaccess-mops', 'for-next/pie-poe-cleanup', 'for-next/cputype-kryo', 'for-next/cca-dma-address', 'for-next/drop-pxd_table_bit' and 'for-next/spectre-bhb-assume-vulnerable', remote-tracking branch 'arm64/for-next/perf' into for-next/core
      
      * arm64/for-next/perf:
        perf/arm_cspmu: Fix missing io.h include
        perf/arm_cspmu: Add PMEVFILT2R support
        perf/arm_cspmu: Generalise event filtering
        perf/arm_cspmu: Move register definitons to header
        drivers/perf: apple_m1: Support host/guest event filtering
        drivers/perf: apple_m1: Refactor event select/filter configuration
        perf/dwc_pcie: fix duplicate pci_dev devices
        perf/dwc_pcie: fix some unreleased resources
        perf/arm-cmn: Minor event type housekeeping
        perf: arm_pmu: Move PMUv3-specific data
        perf: apple_m1: Don't disable counter in m1_pmu_enable_event()
        perf: arm_v7_pmu: Don't disable counter in (armv7|krait_|scorpion_)pmu_enable_event()
        perf: arm_v7_pmu: Drop obvious comments for enabling/disabling counters and interrupts
        perf: arm_pmuv3: Don't disable counter in armv8pmu_enable_event()
        perf: arm_pmu: Don't disable counter in armpmu_add()
        perf: arm_pmuv3: Call kvm_vcpu_pmu_resync_el0() before enabling counters
        perf: arm_pmuv3: Add support for ARM Rainier PMU
      
      * for-next/amuv1-avg-freq:
        : Add support for AArch64 AMUv1-based average freq
        arm64: Utilize for_each_cpu_wrap for reference lookup
        arm64: Update AMU-based freq scale factor on entering idle
        arm64: Provide an AMU-based version of arch_freq_get_on_cpu
        cpufreq: Introduce an optional cpuinfo_avg_freq sysfs entry
        cpufreq: Allow arch_freq_get_on_cpu to return an error
        arch_topology: init capacity_freq_ref to 0
      
      * for-next/pkey_unrestricted:
        : mm/pkey: Add PKEY_UNRESTRICTED macro
        selftest/powerpc/mm/pkey: fix build-break introduced by commit 00894c3f
        selftests/powerpc: Use PKEY_UNRESTRICTED macro
        selftests/mm: Use PKEY_UNRESTRICTED macro
        mm/pkey: Add PKEY_UNRESTRICTED macro
      
      * for-next/sysreg:
        : arm64 sysreg updates
        arm64/sysreg: Enforce whole word match for open/close tokens
        arm64/sysreg: Fix unbalanced closing block
        arm64/sysreg: Add register fields for HFGWTR2_EL2
        arm64/sysreg: Add register fields for HFGRTR2_EL2
        arm64/sysreg: Add register fields for HFGITR2_EL2
        arm64/sysreg: Add register fields for HDFGWTR2_EL2
        arm64/sysreg: Add register fields for HDFGRTR2_EL2
        arm64/sysreg: Update register fields for ID_AA64MMFR0_EL1
      
      * for-next/misc:
        : Miscellaneous arm64 patches
        arm64: mm: Don't use %pK through printk
        arm64/fpsimd: Remove unused declaration fpsimd_kvm_prepare()
      
      * for-next/pgtable-cleanups:
        : arm64 pgtable accessors cleanup
        arm64/mm: Define PTDESC_ORDER
        arm64/kernel: Always use level 2 or higher for early mappings
        arm64/hugetlb: Consistently use pud_sect_supported()
        arm64/mm: Convert __pte_to_phys() and __phys_to_pte_val() as functions
      
      * for-next/kselftest:
        : arm64 kselftest updates
        kselftest/arm64: mte: Skip the hugetlb tests if MTE not supported on such mappings
        kselftest/arm64: mte: Use the correct naming for tag check modes in check_hugetlb_options.c
      
      * for-next/uaccess-mops:
        : Implement the uaccess memory copy/set using MOPS instructions
        arm64: lib: Use MOPS for usercopy routines
        arm64: mm: Handle PAN faults on uaccess CPY* instructions
        arm64: extable: Add fixup handling for uaccess CPY* instructions
      
      * for-next/pie-poe-cleanup:
        : PIE/POE helpers cleanup
        arm64/sysreg: Move POR_EL0_INIT to asm/por.h
        arm64/sysreg: Rename POE_RXW to POE_RWX
        arm64/sysreg: Improve PIR/POR helpers
      
      * for-next/cputype-kryo:
        : Add cputype info for some Qualcomm Kryo cores
        arm64: cputype: Add comments about Qualcomm Kryo 5XX and 6XX cores
        arm64: cputype: Add QCOM_CPU_PART_KRYO_3XX_GOLD
      
      * for-next/cca-dma-address:
        : Fix DMA address for devices used in realms with Arm CCA
        arm64: realm: Use aliased addresses for device DMA to shared buffers
        dma: Introduce generic dma_addr_*crypted helpers
        dma: Fix encryption bit clearing for dma_to_phys
      
      * for-next/drop-pxd_table_bit:
        : Drop the arm64 PXD_TABLE_BIT (clean-up in preparation for 128-bit PTEs)
        arm64/mm: Drop PXD_TABLE_BIT
        arm64/mm: Check pmd_table() in pmd_trans_huge()
        arm64/mm: Check PUD_TYPE_TABLE in pud_bad()
        arm64/mm: Check PXD_TYPE_TABLE in [p4d|pgd]_bad()
        arm64/mm: Clear PXX_TYPE_MASK and set PXD_TYPE_SECT in [pmd|pud]_mkhuge()
        arm64/mm: Clear PXX_TYPE_MASK in mk_[pmd|pud]_sect_prot()
        arm64/ptdump: Test PMD_TYPE_MASK for block mapping
        KVM: arm64: ptdump: Test PMD_TYPE_MASK for block mapping
      
      * for-next/spectre-bhb-assume-vulnerable:
        : Rework Spectre BHB mitigations to not assume "safe"
        arm64: errata: Add newer ARM cores to the spectre_bhb_loop_affected() lists
        arm64: cputype: Add MIDR_CORTEX_A76AE
        arm64: errata: Add KRYO 2XX/3XX/4XX silver cores to Spectre BHB safe list
        arm64: errata: Assume that unknown CPUs _are_ vulnerable to Spectre BHB
        arm64: errata: Add QCOM_KRYO_4XX_GOLD to the spectre_bhb_k24_list
      8cc14fdc
    • Linus Torvalds's avatar
      Merge tag 'timers-vdso-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 317a76a9
      Linus Torvalds authored
      Pull VDSO infrastructure updates from Thomas Gleixner:
      
       - Consolidate the VDSO storage
      
         The VDSO data storage and data layout has been largely architecture
         specific for historical reasons. That increases the maintenance
         effort and causes inconsistencies over and over.
      
         There is no real technical reason for architecture specific layouts
         and implementations. The architecture specific details can easily be
         integrated into a generic layout, which also reduces the amount of
         duplicated code for managing the mappings.
      
         Convert all architectures over to a unified layout and common mapping
         infrastructure. This splits the VDSO data layout into subsystem
         specific blocks, timekeeping, random and architecture parts, which
         provides a better structure and allows to improve and update the
         functionalities without conflict and interaction.
      
       - Rework the timekeeping data storage
      
         The current implementation is designed for exposing system
         timekeeping accessors, which was good enough at the time when it was
         designed.
      
         PTP and Time Sensitive Networking (TSN) change that as there are
         requirements to expose independent PTP clocks, which are not related
         to system timekeeping.
      
         Replace the monolithic data storage by a structured layout, which
         allows to add support for independent PTP clocks on top while reusing
         both the data structures and the time accessor implementations.
      
      * tag 'timers-vdso-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (55 commits)
        sparc/vdso: Always reject undefined references during linking
        x86/vdso: Always reject undefined references during linking
        vdso: Rework struct vdso_time_data and introduce struct vdso_clock
        vdso: Move architecture related data before basetime data
        powerpc/vdso: Prepare introduction of struct vdso_clock
        arm64/vdso: Prepare introduction of struct vdso_clock
        x86/vdso: Prepare introduction of struct vdso_clock
        time/namespace: Prepare introduction of struct vdso_clock
        vdso/namespace: Rename timens_setup_vdso_data() to reflect new vdso_clock struct
        vdso/vsyscall: Prepare introduction of struct vdso_clock
        vdso/gettimeofday: Prepare helper functions for introduction of struct vdso_clock
        vdso/gettimeofday: Prepare do_coarse_timens() for introduction of struct vdso_clock
        vdso/gettimeofday: Prepare do_coarse() for introduction of struct vdso_clock
        vdso/gettimeofday: Prepare do_hres_timens() for introduction of struct vdso_clock
        vdso/gettimeofday: Prepare do_hres() for introduction of struct vdso_clock
        vdso/gettimeofday: Prepare introduction of struct vdso_clock
        vdso/helpers: Prepare introduction of struct vdso_clock
        vdso/datapage: Define vdso_clock to prepare for multiple PTP clocks
        vdso: Make vdso_time_data cacheline aligned
        arm64: Make asm/cache.h compatible with vDSO
        ...
      317a76a9
    • Linus Torvalds's avatar
      Merge tag 'timers-cleanups-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a50b4fe0
      Linus Torvalds authored
      Pull timer cleanups from Thomas Gleixner:
       "A treewide hrtimer timer cleanup
      
        hrtimers are initialized with hrtimer_init() and a subsequent store to
        the callback pointer. This turned out to be suboptimal for the
        upcoming Rust integration and is obviously a silly implementation to
        begin with.
      
        This cleanup replaces the hrtimer_init(T); T->function = cb; sequence
        with hrtimer_setup(T, cb);
      
        The conversion was done with Coccinelle and a few manual fixups.
      
        Once the conversion has completely landed in mainline, hrtimer_init()
        will be removed and the hrtimer::function becomes a private member"
      
      * tag 'timers-cleanups-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (100 commits)
        wifi: rt2x00: Switch to use hrtimer_update_function()
        io_uring: Use helper function hrtimer_update_function()
        serial: xilinx_uartps: Use helper function hrtimer_update_function()
        ASoC: fsl: imx-pcm-fiq: Switch to use hrtimer_setup()
        RDMA: Switch to use hrtimer_setup()
        virtio: mem: Switch to use hrtimer_setup()
        drm/vmwgfx: Switch to use hrtimer_setup()
        drm/xe/oa: Switch to use hrtimer_setup()
        drm/vkms: Switch to use hrtimer_setup()
        drm/msm: Switch to use hrtimer_setup()
        drm/i915/request: Switch to use hrtimer_setup()
        drm/i915/uncore: Switch to use hrtimer_setup()
        drm/i915/pmu: Switch to use hrtimer_setup()
        drm/i915/perf: Switch to use hrtimer_setup()
        drm/i915/gvt: Switch to use hrtimer_setup()
        drm/i915/huc: Switch to use hrtimer_setup()
        drm/amdgpu: Switch to use hrtimer_setup()
        stm class: heartbeat: Switch to use hrtimer_setup()
        i2c: Switch to use hrtimer_setup()
        iio: Switch to use hrtimer_setup()
        ...
      a50b4fe0
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d5048d11
      Linus Torvalds authored
      Pull timer core updates from Thomas Gleixner:
      
       - Fix a memory ordering issue in posix-timers
      
         Posix-timer lookup is lockless and reevaluates the timer validity
         under the timer lock, but the update which validates the timer is not
         protected by the timer lock. That allows the store to be reordered
         against the initialization stores, so that the lookup side can
         observe a partially initialized timer. That's mostly a theoretical
         problem, but incorrect nevertheless.
      
       - Fix a long standing inconsistency of the coarse time getters
      
         The coarse time getters read the base time of the current update
         cycle without reading the actual hardware clock. NTP frequency
         adjustment can set the base time backwards. The fine grained
         interfaces compensate this by reading the clock and applying the new
         conversion factor, but the coarse grained time getters use the base
         time directly. That allows the user to observe time going backwards.
      
         Cure it by always forwarding base time, when NTP changes the
         frequency with an immediate step.
      
       - Rework of posix-timer hashing
      
         The posix-timer hash is not scalable and due to the CRIU timer
         restore mechanism prone to massive contention on the global hash
         bucket lock.
      
         Replace the global hash lock with a fine grained per bucket locking
         scheme to address that.
      
       - Rework the proc/$PID/timers interface.
      
         /proc/$PID/timers is provided for CRIU to be able to restore a timer.
         The printout happens with sighand lock held and interrupts disabled.
         That's not required as this can be done with RCU protection as well.
      
       - Provide a sane mechanism for CRIU to restore a timer ID
      
         CRIU restores timers by creating and deleting them until the kernel
         internal per process ID counter reached the requested ID. That's
         horribly slow for sparse timer IDs.
      
         Provide a prctl() which allows CRIU to restore a timer with a given
         ID. When enabled the ID pointer is used as input pointer to read the
         requested ID from user space. When disabled, the normal allocation
         scheme (next ID) is active as before. This is backwards compatible
         for both kernel and user space.
      
       - Make hrtimer_update_function() less expensive.
      
         The sanity checks are valuable, but expensive for high frequency
         usage in io/uring. Make the debug checks conditional and enable them
         only when lockdep is enabled.
      
       - Small updates, cleanups and improvements
      
      * tag 'timers-core-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)
        selftests/timers: Improve skew_consistency by testing with other clockids
        timekeeping: Fix possible inconsistencies in _COARSE clockids
        posix-timers: Drop redundant memset() invocation
        selftests/timers/posix-timers: Add a test for exact allocation mode
        posix-timers: Provide a mechanism to allocate a given timer ID
        posix-timers: Dont iterate /proc/$PID/timers with sighand:: Siglock held
        posix-timers: Make per process list RCU safe
        posix-timers: Avoid false cacheline sharing
        posix-timers: Switch to jhash32()
        posix-timers: Improve hash table performance
        posix-timers: Make signal_struct:: Next_posix_timer_id an atomic_t
        posix-timers: Make lock_timer() use guard()
        posix-timers: Rework timer removal
        posix-timers: Simplify lock/unlock_timer()
        posix-timers: Use guards in a few places
        posix-timers: Remove SLAB_PANIC from kmem cache
        posix-timers: Remove a few paranoid warnings
        posix-timers: Cleanup includes
        posix-timers: Add cond_resched() to posix_timer_add() search loop
        posix-timers: Initialise timer before adding it to the hash table
        ...
      d5048d11
    • Linus Torvalds's avatar
      Merge tag 'locking-futex-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0ae2062e
      Linus Torvalds authored
      Pull futex update from Thomas Gleixner:
       "A single update for futexes:
      
        Use a precomputed mask for the hash computation instead of computing
        the mask from the size on every invocation"
      
      * tag 'locking-futex-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        futex: Use a hashmask instead of hashsize
      0ae2062e
    • Linus Torvalds's avatar
      Merge tag 'irq-drivers-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0f404646
      Linus Torvalds authored
      Pull irq driver updates from Thomas Gleixner:
      
       - Support for hard indices on RISC-V. The hart index identifies a hart
         (core) within a specific interrupt domain in RISC-V's Priviledged
         Architecture.
      
       - Rework of the RISC-V MSI driver
      
         This moves the driver over to the generic MSI library and solves the
         affinity problem of unmaskable PCI/MSI controllers. Unmaskable
         PCI/MSI controllers are prone to lose interrupts when the MSI message
         is updated to change the affinity because the message write consists
         of three 32-bit subsequent writes, which update address and data. As
         these writes are non-atomic versus the device raising an interrupt,
         the device can observe a half written update and issue an interrupt
         on the wrong vector. This is mitiated by a carefully orchestrated
         step by step update and the observation of an eventually pending
         interrupt on the CPU which issues the update. The algorithm follows
         the well established method of the X86 MSI driver.
      
       - A new driver for the RISC-V Sophgo SG2042 MSI controller
      
       - Overhaul of the Renesas RZQ2L driver
      
         Simplification of the probe function by using devm_*() mechanisms,
         which avoid the endless list of error prone gotos in the failure
         paths.
      
       - Expand the Renesas RZV2H driver to support RZ/G3E SoCs
      
       - A workaround for Rockchip 3568002 erratum in the GIC-V3 driver to
         ensure that the addressing is limited to the lower 32-bit of the
         physical address space.
      
       - Add support for the Allwinner AS23 NMI controller
      
       - Expand the IMX irqsteer driver to handle up to 960 input interrupts
      
       - The usual small updates, cleanups and device tree changes
      
      * tag 'irq-drivers-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
        irqchip/imx-irqsteer: Support up to 960 input interrupts
        irqchip/sunxi-nmi: Support Allwinner A523 NMI controller
        dt-bindings: irq: sun7i-nmi: Document the Allwinner A523 NMI controller
        irqchip/davinci-cp-intc: Remove public header
        irqchip/renesas-rzv2h: Add RZ/G3E support
        irqchip/renesas-rzv2h: Update macros ICU_TSSR_TSSEL_{MASK,PREP}
        irqchip/renesas-rzv2h: Update TSSR_TIEN macro
        irqchip/renesas-rzv2h: Add field_width to struct rzv2h_hw_info
        irqchip/renesas-rzv2h: Add max_tssel to struct rzv2h_hw_info
        irqchip/renesas-rzv2h: Add struct rzv2h_hw_info with t_offs variable
        irqchip/renesas-rzv2h: Use devm_pm_runtime_enable()
        irqchip/renesas-rzv2h: Use devm_reset_control_get_exclusive_deasserted()
        irqchip/renesas-rzv2h: Simplify rzv2h_icu_init()
        irqchip/renesas-rzv2h: Drop irqchip from struct rzv2h_icu_priv
        irqchip/renesas-rzv2h: Fix wrong variable usage in rzv2h_tint_set_type()
        dt-bindings: interrupt-controller: renesas,rzv2h-icu: Document RZ/G3E SoC
        riscv: sophgo: dts: Add msi controller for SG2042
        irqchip: Add the Sophgo SG2042 MSI interrupt controller
        dt-bindings: interrupt-controller: Add Sophgo SG2042 MSI
        arm64: dts: rockchip: rk356x: Move PCIe MSI to use GIC ITS instead of MBI
        ...
      0f404646
    • Linus Torvalds's avatar
      Merge tag 'irq-msi-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 36f5f026
      Linus Torvalds authored
      Pull MSI irq updates from Thomas Gleixner:
      
       - Switch the MSI descriptor locking to guards
      
       - Replace the broken PCI/TPH implementation, which lacks any form of
         serialization against concurrent modifications with a properly
         serialized mechanism in the PCI/MSI core code
      
       - Replace the MSI descriptor abuse in the SCSI/UFS Qualcom driver with
         dedicated driver internal storage
      
      * tag 'irq-msi-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq/msi: Rename msi_[un]lock_descs()
        scsi: ufs: qcom: Remove the MSI descriptor abuse
        PCI/TPH: Replace the broken MSI-X control word update
        PCI/MSI: Provide a sane mechanism for TPH
        PCI: hv: Switch MSI descriptor locking to guard()
        PCI/MSI: Switch to MSI descriptor locking to guard()
        NTB/msi: Switch MSI descriptor locking to lock guard()
        soc: ti: ti_sci_inta_msi: Switch MSI descriptor locking to guard()
        genirq/msi: Use lock guards for MSI descriptor locking
        cleanup: Provide retain_ptr()
        genirq/msi: Make a few functions static
      36f5f026
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 43a7eec0
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "A small set of core changes for the interrupt subsystem:
      
         - Expose the MSI message in the existing debug filesystem dump.
           That's useful for validation and debugging.
      
         - Small cleanups"
      
      * tag 'irq-core-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq: Make a few functions static
        irqdomain: Remove extern from function declarations
        genirq/msi: Expose MSI message data in debugfs
      43a7eec0
    • Borislav Petkov (AMD)'s avatar
      Merge remote-tracking branches 'ras/edac-cxl', 'ras/edac-drivers' and... · 298ffd53
      Borislav Petkov (AMD) authored
      Merge remote-tracking branches 'ras/edac-cxl', 'ras/edac-drivers' and 'ras/edac-misc' into edac-updates
      
      * ras/edac-cxl:
        EDAC/device: Fix dev_set_name() format string
        EDAC: Update memory repair control interface for memory sparing feature
        EDAC: Add a memory repair control feature
        EDAC: Add a Error Check Scrub control feature
        EDAC: Add scrub control feature
        EDAC: Add support for EDAC device features control
      
      * ras/edac-drivers:
        EDAC/ie31200: Switch Raptor Lake-S to interrupt mode
        EDAC/ie31200: Add Intel Raptor Lake-S SoCs support
        EDAC/ie31200: Break up ie31200_probe1()
        EDAC/ie31200: Fold the two channel loops into one loop
        EDAC/ie31200: Make struct dimm_data contain decoded information
        EDAC/ie31200: Make the memory controller resources configurable
        EDAC/ie31200: Simplify the pci_device_id table
        EDAC/ie31200: Fix the 3rd parameter name of *populate_dimm_info()
        EDAC/ie31200: Fix the error path order of ie31200_init()
        EDAC/ie31200: Fix the DIMM size mask for several SoCs
        EDAC/ie31200: Fix the size of EDAC_MC_LAYER_CHIP_SELECT layer
        EDAC/{skx_common,i10nm}: Fix some missing error reports on Emerald Rapids
        EDAC/igen6: Fix the flood of invalid error reports
        EDAC/ie31200: work around false positive build warning
      
      * ras/edac-misc:
        MAINTAINERS: Add a secondary maintainer for bluefield_edac
        EDAC/pnd2: Make read-only const array intlv static
        EDAC/igen6: Constify struct res_config
        EDAC/amd64: Simplify return statement in dct_ecc_enabled()
        EDAC: Use string choice helper functions
      
      Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
      298ffd53
    • Linus Torvalds's avatar
      x86 boot build: make git ignore stale 'tools' directory · 2df0c02d
      Linus Torvalds authored
      
      We've had this before: when we remove infrastructure to generate files,
      the old stale build artifacts still remain in-tree.  And when the
      infrastructure to generate them is gone, so is the gitignore file for
      those build artifacts.
      
      End result: git will see the old generated files, and people will
      mistakenly commit them.  That's what happened with the 'genheaders' file
      not that long ago (see commit 04a3389b "Remove stale generated
      'genheaders' file").
      
      This time it's commit 9c54baab ("x86/boot: Drop CRC-32 checksum and
      the build tool that generates it") that removed the 'build' file from
      the arch/x86/boot/tools/ subdirectory, and removed the .gitignore file
      too (because the whole subdirectory is gone).
      
      And as a result, if you don't do a 'git clean -dqfx' or similar to clean
      up your tree, 'git status' will say
      
        Untracked files:
          (use "git add <file>..." to include in what will be committed)
      	arch/x86/boot/tools/
      
      and some hapless sleep-deprived developer will inevitably decide that
      that means that they need to 'git add' that directory.  Which would
      bring back some stale generated file that we most definitely do not want
      in the tree.
      
      So when removing directories that had special .gitignore patterns, make
      sure to add a new gitignore entry in the parent directory for the no
      longer existing subdirectory.
      
      It will avoid mistakes.
      
      Cc: Ard Biesheuvel <ardb@kernel.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Fixes: 9c54baab ("x86/boot: Drop CRC-32 checksum and the build tool that generates it")
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2df0c02d
    • Linus Torvalds's avatar
      Merge tag 'x86-platform-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 001a3a0c
      Linus Torvalds authored
      Pull x86 platform updates from Ingo Molnar:
       "Two small cleanups in the x86 platform support code"
      
      * tag 'x86-platform-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/platform/olpc: Remove unused variable 'len' in olpc_dt_compatible_match()
        x86/platform/olpc-xo1-sci: Don't include <linux/pm_wakeup.h> directly
      001a3a0c
    • Linus Torvalds's avatar
      Merge tag 'x86-sev-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8ac6067b
      Linus Torvalds authored
      Pull x86 SEV updates from Ingo Molnar:
      
       - Improve sme_enable() PIC build robustness (Kevin Loughlin)
      
       - Simplify vc_handle_msr() a bit (Peng Hao)
      
      [ Just reminding myself and everybody else about the endless stream of
        x86 TLAs: "SEV" is AMD's Secure Encrypted Virtualization  - Linus ]
      
      * tag 'x86-sev-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/sev: Simplify the code by removing unnecessary 'else' statement
        x86/sev: Add missing RIP_REL_REF() invocations during sme_enable()
      8ac6067b
    • Linus Torvalds's avatar
      Merge tag 'x86-cleanups-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a49a879f
      Linus Torvalds authored
      Pull x86 cleanups from Ingo Molnar:
       "Miscellaneous x86 cleanups by Arnd Bergmann, Charles Han, Mirsad
        Todorovac, Randy Dunlap, Thorsten Blum and Zhang Kunbo"
      
      * tag 'x86-cleanups-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/coco: Replace 'static const cc_mask' with the newly introduced cc_get_mask() function
        x86/delay: Fix inconsistent whitespace
        selftests/x86/syscall: Fix coccinelle WARNING recommending the use of ARRAY_SIZE()
        x86/platform: Fix missing declaration of 'x86_apple_machine'
        x86/irq: Fix missing declaration of 'io_apic_irqs'
        x86/usercopy: Fix kernel-doc func param name in clean_cache_range()'s description
        x86/apic: Use str_disabled_enabled() helper in print_ipi_mode()
      a49a879f
    • Linus Torvalds's avatar
      Merge tag 'x86-fpu-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 71b639af
      Linus Torvalds authored
      Pull x86/fpu updates from Ingo Molnar:
      
       - Improve crypto performance by making kernel-mode FPU reliably usable
         in softirqs ((Eric Biggers)
      
       - Fully optimize out WARN_ON_FPU() (Eric Biggers)
      
       - Initial steps to support Support Intel APX (Advanced Performance
         Extensions) (Chang S. Bae)
      
       - Fix KASAN for arch_dup_task_struct() (Benjamin Berg)
      
       - Refine and simplify the FPU magic number check during signal return
         (Chang S. Bae)
      
       - Fix inconsistencies in guest FPU xfeatures (Chao Gao, Stanislav
         Spassov)
      
       - selftests/x86/xstate: Introduce common code for testing extended
         states (Chang S. Bae)
      
       - Misc fixes and cleanups (Borislav Petkov, Colin Ian King, Uros
         Bizjak)
      
      * tag 'x86-fpu-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/fpu/xstate: Fix inconsistencies in guest FPU xfeatures
        x86/fpu: Clarify the "xa" symbolic name used in the XSTATE* macros
        x86/fpu: Use XSAVE{,OPT,C,S} and XRSTOR{,S} mnemonics in xstate.h
        x86/fpu: Improve crypto performance by making kernel-mode FPU reliably usable in softirqs
        x86/fpu/xstate: Simplify print_xstate_features()
        x86/fpu: Refine and simplify the magic number check during signal return
        selftests/x86/xstate: Fix spelling mistake "hader" -> "header"
        x86/fpu: Avoid copying dynamic FP state from init_task in arch_dup_task_struct()
        vmlinux.lds.h: Remove entry to place init_task onto init_stack
        selftests/x86/avx: Add AVX tests
        selftests/x86/xstate: Clarify supported xstates
        selftests/x86/xstate: Consolidate test invocations into a single entry
        selftests/x86/xstate: Introduce signal ABI test
        selftests/x86/xstate: Refactor ptrace ABI test
        selftests/x86/xstate: Refactor context switching test
        selftests/x86/xstate: Enumerate and name xstate components
        selftests/x86/xstate: Refactor XSAVE helpers for general use
        selftests/x86: Consolidate redundant signal helper functions
        x86/fpu: Fix guest FPU state buffer allocation size
        x86/fpu: Fully optimize out WARN_ON_FPU()
      71b639af
    • Linus Torvalds's avatar
      Merge tag 'x86-boot-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b58386a9
      Linus Torvalds authored
      Pull x86 boot code updates from Ingo Molnar:
      
       - Memblock setup and other early boot code cleanups (Mike Rapoport)
      
       - Export e820_table_kexec[] to sysfs (Dave Young)
      
       - Baby steps of adding relocate_kernel() debugging support (David
         Woodhouse)
      
       - Replace open-coded parity calculation with parity8() (Kuan-Wei Chiu)
      
       - Move the LA57 trampoline to separate source file (Ard Biesheuvel)
      
       - Misc micro-optimizations (Uros Bizjak)
      
       - Drop obsolete E820_TYPE_RESERVED_KERN and related code (Mike
         Rapoport)
      
      * tag 'x86-boot-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/kexec: Add relocate_kernel() debugging support: Load a GDT
        x86/boot: Move the LA57 trampoline to separate source file
        x86/boot: Do not test if AC and ID eflags are changeable on x86_64
        x86/bootflag: Replace open-coded parity calculation with parity8()
        x86/bootflag: Micro-optimize sbf_write()
        x86/boot: Add missing has_cpuflag() prototype
        x86/kexec: Export e820_table_kexec[] to sysfs
        x86/boot: Change some static bootflag functions to bool
        x86/e820: Drop obsolete E820_TYPE_RESERVED_KERN and related code
        x86/boot: Split parsing of boot_params into the parse_boot_params() helper function
        x86/boot: Split kernel resources setup into the setup_kernel_resources() helper function
        x86/boot: Move setting of memblock parameters to e820__memblock_setup()
      b58386a9
    • Linus Torvalds's avatar
      Merge tag 'x86-build-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ebfb94d8
      Linus Torvalds authored
      Pull x86 build updates from Ingo Molnar:
      
       - Drop CRC-32 checksum and the build tool that generates it (Ard
         Biesheuvel)
      
       - Fix broken copy command in genimage.sh when making isoimage (Nir
         Lichtman)
      
      * tag 'x86-build-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot: Add back some padding for the CRC-32 checksum
        x86/boot: Drop CRC-32 checksum and the build tool that generates it
        x86/build: Fix broken copy command in genimage.sh when making isoimage
      ebfb94d8
    • Linus Torvalds's avatar
      Merge tag 'x86-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e34c3805
      Linus Torvalds authored
      Pull core x86 updates from Ingo Molnar:
       "x86 CPU features support:
         - Generate the <asm/cpufeaturemasks.h> header based on build config
           (H. Peter Anvin, Xin Li)
         - x86 CPUID parsing updates and fixes (Ahmed S. Darwish)
         - Introduce the 'setcpuid=' boot parameter (Brendan Jackman)
         - Enable modifying CPU bug flags with '{clear,set}puid=' (Brendan
           Jackman)
         - Utilize CPU-type for CPU matching (Pawan Gupta)
         - Warn about unmet CPU feature dependencies (Sohil Mehta)
         - Prepare for new Intel Family numbers (Sohil Mehta)
      
        Percpu code:
         - Standardize & reorganize the x86 percpu layout and related cleanups
           (Brian Gerst)
         - Convert the stackprotector canary to a regular percpu variable
           (Brian Gerst)
         - Add a percpu subsection for cache hot data (Brian Gerst)
         - Unify __pcpu_op{1,2}_N() macros to __pcpu_op_N() (Uros Bizjak)
         - Construct __percpu_seg_override from __percpu_seg (Uros Bizjak)
      
        MM:
         - Add support for broadcast TLB invalidation using AMD's INVLPGB
           instruction (Rik van Riel)
         - Rework ROX cache to avoid writable copy (Mike Rapoport)
         - PAT: restore large ROX pages after fragmentation (Kirill A.
           Shutemov, Mike Rapoport)
         - Make memremap(MEMREMAP_WB) map memory as encrypted by default
           (Kirill A. Shutemov)
         - Robustify page table initialization (Kirill A. Shutemov)
         - Fix flush_tlb_range() when used for zapping normal PMDs (Jann Horn)
         - Clear _PAGE_DIRTY for kernel mappings when we clear _PAGE_RW
           (Matthew Wilcox)
      
        KASLR:
         - x86/kaslr: Reduce KASLR entropy on most x86 systems, to support PCI
           BAR space beyond the 10TiB region (CONFIG_PCI_P2PDMA=y) (Balbir
           Singh)
      
        CPU bugs:
         - Implement FineIBT-BHI mitigation (Peter Zijlstra)
         - speculation: Simplify and make CALL_NOSPEC consistent (Pawan Gupta)
         - speculation: Add a conditional CS prefix to CALL_NOSPEC (Pawan
           Gupta)
         - RFDS: Exclude P-only parts from the RFDS affected list (Pawan
           Gupta)
      
        System calls:
         - Break up entry/common.c (Brian Gerst)
         - Move sysctls into arch/x86 (Joel Granados)
      
        Intel LAM support updates: (Maciej Wieczor-Retman)
         - selftests/lam: Move cpu_has_la57() to use cpuinfo flag
         - selftests/lam: Skip test if LAM is disabled
         - selftests/lam: Test get_user() LAM pointer handling
      
        AMD SMN access updates:
         - Add SMN offsets to exclusive region access (Mario Limonciello)
         - Add support for debugfs access to SMN registers (Mario Limonciello)
         - Have HSMP use SMN through AMD_NODE (Yazen Ghannam)
      
        Power management updates: (Patryk Wlazlyn)
         - Allow calling mwait_play_dead with an arbitrary hint
         - ACPI/processor_idle: Add FFH state handling
         - intel_idle: Provide the default enter_dead() handler
         - Eliminate mwait_play_dead_cpuid_hint()
      
        Build system:
         - Raise the minimum GCC version to 8.1 (Brian Gerst)
         - Raise the minimum LLVM version to 15.0.0 (Nathan Chancellor)
      
        Kconfig: (Arnd Bergmann)
         - Add cmpxchg8b support back to Geode CPUs
         - Drop 32-bit "bigsmp" machine support
         - Rework CONFIG_GENERIC_CPU compiler flags
         - Drop configuration options for early 64-bit CPUs
         - Remove CONFIG_HIGHMEM64G support
         - Drop CONFIG_SWIOTLB for PAE
         - Drop support for CONFIG_HIGHPTE
         - Document CONFIG_X86_INTEL_MID as 64-bit-only
         - Remove old STA2x11 support
         - Only allow CONFIG_EISA for 32-bit
      
        Headers:
         - Replace __ASSEMBLY__ with __ASSEMBLER__ in UAPI and non-UAPI
           headers (Thomas Huth)
      
        Assembly code & machine code patching:
         - x86/alternatives: Simplify alternative_call() interface (Josh
           Poimboeuf)
         - x86/alternatives: Simplify callthunk patching (Peter Zijlstra)
         - KVM: VMX: Use named operands in inline asm (Josh Poimboeuf)
         - x86/hyperv: Use named operands in inline asm (Josh Poimboeuf)
         - x86/traps: Cleanup and robustify decode_bug() (Peter Zijlstra)
         - x86/kexec: Merge x86_32 and x86_64 code using macros from
           <asm/asm.h> (Uros Bizjak)
         - Use named operands in inline asm (Uros Bizjak)
         - Improve performance by using asm_inline() for atomic locking
           instructions (Uros Bizjak)
      
        Earlyprintk:
         - Harden early_serial (Peter Zijlstra)
      
        NMI handler:
         - Add an emergency handler in nmi_desc & use it in
           nmi_shootdown_cpus() (Waiman Long)
      
        Miscellaneous fixes and cleanups:
         - by Ahmed S. Darwish, Andy Shevchenko, Ard Biesheuvel, Artem
           Bityutskiy, Borislav Petkov, Brendan Jackman, Brian Gerst, Dan
           Carpenter, Dr. David Alan Gilbert, H. Peter Anvin, Ingo Molnar,
           Josh Poimboeuf, Kevin Brodsky, Mike Rapoport, Lukas Bulwahn, Maciej
           Wieczor-Retman, Max Grobecker, Patryk Wlazlyn, Pawan Gupta, Peter
           Zijlstra, Philip Redkin, Qasim Ijaz, Rik van Riel, Thomas Gleixner,
           Thorsten Blum, Tom Lendacky, Tony Luck, Uros Bizjak, Vitaly
           Kuznetsov, Xin Li, liuye"
      
      * tag 'x86-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (211 commits)
        zstd: Increase DYNAMIC_BMI2 GCC version cutoff from 4.8 to 11.0 to work around compiler segfault
        x86/asm: Make asm export of __ref_stack_chk_guard unconditional
        x86/mm: Only do broadcast flush from reclaim if pages were unmapped
        perf/x86/intel, x86/cpu: Replace Pentium 4 model checks with VFM ones
        perf/x86/intel, x86/cpu: Simplify Intel PMU initialization
        x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers
        x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in UAPI headers
        x86/locking/atomic: Improve performance by using asm_inline() for atomic locking instructions
        x86/asm: Use asm_inline() instead of asm() in clwb()
        x86/asm: Use CLFLUSHOPT and CLWB mnemonics in <asm/special_insns.h>
        x86/hweight: Use asm_inline() instead of asm()
        x86/hweight: Use ASM_CALL_CONSTRAINT in inline asm()
        x86/hweight: Use named operands in inline asm()
        x86/stackprotector/64: Only export __ref_stack_chk_guard on CONFIG_SMP
        x86/head/64: Avoid Clang < 17 stack protector in startup code
        x86/kexec: Merge x86_32 and x86_64 code using macros from <asm/asm.h>
        x86/runtime-const: Add the RUNTIME_CONST_PTR assembly macro
        x86/cpu/intel: Limit the non-architectural constant_tsc model checks
        x86/mm/pat: Replace Intel x86_model checks with VFM ones
        x86/cpu/intel: Fix fast string initialization for extended Families
        ...
      e34c3805
    • Linus Torvalds's avatar
      Merge tag 'perf-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 327ecdbc
      Linus Torvalds authored
      Pull performance events updates from Ingo Molnar:
       "Core:
         - Move perf_event sysctls into kernel/events/ (Joel Granados)
         - Use POLLHUP for pinned events in error (Namhyung Kim)
         - Avoid the read if the count is already updated (Peter Zijlstra)
         - Allow the EPOLLRDNORM flag for poll (Tao Chen)
         - locking/percpu-rwsem: Add guard support [ NOTE: this got
           (mis-)merged into the perf tree due to related work ] (Peter
           Zijlstra)
      
        perf_pmu_unregister() related improvements: (Peter Zijlstra)
         - Simplify the perf_event_alloc() error path
         - Simplify the perf_pmu_register() error path
         - Simplify perf_pmu_register()
         - Simplify perf_init_event()
         - Simplify perf_event_alloc()
         - Merge struct pmu::pmu_disable_count into struct
           perf_cpu_pmu_context::pmu_disable_count
         - Add this_cpc() helper
         - Introduce perf_free_addr_filters()
         - Robustify perf_event_free_bpf_prog()
         - Simplify the perf_mmap() control flow
         - Further simplify perf_mmap()
         - Remove retry loop from perf_mmap()
         - Lift event->mmap_mutex in perf_mmap()
         - Detach 'struct perf_cpu_pmu_context' and 'struct pmu' lifetimes
         - Fix perf_mmap() failure path
      
        Uprobes:
         - Harden x86 uretprobe syscall trampoline check (Jiri Olsa)
         - Remove redundant spinlock in uprobe_deny_signal() (Liao Chang)
         - Remove the spinlock within handle_singlestep() (Liao Chang)
      
        x86 Intel PMU enhancements:
         - Support PEBS counters snapshotting (Kan Liang)
         - Fix intel_pmu_read_event() (Kan Liang)
         - Extend per event callchain limit to branch stack (Kan Liang)
         - Fix system-wide LBR profiling (Kan Liang)
         - Allocate bts_ctx only if necessary (Li RongQing)
         - Apply static call for drain_pebs (Peter Zijlstra)
      
        x86 AMD PMU enhancements: (Ravi Bangoria)
         - Remove pointless sample period check
         - Fix ->config to sample period calculation for OP PMU
         - Fix perf_ibs_op.cnt_mask for CurCnt
         - Don't allow freq mode event creation through ->config interface
         - Add PMU specific minimum period
         - Add ->check_period() callback
         - Ceil sample_period to min_period
         - Add support for OP Load Latency Filtering
         - Update DTLB/PageSize decode logic
      
        Hardware breakpoints:
         - Return EOPNOTSUPP for unsupported breakpoint type (Saket Kumar
           Bhaskar)
      
        Hardlockup detector improvements: (Li Huafei)
         - perf_event memory leak
         - Warn if watchdog_ev is leaked
      
        Fixes and cleanups:
         - Misc fixes and cleanups (Andy Shevchenko, Kan Liang, Peter
           Zijlstra, Ravi Bangoria, Thorsten Blum, XieLudan)"
      
      * tag 'perf-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (55 commits)
        perf: Fix __percpu annotation
        perf: Clean up pmu specific data
        perf/x86: Remove swap_task_ctx()
        perf/x86/lbr: Fix shorter LBRs call stacks for the system-wide mode
        perf: Supply task information to sched_task()
        perf: attach/detach PMU specific data
        locking/percpu-rwsem: Add guard support
        perf: Save PMU specific data in task_struct
        perf: Extend per event callchain limit to branch stack
        perf/ring_buffer: Allow the EPOLLRDNORM flag for poll
        perf/core: Use POLLHUP for pinned events in error
        perf/core: Use sysfs_emit() instead of scnprintf()
        perf/core: Remove optional 'size' arguments from strscpy() calls
        perf/x86/intel/bts: Check if bts_ctx is allocated when calling BTS functions
        uprobes/x86: Harden uretprobe syscall trampoline check
        watchdog/hardlockup/perf: Warn if watchdog_ev is leaked
        watchdog/hardlockup/perf: Fix perf_event memory leak
        perf/x86: Annotate struct bts_buffer::buf with __counted_by()
        perf/core: Clean up perf_try_init_event()
        perf/core: Fix perf_mmap() failure path
        ...
      327ecdbc
    • Linus Torvalds's avatar
      Merge tag 'sched-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 32b22538
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
       "Core & fair scheduler changes:
      
         - Cancel the slice protection of the idle entity (Zihan Zhou)
         - Reduce the default slice to avoid tasks getting an extra tick
           (Zihan Zhou)
         - Force propagating min_slice of cfs_rq when {en,de}queue tasks
           (Tianchen Ding)
         - Refactor can_migrate_task() to elimate looping (I Hsin Cheng)
         - Add unlikey branch hints to several system calls (Colin Ian King)
         - Optimize current_clr_polling() on certain architectures (Yujun
           Dong)
      
        Deadline scheduler: (Juri Lelli)
         - Remove redundant dl_clear_root_domain call
         - Move dl_rebuild_rd_accounting to cpuset.h
      
        Uclamp:
         - Use the uclamp_is_used() helper instead of open-coding it (Xuewen
           Yan)
         - Optimize sched_uclamp_used static key enabling (Xuewen Yan)
      
        Scheduler topology support: (Juri Lelli)
         - Ignore special tasks when rebuilding domains
         - Add wrappers for sched_domains_mutex
         - Generalize unique visiting of root domains
         - Rebuild root domain accounting after every update
         - Remove partition_and_rebuild_sched_domains
         - Stop exposing partition_sched_domains_locked
      
        RSEQ: (Michael Jeanson)
         - Update kernel fields in lockstep with CONFIG_DEBUG_RSEQ=y
         - Fix segfault on registration when rseq_cs is non-zero
         - selftests: Add rseq syscall errors test
         - selftests: Ensure the rseq ABI TLS is actually 1024 bytes
      
        Membarriers:
         - Fix redundant load of membarrier_state (Nysal Jan K.A.)
      
        Scheduler debugging:
         - Introduce and use preempt_model_str() (Sebastian Andrzej Siewior)
         - Make CONFIG_SCHED_DEBUG unconditional (Ingo Molnar)
      
        Fixes and cleanups:
         - Always save/restore x86 TSC sched_clock() on suspend/resume
           (Guilherme G. Piccoli)
         - Misc fixes and cleanups (Thorsten Blum, Juri Lelli, Sebastian
           Andrzej Siewior)"
      
      * tag 'sched-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
        cpuidle, sched: Use smp_mb__after_atomic() in current_clr_polling()
        sched/debug: Remove CONFIG_SCHED_DEBUG
        sched/debug: Remove CONFIG_SCHED_DEBUG from self-test config files
        sched/debug, Documentation: Remove (most) CONFIG_SCHED_DEBUG references from documentation
        sched/debug: Make CONFIG_SCHED_DEBUG functionality unconditional
        sched/debug: Make 'const_debug' tunables unconditional __read_mostly
        sched/debug: Change SCHED_WARN_ON() to WARN_ON_ONCE()
        rseq/selftests: Fix namespace collision with rseq UAPI header
        include/{topology,cpuset}: Move dl_rebuild_rd_accounting to cpuset.h
        sched/topology: Stop exposing partition_sched_domains_locked
        cgroup/cpuset: Remove partition_and_rebuild_sched_domains
        sched/topology: Remove redundant dl_clear_root_domain call
        sched/deadline: Rebuild root domain accounting after every update
        sched/deadline: Generalize unique visiting of root domains
        sched/topology: Wrappers for sched_domains_mutex
        sched/deadline: Ignore special tasks when rebuilding domains
        tracing: Use preempt_model_str()
        xtensa: Rely on generic printing of preemption model
        x86: Rely on generic printing of preemption model
        s390: Rely on generic printing of preemption model
        ...
      32b22538
    • Linus Torvalds's avatar
      Merge tag 'objtool-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5a658afd
      Linus Torvalds authored
      Pull objtool updates from Ingo Molnar:
      
       - The biggest change is the new option to automatically fail the build
         on objtool warnings: CONFIG_OBJTOOL_WERROR.
      
         While there are no currently known unfixed false positives left, such
         an expansion in the severity of objtool warnings inevitably creates a
         risk of build failures, so it's disabled by default and depends on
         !COMPILE_TEST, so it shouldn't be enabled on
         allyesconfig/allmodconfig builds and won't be forced on people who
         just accept build-time defaults in 'make oldconfig'.
      
         While the option is strongly recommended, only people who enable it
         explicitly should see it.
      
         (Josh Poimboeuf)
      
       - Disable branch profiling in noinstr code with a broad brush that
         includes all of arch/x86/ and kernel/sched/. (Josh Poimboeuf)
      
       - Create backup object files on objtool errors and print exact objtool
         arguments to make failure analysis easier (Josh Poimboeuf)
      
       - Improve noreturn handling (Josh Poimboeuf)
      
       - Improve rodata handling (Tiezhu Yang)
      
       - Support jump tables, switch tables and goto tables on LoongArch
         (Tiezhu Yang)
      
       - Misc cleanups and fixes (Josh Poimboeuf, David Engraf, Ingo Molnar)
      
      * tag 'objtool-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)
        tracing: Disable branch profiling in noinstr code
        objtool: Use O_CREAT with explicit mode mask
        objtool: Add CONFIG_OBJTOOL_WERROR
        objtool: Create backup on error and print args
        objtool: Change "warning:" to "error:" for --Werror
        objtool: Add --Werror option
        objtool: Add --output option
        objtool: Upgrade "Linked object detected" warning to error
        objtool: Consolidate option validation
        objtool: Remove --unret dependency on --rethunk
        objtool: Increase per-function WARN_FUNC() rate limit
        objtool: Update documentation
        objtool: Improve __noreturn annotation warning
        objtool: Fix error handling inconsistencies in check()
        x86/traps: Make exc_double_fault() consistently noreturn
        LoongArch: Enable jump table for objtool
        objtool/LoongArch: Add support for goto table
        objtool/LoongArch: Add support for switch table
        objtool: Handle PC relative relocation type
        objtool: Handle different entry size of rodata
        ...
      5a658afd
Loading