1. 25 Sep, 2024 1 commit
    • Artem Bityutskiy's avatar
      intel_idle: fix ACPI _CST matching for newer Xeon platforms · 4c411cca
      Artem Bityutskiy authored
      Background
      ~~~~~~~~~~
      
      The driver uses 'use_acpi = true' in C-state custom table for all Xeon
      platforms. The meaning of this flag is as follows.
      
       1. If a C-state from the custom table is defined in ACPI _CST (matched
          by the mwait hint), then enable this C-state.
      
       2. Otherwise, disable this C-state, unless the C-sate definition in the
          custom table has the 'CPUIDLE_FLAG_ALWAYS_ENABLE' flag set, in which
          case enabled it.
      
      The goal is to honor BIOS C6 settings - If BIOS disables C6, disable it
      by default in the OS too (but it can be enabled via sysfs).
      
      This works well on Xeons that expose only one flavor of C6. This are all
      Xeons except for the newest Granite Rapids (GNR) and Sierra Forest (SRF).
      
      The problem
      ~~~~~~~~~~~
      
      GNR and SRF have 2 flavors of C6: C6/C6P on GNR, C6S/C6SP on SRF. The
      the "P" flavor allows for the package C6, while the "non-P" flavor
      allows only for core/module C6.
      
      As far as this patch is concerned, both GNR and SRF platforms are
      handled the same way. Therefore, further discussion is focused on GNR,
      but it applies to SRF as well.
      
      On Intel Xeon platforms, BIOS exposes only 2 ACPI C-states: C1 and C2.
      Well, depending on BIOS settings, C2 may be named as C3. But there still
      will be only 2 states - C1 and C3. But this is a non-essential detail,
      so further discussion is focused on the ACPI C1 and C2 case.
      
      On pre-GNR/SRF Xeon platforms, ACPI C1 is mapped to C1 or C1E, and ACPI
      C2 is mapped to C6. The 'use_acpi' flag works just fine:
      
       * If ACPI C2 enabled, enable C6.
       * Otherwise, disable C6.
      
      However, on GNR there are 2 flavors of C6, so BIOS maps ACPI C2 to
      either C6 or C6P, depending on the user settings. As a result, due to
      the 'use_acpi' flag, 'intel_idle' disables least one of the C6 flavors.
      
      BIOS                   | OS                         | Verdict
      ----------------------------------------------------|---------
      ACPI C2 disabled       | C6 disabled, C6P disabled  | OK
      ACPI C2 mapped to C6   | C6 enabled,  C6P disabled  | Not OK
      ACPI C2 mapped to C6P  | C6 disabled, C6P enabled   | Not OK
      
      The goal of 'use_acpi' is to honor BIOS ACPI C2 disabled case, which
      works fine. But if ACPI C2 is enabled, the goal is to enable all flavors
      of C6, not just one of the flavors. This was overlooked when enabling
      GNR/SRF platforms.
      
      In other words, before GNR/SRF, the ACPI C2 status was binary - enabled
      or disabled. But it is not binary on GNR/SRF, however the goal is to
      continue treat it as binary.
      
      The fix
      ~~~~~~~
      
      Notice, that current algorithm matches ACPI and custom table C-states
      by the mwait hint. However, mwait hint consists of the 'state' and
      'sub-state' parts, and all C6 flavors have the same state value of 0x20,
      but different sub-state values.
      
      Introduce new C-state table flag - CPUIDLE_FLAG_PARTIAL_HINT_MATCH and
      add it to both C6 flavors of the GNR/SRF platforms.
      
      When matching ACPI _CST and custom table C-states, match only the start
      part if the C-state has CPUIDLE_FLAG_PARTIAL_HINT_MATCH, other wise
      match both state and sub-state parts (as before).
      
      With this fix, GNR C-states enabled/disabled status looks like this.
      
      BIOS                   | OS
      ----------------------------------------------------
      ACPI C2 disabled       | C6 disabled, C6P disabled
      ACPI C2 mapped to C6   | C6 enabled, C6P enabled
      ACPI C2 mapped to C6P  | C6 enabled, C6P enabled
      
      Possible alternative
      ~~~~~~~~~~~~~~~~~~~~
      
      The alternative would be to remove 'use_acpi' flag for GNR and SRF.
      This would be a simpler solution, but it would violate the principle of
      least surprise - users of Xeon platforms are used to the fact that
      intel_idle honors C6 enabled/disabled flag. It is more consistent user
      experience if GNR/SRF continue doing so.
      
      How tested
      ~~~~~~~~~~
      
      Tested on GNR and SRF platform with all the 3 BIOS configurations: ACPI
      C2 disabled, mapped to C6/C6S, mapped to C6P/C6SP.
      
      Tested on Ice lake Xeon and Sapphire Rapids Xeon platforms with ACPI C2
      enabled and disabled, just to verify that the patch does not break older
      Xeons.
      
      Fixes: 92813fd5 ("intel_idle: add Sierra Forest SoC support")
      Fixes: 370406bf ("intel_idle: add Granite Rapids Xeon support")
      Cc: 6.8+ <stable@vger.kernel.org> # 6.8+
      Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Link: https://patch.msgid.link/20240913165143.4140073-1-dedekind1@gmail.com
      [ rjw: Changelog edits ]
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      4c411cca
  2. 16 Sep, 2024 16 commits
    • Linus Torvalds's avatar
      Merge tag 'pm-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 02824a5f
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "By the number of new lines of code, the most visible change here is
        the addition of hybrid CPU capacity scaling support to the
        intel_pstate driver. Next are the amd-pstate driver changes related to
        the calculation of the AMD boost numerator and preferred core
        detection.
      
        As far as new hardware support is concerned, the intel_idle driver
        will now handle Granite Rapids Xeon processors natively, the
        intel_rapl power capping driver will recognize family 1Ah of AMD
        processors and Intel ArrowLake-U chipos, and intel_pstate will handle
        Granite Rapids and Sierra Forest chips in the out-of-band (OOB) mode.
      
        Apart from the above, there is a usual collection of assorted fixes
        and code cleanups in many places and there are tooling updates.
      
        Specifics:
      
         - Remove LATENCY_MULTIPLIER from cpufreq (Qais Yousef)
      
         - Add support for Granite Rapids and Sierra Forest in OOB mode to the
           intel_pstate cpufreq driver (Srinivas Pandruvada)
      
         - Add basic support for CPU capacity scaling on x86 and make the
           intel_pstate driver set asymmetric CPU capacity on hybrid systems
           without SMT (Rafael Wysocki)
      
         - Add missing MODULE_DESCRIPTION() macros to the powerpc cpufreq
           driver (Jeff Johnson)
      
         - Several OF related cleanups in cpufreq drivers (Rob Herring)
      
         - Enable COMPILE_TEST for ARM drivers (Rob Herrring)
      
         - Introduce quirks for syscon failures and use socinfo to get
           revision for TI cpufreq driver (Dhruva Gole, Nishanth Menon)
      
         - Minor cleanups in amd-pstate driver (Anastasia Belova, Dhananjay
           Ugwekar)
      
         - Minor cleanups for loongson, cpufreq-dt and powernv cpufreq drivers
           (Danila Tikhonov, Huacai Chen, and Liu Jing)
      
         - Make amd-pstate validate return of any attempt to update EPP
           limits, which fixes the masking hardware problems (Mario
           Limonciello)
      
         - Move the calculation of the AMD boost numerator outside of
           amd-pstate, correcting acpi-cpufreq on systems with preferred cores
           (Mario Limonciello)
      
         - Harden preferred core detection in amd-pstate to avoid potential
           false positives (Mario Limonciello)
      
         - Add extra unit test coverage for mode state machine (Mario
           Limonciello)
      
         - Fix an "Uninitialized variables" issue in amd-pstste (Qianqiang
           Liu)
      
         - Add Granite Rapids Xeon support to intel_idle (Artem Bityutskiy)
      
         - Disable promotion to C1E on Jasper Lake and Elkhart Lake in
           intel_idle (Kai-Heng Feng)
      
         - Use scoped device node handling to fix missing of_node_put() and
           simplify walking OF children in the riscv-sbi cpuidle driver
           (Krzysztof Kozlowski)
      
         - Remove dead code from cpuidle_enter_state() (Dhruva Gole)
      
         - Change an error pointer to NULL to fix error handling in the
           intel_rapl power capping driver (Dan Carpenter)
      
         - Fix off by one in get_rpi() in the intel_rapl power capping driver
           (Dan Carpenter)
      
         - Add support for ArrowLake-U to the intel_rapl power capping driver
           (Sumeet Pawnikar)
      
         - Fix the energy-pkg event for AMD CPUs in the intel_rapl power
           capping driver (Dhananjay Ugwekar)
      
         - Add support for AMD family 1Ah processors to the intel_rapl power
           capping driver (Dhananjay Ugwekar)
      
         - Remove unused stub for saveable_highmem_page() and remove
           deprecated macros from power management documentation (Andy
           Shevchenko)
      
         - Use ysfs_emit() and sysfs_emit_at() in "show" functions in the PM
           sysfs interface (Xueqin Luo)
      
         - Update the maintainers information for the
           operating-points-v2-ti-cpu DT binding (Dhruva Gole)
      
         - Drop unnecessary of_match_ptr() from ti-opp-supply (Rob Herring)
      
         - Add missing MODULE_DESCRIPTION() macros to devfreq governors (Jeff
           Johnson)
      
         - Use devm_clk_get_enabled() in the exynos-bus devfreq driver (Anand
           Moon)
      
         - Use of_property_present() instead of of_get_property() in the
           imx-bus devfreq driver (Rob Herring)
      
         - Update directory handling and installation process in the pm-graph
           Makefile and add .gitignore to ignore sleepgraph.py artifacts to
           pm-graph (Amit Vadhavana, Yo-Jung Lin)
      
         - Make cpupower display residency value in idle-info (Aboorva
           Devarajan)
      
         - Add missing powercap_set_enabled() stub function to cpupower (John
           B. Wyatt IV)
      
         - Add SWIG support to cpupower (John B. Wyatt IV)"
      
      * tag 'pm-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (62 commits)
        cpufreq/amd-pstate-ut: Fix an "Uninitialized variables" issue
        cpufreq/amd-pstate-ut: Add test case for mode switches
        cpufreq/amd-pstate: Export symbols for changing modes
        amd-pstate: Add missing documentation for `amd_pstate_prefcore_ranking`
        cpufreq: amd-pstate: Add documentation for `amd_pstate_hw_prefcore`
        cpufreq: amd-pstate: Optimize amd_pstate_update_limits()
        cpufreq: amd-pstate: Merge amd_pstate_highest_perf_set() into amd_get_boost_ratio_numerator()
        x86/amd: Detect preferred cores in amd_get_boost_ratio_numerator()
        x86/amd: Move amd_get_highest_perf() out of amd-pstate
        ACPI: CPPC: Adjust debug messages in amd_set_max_freq_ratio() to warn
        ACPI: CPPC: Drop check for non zero perf ratio
        x86/amd: Rename amd_get_highest_perf() to amd_get_boost_ratio_numerator()
        ACPI: CPPC: Adjust return code for inline functions in !CONFIG_ACPI_CPPC_LIB
        x86/amd: Move amd_get_highest_perf() from amd.c to cppc.c
        PM: hibernate: Remove unused stub for saveable_highmem_page()
        pm:cpupower: Add error warning when SWIG is not installed
        MAINTAINERS: Add Maintainers for SWIG Python bindings
        pm:cpupower: Include test_raw_pylibcpupower.py
        pm:cpupower: Add SWIG bindings files for libcpupower
        pm:cpupower: Add missing powercap_set_enabled() stub function
        ...
      02824a5f
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 11b31250
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "These update the ACPICA code in the kernel to upstream version
        20240827, add support for ACPI-based enumeration of interrupt
        controllers on RISC-V along with some related irqchip updates, clean
        up the ACPI device object sysfs interface, add some quirks for
        backlight handling and IRQ overrides, fix assorted issues and clean up
        code.
      
        Specifics:
      
         - Check return value in acpi_db_convert_to_package() (Pei Xiao)
      
         - Detect FACS and allow setting the waking vector on reduced-hardware
           ACPI platforms (Jiaqing Zhao)
      
         - Allow ACPICA to represent semaphores as integers (Adrien Destugues)
      
         - Complete CXL 3.0 CXIMS structures support in ACPICA (Zhang Rui)
      
         - Make ACPICA support SPCR version 4 and add RISC-V SBI Subtype to
           DBG2 (Sia Jee Heng)
      
         - Implement the Dword_PCC Resource Descriptor Macro in ACPICA (Jose
           Marinho)
      
         - Correct the typo in struct acpi_mpam_msc_node member (Punit
           Agrawal)
      
         - Implement ACPI_WARNING_ONCE() and ACPI_ERROR_ONCE() and use them to
           prevent a Stall() violation warning from being printed every time
           this takes place (Vasily Khoruzhick)
      
         - Allow PCC Data Type in MCTP resource (Adam Young)
      
         - Fix memory leaks on acpi_ps_get_next_namepath() and
           acpi_ps_get_next_field() failures (Armin Wolf)
      
         - Add support for supressing leading zeros in hex strings when
           converting them to integers and update integer-to-hex-string
           conversions in ACPICA (Armin Wolf)
      
         - Add support for Windows 11 22H2 _OSI string (Armin Wolf)
      
         - Avoid warning for Dump Functions in ACPICA (Adam Lackorzynski)
      
         - Add extended linear address mode to HMAT MSCIS in ACPICA (Dave
           Jiang)
      
         - Handle empty connection_node in iasl (Aleksandrs Vinarskis)
      
         - Allow for more flexibility in _DSM args (Saket Dumbre)
      
         - Setup for ACPICA release 20240827 (Saket Dumbre)
      
         - Add ACPI device enumeration support for interrupt controller
           probing including taking dependencies into account (Sunil V L)
      
         - Implement ACPI-based interrupt controller probing on RISC-V
           (Sunil V L)
      
         - Add ACPI support for AIA in riscv-intc and add ACPI support to
           riscv-imsic, riscv-aplic, and sifive-plic (Sunil V L)
      
         - Do not release locks during operation region accesses in the ACPI
           EC driver (Rafael Wysocki)
      
         - Fix up the _STR handling in the ACPI device object sysfs interface,
           make it represent the device object attributes as an attribute
           group and make it rely on driver core functionality for sysfs
           attrubute management (Thomas Weißschuh)
      
         - Extend error messages printed to the kernel log when
           acpi_evaluate_dsm() fails to include revision and function number
           (David Wang)
      
         - Add a new AMDI0015 platform device ID to the ACPi APD driver for
           AMD SoCs (Shyam Sundar S K)
      
         - Use the driver core for the async probing management in the ACPI
           battery driver (Thomas Weißschuh)
      
         - Remove redundant initalizations of a local variable to NULL from
           the ACPI battery driver (Ilpo Järvinen)
      
         - Remove unneeded check in tps68470_pmic_opregion_probe() (Aleksandr
           Mishin)
      
         - Add support for setting the EPP register through the ACPI CPPC
           sysfs interface if it is in FFH (Mario Limonciello)
      
         - Fix MASK_VAL() usage in the ACPI CPPC library (Clément Léger)
      
         - Reduce the log level of a per-CPU message about idle states in the
           ACPI processor driver (Li RongQing)
      
         - Fix crash in exit_round_robin() in the ACPI processor aggregator
           device (PAD) driver (Seiji Nishikawa)
      
         - Add force_vendor quirk for Panasonic Toughbook CF-18 in the ACPI
           backlight driver (Hans de Goede)
      
         - Make the DMI checks related to backlight handling on Lenovo Yoga
           Tab 3 X90F less strict (Hans de Goede)
      
         - Enforce native backlight handling on Apple MacbookPro9,2 (Esther
           Shimanovich)
      
         - Add IRQ override quirks for Asus Vivobook Go E1404GAB and MECHREV
           GM7XG0M, and refine the TongFang GMxXGxx quirk (Li Chen, Tamim
           Khan, Werner Sembach)
      
         - Quirk ASUS ROG M16 to default to S3 sleep (Luke D. Jones)
      
         - Define and use symbols for device and class name lengths in the
           ACPI bus type code and make the code use strscpy() instead of
           strcpy() in several places (Muhammad Qasim Abdul Majeed)"
      
      * tag 'acpi-6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (70 commits)
        ACPI: resource: Add another DMI match for the TongFang GMxXGxx
        ACPI: CPPC: Add support for setting EPP register in FFH
        ACPI: PM: Quirk ASUS ROG M16 to default to S3 sleep
        ACPI: video: Add force_vendor quirk for Panasonic Toughbook CF-18
        ACPI: battery: use driver core managed async probing
        ACPI: button: Use strscpy() instead of strcpy()
        ACPI: resource: Skip IRQ override on Asus Vivobook Go E1404GAB
        ACPI: CPPC: Fix MASK_VAL() usage
        irqchip/sifive-plic: Add ACPI support
        ACPICA: Setup for ACPICA release 20240827
        ACPICA: Allow for more flexibility in _DSM args
        ACPICA: iasl: handle empty connection_node
        ACPICA: HMAT: Add extended linear address mode to MSCIS
        ACPICA: Avoid warning for Dump Functions
        ACPICA: Add support for Windows 11 22H2 _OSI string
        ACPICA: Update integer-to-hex-string conversions
        ACPICA: Add support for supressing leading zeros in hex strings
        ACPICA: Allow for supressing leading zeros when using acpi_ex_convert_to_ascii()
        ACPICA: Fix memory leak if acpi_ps_get_next_field() fails
        ACPICA: Fix memory leak if acpi_ps_get_next_namepath() fails
        ...
      11b31250
    • Linus Torvalds's avatar
      Merge tag 'for-linus-non-x86' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 64dd3b6a
      Linus Torvalds authored
      Pull kvm updates from Paolo Bonzini:
       "These are the non-x86 changes (mostly ARM, as is usually the case).
        The generic and x86 changes will come later"
      
        ARM:
      
         - New Stage-2 page table dumper, reusing the main ptdump
           infrastructure
      
         - FP8 support
      
         - Nested virtualization now supports the address translation
           (FEAT_ATS1A) family of instructions
      
         - Add selftest checks for a bunch of timer emulation corner cases
      
         - Fix multiple cases where KVM/arm64 doesn't correctly handle the
           guest trying to use a GICv3 that wasn't advertised
      
         - Remove REG_HIDDEN_USER from the sysreg infrastructure, making
           things little simpler
      
         - Prevent MTE tags being restored by userspace if we are actively
           logging writes, as that's a recipe for disaster
      
         - Correct the refcount on a page that is not considered for MTE tag
           copying (such as a device)
      
         - When walking a page table to split block mappings, synchronize only
           at the end the walk rather than on every store
      
         - Fix boundary check when transfering memory using FFA
      
         - Fix pKVM TLB invalidation, only affecting currently out of tree
           code but worth addressing for peace of mind
      
        LoongArch:
      
         - Revert qspinlock to test-and-set simple lock on VM.
      
         - Add Loongson Binary Translation extension support.
      
         - Add PMU support for guest.
      
         - Enable paravirt feature control from VMM.
      
         - Implement function kvm_para_has_feature().
      
        RISC-V:
      
         - Fix sbiret init before forwarding to userspace
      
         - Don't zero-out PMU snapshot area before freeing data
      
         - Allow legacy PMU access from guest
      
         - Fix to allow hpmcounter31 from the guest"
      
      * tag 'for-linus-non-x86' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (64 commits)
        LoongArch: KVM: Implement function kvm_para_has_feature()
        LoongArch: KVM: Enable paravirt feature control from VMM
        LoongArch: KVM: Add PMU support for guest
        KVM: arm64: Get rid of REG_HIDDEN_USER visibility qualifier
        KVM: arm64: Simplify visibility handling of AArch32 SPSR_*
        KVM: arm64: Simplify handling of CNTKCTL_EL12
        LoongArch: KVM: Add vm migration support for LBT registers
        LoongArch: KVM: Add Binary Translation extension support
        LoongArch: KVM: Add VM feature detection function
        LoongArch: Revert qspinlock to test-and-set simple lock on VM
        KVM: arm64: Register ptdump with debugfs on guest creation
        arm64: ptdump: Don't override the level when operating on the stage-2 tables
        arm64: ptdump: Use the ptdump description from a local context
        arm64: ptdump: Expose the attribute parsing functionality
        KVM: arm64: Add memory length checks and remove inline in do_ffa_mem_xfer
        KVM: arm64: Move pagetable definitions to common header
        KVM: arm64: nv: Add support for FEAT_ATS1A
        KVM: arm64: nv: Plumb handling of AT S1* traps from EL2
        KVM: arm64: nv: Make AT+PAN instructions aware of FEAT_PAN3
        KVM: arm64: nv: Sanitise SCTLR_EL1.EPAN according to VM configuration
        ...
      64dd3b6a
    • Linus Torvalds's avatar
      Merge tag 'cmpxchg.2024.09.15a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · 980bcd35
      Linus Torvalds authored
      Pull byte cmpxchg updates from Paul McKenney:
       "ARC/sh/xtensa: Provide one-byte cmpxchg emulation
      
        This series provides emulated one-byte cmpxchg() support for ARM, sh,
        and xtensa using the cmpxchg_emu_u8() function that uses a four-byte
        cmpxchg() to emulate the one-byte variant.
      
        This covers all architectures"
      
      * tag 'cmpxchg.2024.09.15a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
        xtensa: Emulate one-byte cmpxchg
        sh: Emulate one-byte cmpxchg
        ARC: Emulate one-byte cmpxchg
      980bcd35
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 114143a5
      Linus Torvalds authored
      Pull arm64 updates from Will Deacon:
       "The highlights are support for Arm's "Permission Overlay Extension"
        using memory protection keys, support for running as a protected guest
        on Android as well as perf support for a bunch of new interconnect
        PMUs.
      
        Summary:
      
        ACPI:
         - Enable PMCG erratum workaround for HiSilicon HIP10 and 11
           platforms.
         - Ensure arm64-specific IORT header is covered by MAINTAINERS.
      
        CPU Errata:
         - Enable workaround for hardware access/dirty issue on Ampere-1A
           cores.
      
        Memory management:
         - Define PHYSMEM_END to fix a crash in the amdgpu driver.
         - Avoid tripping over invalid kernel mappings on the kexec() path.
         - Userspace support for the Permission Overlay Extension (POE) using
           protection keys.
      
        Perf and PMUs:
         - Add support for the "fixed instruction counter" extension in the
           CPU PMU architecture.
         - Extend and fix the event encodings for Apple's M1 CPU PMU.
         - Allow LSM hooks to decide on SPE permissions for physical
           profiling.
         - Add support for the CMN S3 and NI-700 PMUs.
      
        Confidential Computing:
         - Add support for booting an arm64 kernel as a protected guest under
           Android's "Protected KVM" (pKVM) hypervisor.
      
        Selftests:
         - Fix vector length issues in the SVE/SME sigreturn tests
         - Fix build warning in the ptrace tests.
      
        Timers:
         - Add support for PR_{G,S}ET_TSC so that 'rr' can deal with
           non-determinism arising from the architected counter.
      
        Miscellaneous:
         - Rework our IPI-based CPU stopping code to try NMIs if regular IPIs
           don't succeed.
         - Minor fixes and cleanups"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (94 commits)
        perf: arm-ni: Fix an NULL vs IS_ERR() bug
        arm64: hibernate: Fix warning for cast from restricted gfp_t
        arm64: esr: Define ESR_ELx_EC_* constants as UL
        arm64: pkeys: remove redundant WARN
        perf: arm_pmuv3: Use BR_RETIRED for HW branch event if enabled
        MAINTAINERS: List Arm interconnect PMUs as supported
        perf: Add driver for Arm NI-700 interconnect PMU
        dt-bindings/perf: Add Arm NI-700 PMU
        perf/arm-cmn: Improve format attr printing
        perf/arm-cmn: Clean up unnecessary NUMA_NO_NODE check
        arm64/mm: use lm_alias() with addresses passed to memblock_free()
        mm: arm64: document why pte is not advanced in contpte_ptep_set_access_flags()
        arm64: Expose the end of the linear map in PHYSMEM_END
        arm64: trans_pgd: mark PTEs entries as valid to avoid dead kexec()
        arm64/mm: Delete __init region from memblock.reserved
        perf/arm-cmn: Support CMN S3
        dt-bindings: perf: arm-cmn: Add CMN S3
        perf/arm-cmn: Refactor DTC PMU register access
        perf/arm-cmn: Make cycle counts less surprising
        perf/arm-cmn: Improve build-time assertion
        ...
      114143a5
    • Linus Torvalds's avatar
      Merge tag 'mips_6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 8617d7d6
      Linus Torvalds authored
      Pull MIPS updates from Thomas Bogendoerfer:
      
       - use devm_clk_get_enabled() helper
      
       - prototype fixes
      
       - cleanup unused stuff
      
      * tag 'mips_6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        mips: Remove posix_types.h include from sigcontext.h
        bus: bt1-apb: change to use devm_clk_get_enabled() helper
        bus: bt1-axi: change to use devm_clk_get_enabled() helper
        MIPS: dec: prom: Remove unused unregister_prom_console() declaration
        MIPS: Remove unused mips_display/_scroll_message() declarations
        MIPS: Remove unused declarations in asm/cmp.h
        MIPS: MT: Remove unused function mips_mt_regdump()
        mips/jazz: remove unused jazz_handle_int() declaration
        MIPS: Remove unused function dump_au1000_dma_channel() in dma.c
        MIPS: ralink: Fix missing `get_c0_perfcount_int` prototype
        MIPS: ralink: Fix missing `plat_time_init` prototype
      8617d7d6
    • Linus Torvalds's avatar
      Merge tag 'x86_sgx_for_6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a4ebad65
      Linus Torvalds authored
      Pull x86 SGX updates from Dave Hansen:
       "These fix a deadlock in the SGX NUMA allocator.
      
        It's probably only triggerable today on servers with buggy BIOSes, but
        it's theoretically possible it can happen on less goofy systems"
      
      * tag 'x86_sgx_for_6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/sgx: Log information when a node lacks an EPC section
        x86/sgx: Fix deadlock in SGX NUMA node search
      a4ebad65
    • Linus Torvalds's avatar
      Merge tag 'x86_bugs_for_v6.12_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 963d0d60
      Linus Torvalds authored
      Pull x86 hw mitigation updates from Borislav Petkov:
      
       - Add CONFIG_ option for every hw CPU mitigation. The intent is to
         support configurations and scenarios where the mitigations code is
         irrelevant
      
       - Other small fixlets and improvements
      
      * tag 'x86_bugs_for_v6.12_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/bugs: Fix handling when SRSO mitigation is disabled
        x86/bugs: Add missing NO_SSB flag
        Documentation/srso: Document a method for checking safe RET operates properly
        x86/bugs: Add a separate config for GDS
        x86/bugs: Remove GDS Force Kconfig option
        x86/bugs: Add a separate config for SSB
        x86/bugs: Add a separate config for Spectre V2
        x86/bugs: Add a separate config for SRBDS
        x86/bugs: Add a separate config for Spectre v1
        x86/bugs: Add a separate config for RETBLEED
        x86/bugs: Add a separate config for L1TF
        x86/bugs: Add a separate config for MMIO Stable Data
        x86/bugs: Add a separate config for TAA
        x86/bugs: Add a separate config for MDS
      963d0d60
    • Linus Torvalds's avatar
      Merge tag 'x86_cpu_for_v6.12_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d580d74e
      Linus Torvalds authored
      Pull x86 cpuid updates from Borislav Petkov:
      
       - Add the final conversions to the new Intel VFM CPU model matching
         macros which include the vendor and finally drop the old ones which
         hardcode family 6
      
      * tag 'x86_cpu_for_v6.12_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpu/vfm: Delete all the *_FAM6_ CPU #defines
        x86/cpu/vfm: Delete X86_MATCH_INTEL_FAM6_MODEL[_STEPPING]() macros
        extcon: axp288: Switch to new Intel CPU model defines
        x86/cpu/intel: Replace PAT erratum model/family magic numbers with symbolic IFM references
      d580d74e
    • Linus Torvalds's avatar
      Merge tag 'x86_sev_for_v6.12_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b56dff26
      Linus Torvalds authored
      Pull x86 SEV updates from Borislav Petkov:
      
       - A bunch of cleanups to the sev-guest driver. All in preparation for
         future SEV work
      
      * tag 'x86_sev_for_v6.12_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        virt: sev-guest: Ensure the SNP guest messages do not exceed a page
        virt: sev-guest: Fix user-visible strings
        virt: sev-guest: Rename local guest message variables
        virt: sev-guest: Replace dev_dbg() with pr_debug()
      b56dff26
    • Linus Torvalds's avatar
      Merge tag 'ras_core_for_v6.12_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d0a63f0e
      Linus Torvalds authored
      Pull x86 RAS updates from Borislav Petkov:
      
       - Reorganize the struct mce populating functions so that MCA errors
         reported through BIOS' BERT method can report the correct CPU number
         the error has been detected on
      
      * tag 'ras_core_for_v6.12_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce: Use mce_prep_record() helpers for apei_smca_report_x86_error()
        x86/mce: Define mce_prep_record() helpers for common and per-CPU fields
        x86/mce: Rename mce_setup() to mce_prep_record()
      d0a63f0e
    • Linus Torvalds's avatar
      Merge tag 'x86_microcode_for_v6.12_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 79f1a6ad
      Linus Torvalds authored
      Pull x86 microcode loading updates from Borislav Petkov:
      
       - Simplify microcode patches loading on AMD Zen and newer by using the
         family, model and stepping encoded in the patch revision number
      
       - Fix a silly clang warning
      
      * tag 'x86_microcode_for_v6.12_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/microcode/AMD: Fix a -Wsometimes-uninitialized clang false positive
        x86/microcode/AMD: Use the family,model,stepping encoded in the patch ID
      79f1a6ad
    • Linus Torvalds's avatar
      Merge tag 'edac_updates_for_v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · 7dfc15c4
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
      
       - Drop a now obsolete ppc4xx_edac driver
      
       - Fix conversion to physical memory addresses on Intel's Elkhart Lake
         and Ice Lake hardware when the system address is above the
         (Top-Of-Memory) TOM address
      
       - Pay attention to the memory hole on Zynq UltraScale+ MPSoC DDR
         controllers when injecting errors for testing purposes
      
       - Add support for translating normalized error addresses reported by an
         AMD memory controller into system physical addresses using an UEFI
         mechanism called platform runtime mechanism (PRM).
      
       - The usual cleanups and fixes
      
      * tag 'edac_updates_for_v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC: Drop obsolete PPC4xx driver
        EDAC/sb_edac: Fix the compile warning of large frame size
        EDAC/{skx_common,i10nm}: Remove the AMAP register for determing DDR5
        EDAC/{skx_common,skx,i10nm}: Move the common debug code to skx_common
        EDAC/igen6: Fix conversion of system address to physical memory address
        EDAC/synopsys: Fix error injection on Zynq UltraScale+
        RAS/AMD/ATL: Translate normalized to system physical addresses using PRM
        ACPI: PRM: Add PRM handler direct call support
      7dfc15c4
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rmk/linux · 1636f57c
      Linus Torvalds authored
      Pull ARM updates from Russell King:
      
       - clean up TTBCR magic numbers and use u32 for this register
      
       - fix clang issue in VFP code leading to kernel oops, caused by
         compiler instruction scheduling.
      
       - switch 32-bit Arm to use GENERIC_CPU_DEVICES and use the
         arch_cpu_is_hotpluggable() hook.
      
       - pass struct device to arm_iommu_create_mapping() and move over to use
         iommu_paging_domain_alloc() rather than iommu_domain_alloc()
      
       - make amba_bustype constant
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rmk/linux:
        ARM: 9418/1: dma-mapping: Use iommu_paging_domain_alloc()
        ARM: 9417/1: dma-mapping: Pass device to arm_iommu_create_mapping()
        ARM: 9416/1: amba: make amba_bustype constant
        ARM: 9412/1: Convert to arch_cpu_is_hotpluggable()
        ARM: 9411/1: Switch over to GENERIC_CPU_DEVICES using arch_register_cpu()
        ARM: 9410/1: vfp: Use asm volatile in fmrx/fmxr macros
        ARM: 9409/1: mmu: Do not use magic number for TTBCR settings
      1636f57c
    • Linus Torvalds's avatar
      Merge tag 'v6.12-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 85ffc6e4
      Linus Torvalds authored
      Pull crypto update from Herbert Xu"
       "API:
         - Make self-test asynchronous
      
        Algorithms:
         - Remove MPI functions added for SM3
         - Add allocation error checks to remaining MPI functions (introduced
           for SM3)
         - Set default Jitter RNG OSR to 3
      
        Drivers:
         - Add hwrng driver for Rockchip RK3568 SoC
         - Allow disabling SR-IOV VFs through sysfs in qat
         - Fix device reset bugs in hisilicon
         - Fix authenc key parsing by using generic helper in octeontx*
      
        Others:
         - Fix xor benchmarking on parisc"
      
      * tag 'v6.12-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (96 commits)
        crypto: n2 - Set err to EINVAL if snprintf fails for hmac
        crypto: camm/qi - Use ERR_CAST() to return error-valued pointer
        crypto: mips/crc32 - Clean up useless assignment operations
        crypto: qcom-rng - rename *_of_data to *_match_data
        crypto: qcom-rng - fix support for ACPI-based systems
        dt-bindings: crypto: qcom,prng: document support for SA8255p
        crypto: aegis128 - Fix indentation issue in crypto_aegis128_process_crypt()
        crypto: octeontx* - Select CRYPTO_AUTHENC
        crypto: testmgr - Hide ENOENT errors
        crypto: qat - Remove trailing space after \n newline
        crypto: hisilicon/sec - Remove trailing space after \n newline
        crypto: algboss - Pass instance creation error up
        crypto: api - Fix generic algorithm self-test races
        crypto: hisilicon/qm - inject error before stopping queue
        crypto: hisilicon/hpre - mask cluster timeout error
        crypto: hisilicon/qm - reset device before enabling it
        crypto: hisilicon/trng - modifying the order of header files
        crypto: hisilicon - add a lock for the qp send operation
        crypto: hisilicon - fix missed error branch
        crypto: ccp - do not request interrupt on cmd completion when irqs disabled
        ...
      85ffc6e4
    • Linus Torvalds's avatar
      Merge tag 'net-next-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · 94106455
      Linus Torvalds authored
      Pull networking updates from Jakub Kicinski:
       "The zero-copy changes are relatively significant, but regression risk
        should be contained. The feature needs to be used to cause trouble.
      
        Also it feels like we got an order of magnitude more semi-automated
        "refactoring" chaff than usual, I wonder if it's just us.
      
        Core & protocols:
      
         - Support Device Memory TCP, ability to zero-copy receive TCP
           payloads to a DMABUF region of memory while packet headers land
           separately in normal kernel buffers, and TCP processes then as
           usual.
      
         - The ability to read the PTP PHC (Physical Hardware Clock) alongside
           MONOTONIC_RAW timestamps with PTP_SYS_OFFSET_EXTENDED. Previously
           only CLOCK_REALTIME was supported.
      
         - Allow matching on all bits of IP DSCP for routing decisions.
           Previously we only supported on matching TOS bits in IPv4 which is
           a narrower interpretation of the same header field.
      
         - Increase the range of weights used for multi-path routing from
           8 bits to 16 bits.
      
         - Add support for IPv6 PIO p flag in the Prefix Information Option
           per draft-ietf-6man-pio-pflag.
      
         - IPv6 IOAM6 support for new tunsrc encap mode for better
           performance.
      
         - Detect destinations which blackhole MPTCP traffic and avoid
           initiating MPTCP connections to them for a certain period of time,
           1h by default.
      
         - Improve IPsec control path performance by removing the inexact
           policies list.
      
         - AF_VSOCK: add support for SIOCOUTQ ioctl.
      
         - Add enum for reasons TCP reset was sent for easier tracing.
      
         - Add SMC ringbufs usage statistics.
      
        Drivers:
      
         - Handle netconsole setup failures more gracefully, don't fail
           loading, retain the specified target as disabled.
      
         - Extend bonding's IPsec offload pass thru capabilities (ESN, stats).
      
        Filtering:
      
         - Add TCP_BPF_SOCK_OPS_CB_FLAGS to bpf_*sockopt() to address the case
           when long-lived sockets miss a chance to set additional callbacks
           if a sockops program was not attached early in their lifetime.
      
         - Support using BPF skb helpers in tracepoints.
      
         - Conntrack Netlink: support CTA_FILTER for flush.
      
         - Improve SCTP support in nfnetlink_queue.
      
         - Improve performance of large nftables flush transactions.
      
        Things we sprinkled into general kernel code:
      
         - selftests: support setting an "interpreter" for script files; make
           it easy to run as separate cases tests where one "interpreter" is
           fed various test descriptions (in our case packet sequences).
      
        Driver API:
      
         - Extend core and ethtool APIs to support many PHYs connected to a
           single interface (PHY topologies).
      
         - Extend cable diagnostics to specify whether Time Domain
           Reflectometry (TDR) or Active Link Cable Diagnostic (ALCD) was
           used.
      
         - Add library for implementing MAC-PHY Ethernet drivers for SPI
           devices compatible with Open Alliance 10BASE-T1x MAC-PHY Serial
           Interface (TC6) standard.
      
         - Add helpers to the PHY framework, for PHYs following the Open
           Alliance standards:
             - 1000BaseT1 link settings
             - cable test and diagnostics
      
         - Support listing / dumping all allocated RSS contexts.
      
         - Add configuration for frequency Embedded SYNC in DPLL, which
           magically embeds sync pulses into Ethernet signaling.
      
        Device drivers:
      
         - Ethernet high-speed NICs:
            - Broadcom (bnxt):
               - use better FW APIs for queue reset
               - support QOS and TPID settings for the SR-IOV VLAN
               - support dynamic MSI-X allocation
            - Intel (100G, ice, idpf):
               - ice: support PCIe subfunctions
               - iavf: add support for TC U32 filters on VFs
               - ice: support Embedded SYNC in DPLL
            - nVidia/Mellanox (mlx5):
               - support HW managed steering tables
               - support PCIe PTM cross timestamping
            - AMD/Pensando:
               - ionic: use page_pool to increase Rx performance
            - Cisco (enic):
               - report per-queue statistics
      
         - Ethernet virtual:
            - Microsoft vNIC:
               - mana: support configuring ring length
               - netvsc: enable more channels on systems with many CPUs
            - IBM veth:
               - optimize polling to improve TCP_RR performance
               - optimize performance of Tx handling
            - VirtIO net:
               - synchronize the operstate with the admin state to allow a
                 lower virtio-net to propagate the link status to an upper
                 device like macvlan
      
         - Ethernet NICs consumer, and embedded:
            - Add driver for Realtek automotive PCIe devices (RTL9054,
              RTL9068, RTL9072, RTL9075, RTL9068, RTL9071)
            - Add driver for Microchip LAN8650/1 10BASE-T1S MAC-PHY.
            - Microchip:
               - lan743x: use phylink - support WOL, EEE, pause, link settings
               - add Wake-on-LAN support for KSZ87xx family
               - add KSZ8895/KSZ8864 switch support
               - factor out FDMA code and use it in sparx5 and lan966x
                 (including DCB support in both)
            - Synopsys (stmmac):
               - support frame preemption (configured using TC and ethtool)
               - support Loongson DWMAC (GMAC v3.73)
               - support RockChips RK3576 DWMAC
            - TI:
               - am65-cpsw: add multi queue RX support
               - icssg-prueth: HSR offload support
            - Cadence (macb):
               - enable software (hrtimer based) IRQ coalescing by default
            - Xilinx (axinet):
               - expose HW statistics
               - improve multicast filtering
               - relax Rx checksum offload constraints
            - MediaTek:
               - mt7530: add EN7581 support
            - Aspeed (ftgmac100):
               - report link speed and duplex
            - Intel:
               - igc: add mqprio offload
               - igc: report EEE configuration
            - RealTek (r8169):
               - add support for RTL8126A rev.b
            - Vitesse (vsc73xx):
               - implement FDB add/del/dump operations
            - Freescale (fs_enet):
               - use phylink
      
         - Ethernet PHYs:
            - vitesse: implement downshift and MDI-X in vsc73xx PHYs
            - microchip: support LAN887x, supporting IEEE 802.3bw (100BASE-T1)
              and IEEE 802.3bp (1000BASE-T1) specifications
            - add Applied Micro QT2025 PHY driver (in Rust)
            - add Motorcomm yt8821 2.5G Ethernet PHY driver
      
         - CAN:
            - add driver for Rockchip RK3568 CAN-FD controller
            - flexcan: add wakeup support for imx95
            - kvaser_usb: set hardware timestamp on transmitted packets
      
         - WiFi:
            - mac80211/cfg80211:
               - EHT rate support in AQL airtime fairness
               - handle DFS (radar detection) per link in Multi-Link Operation
            - RealTek (rtw89):
               - support RTL8852BT and 8852BE-VT (WiFi 6)
               - support hardware rfkill
               - support HW encryption in unicast management frames
               - support Wake-on-WLAN with supported network detection
            - RealTek (rtw89):
               - improve Rx performance by using USB frame aggregation
               - support USB 3 with RTL8822CU/RTL8822BU
            - Intel (iwlwifi/mvm):
               - offload RLC/SMPS functionality to firmware
            - Marvell (mwifiex):
               - add host based MLME to enable WPA3
      
         - Bluetooth:
            - add support for Amlogic HCI UART protocol
            - add support for ISO data/packets to Intel and NXP drivers"
      
      * tag 'net-next-6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1303 commits)
        net/mlx5: HWS, check the correct variable in hws_send_ring_alloc_sq()
        netfilter: nft_socket: Fix a NULL vs IS_ERR() bug in nft_socket_cgroup_subtree_level()
        ice: Fix a NULL vs IS_ERR() check in probe()
        ice: Fix a couple NULL vs IS_ERR() bugs
        net: ethernet: fs_enet: Make the per clock optional
        net: ti: icssg-prueth: Add multicast filtering support in HSR mode
        net: ti: icssg-prueth: Enable HSR Tx duplication, Tx Tag and Rx Tag offload
        net: ti: icssg-prueth: Add support for HSR frame forward offload
        net: ti: icssg-prueth: Stop hardcoding def_inc
        net: ti: icss-iep: Move icss_iep structure
        net: ibm: emac: get rid of wol_irq
        net: ibm: emac: remove all waiting code
        net: ibm: emac: replace of_get_property
        net: ibm: emac: use netdev's phydev directly
        net: ibm: emac: use devm for register_netdev
        net: ibm: emac: remove mii_bus with devm
        net: ibm: emac: use devm for of_iomap
        net: ibm: emac: manage emac_irq with devm
        net: ibm: emac: use devm for alloc_etherdev
        octeontx2-af: debugfs: Add Channel info to RPM map
        ...
      94106455
  3. 15 Sep, 2024 12 commits
  4. 14 Sep, 2024 11 commits