1. 10 Jan, 2024 20 commits
    • Breno Leitao's avatar
      x86/bugs: Rename CONFIG_CPU_SRSO => CONFIG_MITIGATION_SRSO · a033eec9
      Breno Leitao authored
      Step 9/10 of the namespace unification of CPU mitigations related Kconfig options.
      Suggested-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Acked-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: https://lore.kernel.org/r/20231121160740.1249350-10-leitao@debian.org
      a033eec9
    • Breno Leitao's avatar
      x86/bugs: Rename CONFIG_CPU_IBRS_ENTRY => CONFIG_MITIGATION_IBRS_ENTRY · 1da8d217
      Breno Leitao authored
      Step 8/10 of the namespace unification of CPU mitigations related Kconfig options.
      Suggested-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Acked-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: https://lore.kernel.org/r/20231121160740.1249350-9-leitao@debian.org
      1da8d217
    • Breno Leitao's avatar
      x86/bugs: Rename CONFIG_CPU_UNRET_ENTRY => CONFIG_MITIGATION_UNRET_ENTRY · ac61d439
      Breno Leitao authored
      Step 7/10 of the namespace unification of CPU mitigations related Kconfig options.
      Suggested-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Acked-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: https://lore.kernel.org/r/20231121160740.1249350-8-leitao@debian.org
      ac61d439
    • Breno Leitao's avatar
      x86/bugs: Rename CONFIG_SLS => CONFIG_MITIGATION_SLS · 7b75782f
      Breno Leitao authored
      Step 6/10 of the namespace unification of CPU mitigations related Kconfig options.
      Suggested-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Acked-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: https://lore.kernel.org/r/20231121160740.1249350-7-leitao@debian.org
      7b75782f
    • Breno Leitao's avatar
      x86/bugs: Rename CONFIG_RETPOLINE => CONFIG_MITIGATION_RETPOLINE · aefb2f2e
      Breno Leitao authored
      Step 5/10 of the namespace unification of CPU mitigations related Kconfig options.
      
      [ mingo: Converted a few more uses in comments/messages as well. ]
      Suggested-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Reviewed-by: default avatarAriel Miculas <amiculas@cisco.com>
      Acked-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: https://lore.kernel.org/r/20231121160740.1249350-6-leitao@debian.org
      aefb2f2e
    • Breno Leitao's avatar
      x86/bugs: Rename CONFIG_PAGE_TABLE_ISOLATION => CONFIG_MITIGATION_PAGE_TABLE_ISOLATION · ea4654e0
      Breno Leitao authored
      Step 4/10 of the namespace unification of CPU mitigations related Kconfig options.
      
      [ mingo: Converted new uses that got added since the series was posted. ]
      Suggested-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Acked-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: https://lore.kernel.org/r/20231121160740.1249350-5-leitao@debian.org
      ea4654e0
    • Breno Leitao's avatar
      x86/bugs: Rename CONFIG_CALL_DEPTH_TRACKING => CONFIG_MITIGATION_CALL_DEPTH_TRACKING · 5fa31af3
      Breno Leitao authored
      Step 3/10 of the namespace unification of CPU mitigations related Kconfig options.
      Suggested-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Acked-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: https://lore.kernel.org/r/20231121160740.1249350-4-leitao@debian.org
      5fa31af3
    • Breno Leitao's avatar
      x86/bugs: Rename CONFIG_CPU_IBPB_ENTRY => CONFIG_MITIGATION_IBPB_ENTRY · e0b8fcfa
      Breno Leitao authored
      Step 2/10 of the namespace unification of CPU mitigations related Kconfig options.
      Suggested-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Acked-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: https://lore.kernel.org/r/20231121160740.1249350-3-leitao@debian.org
      e0b8fcfa
    • Breno Leitao's avatar
      x86/bugs: Rename CONFIG_GDS_FORCE_MITIGATION => CONFIG_MITIGATION_GDS_FORCE · be83e809
      Breno Leitao authored
      So the CPU mitigations Kconfig entries - there's 10 meanwhile - are named
      in a historically idiosyncratic and hence rather inconsistent fashion
      and have become hard to relate with each other over the years:
      
         https://lore.kernel.org/lkml/20231011044252.42bplzjsam3qsasz@treble/
      
      When they were introduced we never expected that we'd eventually have
      about a dozen of them, and that more organization would be useful,
      especially for Linux distributions that want to enable them in an
      informed fashion, and want to make sure all mitigations are configured
      as expected.
      
      For example, the current CONFIG_SPECULATION_MITIGATIONS namespace is only
      halfway populated, where some mitigations have entries in Kconfig, and
      they could be modified, while others mitigations do not have Kconfig entries,
      and can not be controlled at build time.
      
      Fine-grained control over these Kconfig entries can help in a number of ways:
      
        1) Users can choose and pick only mitigations that are important for
           their workloads.
      
        2) Users and developers can choose to disable mitigations that mangle
           the assembly code generation, making it hard to read.
      
        3) Separate Kconfigs for just source code readability,
           so that we see *which* butt-ugly piece of crap code is for what
           reason...
      
      In most cases, if a mitigation is disabled at compilation time, it
      can still be enabled at runtime using kernel command line arguments.
      
      This is the first patch of an initial series that renames various
      mitigation related Kconfig options, unifying them under a single
      CONFIG_MITIGATION_* namespace:
      
          CONFIG_GDS_FORCE_MITIGATION => CONFIG_MITIGATION_GDS_FORCE
          CONFIG_CPU_IBPB_ENTRY       => CONFIG_MITIGATION_IBPB_ENTRY
          CONFIG_CALL_DEPTH_TRACKING  => CONFIG_MITIGATION_CALL_DEPTH_TRACKING
          CONFIG_PAGE_TABLE_ISOLATION => CONFIG_MITIGATION_PAGE_TABLE_ISOLATION
          CONFIG_RETPOLINE            => CONFIG_MITIGATION_RETPOLINE
          CONFIG_SLS                  => CONFIG_MITIGATION_SLS
          CONFIG_CPU_UNRET_ENTRY      => CONFIG_MITIGATION_UNRET_ENTRY
          CONFIG_CPU_IBRS_ENTRY       => CONFIG_MITIGATION_IBRS_ENTRY
          CONFIG_CPU_SRSO             => CONFIG_MITIGATION_SRSO
          CONFIG_RETHUNK              => CONFIG_MITIGATION_RETHUNK
      
      Implement step 1/10 of the namespace unification of CPU mitigations related
      Kconfig options and rename CONFIG_GDS_FORCE_MITIGATION to
      CONFIG_MITIGATION_GDS_FORCE.
      
      [ mingo: Rewrote changelog for clarity. ]
      Suggested-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Signed-off-by: default avatarBreno Leitao <leitao@debian.org>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Acked-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: https://lore.kernel.org/r/20231121160740.1249350-2-leitao@debian.org
      be83e809
    • Linus Torvalds's avatar
      Merge tag 'linux_kselftest-next-6.8-rc1' of... · ab27740f
      Linus Torvalds authored
      Merge tag 'linux_kselftest-next-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest update from Shuah Khan:
       "Enhancements to reporting test results, fixes to root and user run
        behavior and fixing ksft_print_msg() calls"
      
      * tag 'linux_kselftest-next-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        tracing/selftests: Add ownership modification tests for eventfs
        selftests: sched: Remove initialization to 0 for a static variable
        selftests: capabilities: namespace create varies for root and normal user
        selftests: prctl: Add prctl test for PR_GET_NAME
        kselftest/vDSO: Use ksft_print_msg() rather than printf in vdso_test_abi
        kselftest/vDSO: Fix message formatting for clock_id logging
        kselftest/vDSO: Make test name reporting for vdso_abi_test tooling friendly
        selftests:x86: Fix Format String Warnings in lam.c
        selftests/breakpoints: Fix format specifier in ksft_print_msg in step_after_suspend_test.c
        selftests:breakpoints: Fix Format String Warning in breakpoint_test
      ab27740f
    • Linus Torvalds's avatar
      Merge tag 'linux_kselftest-kunit-6.8-rc1' of... · 41daf06e
      Linus Torvalds authored
      Merge tag 'linux_kselftest-kunit-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull KUnit updates from Shuah Khan:
      
       - a new feature that adds APIs for managing devices introducing a set
         of helper functions which allow devices (internally a struct
         kunit_device) to be created and managed by KUnit.
      
         These devices will be automatically unregistered on test exit. These
         helpers can either use a user-provided struct device_driver, or have
         one automatically created and managed by KUnit. In both cases, the
         device lives on a new kunit_bus.
      
       - changes to switch drm/tests to use kunit devices
      
       - several fixes and enhancements to attribute feature
      
       - changes to reorganize deferred action function introducing
         KUNIT_DEFINE_ACTION_WRAPPER
      
       - new feature adds ability to run tests after boot using debugfs
      
       - fixes and enhancements to string-stream-test:
           - parse ERR_PTR in string_stream_destroy()
           - unchecked dereference in bug fix in debugfs_print_results()
           - handling errors from alloc_string_stream()
           - NULL-dereference bug fix in kunit_init_suite()
      
      * tag 'linux_kselftest-kunit-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (27 commits)
        kunit: Fix some comments which were mistakenly kerneldoc
        kunit: Protect string comparisons against NULL
        kunit: Add example of kunit_activate_static_stub() with pointer-to-function
        kunit: Allow passing function pointer to kunit_activate_static_stub()
        kunit: Fix NULL-dereference in kunit_init_suite() if suite->log is NULL
        kunit: Reset test->priv after each param iteration
        kunit: Add example for using test->priv
        drm/tests: Switch to kunit devices
        ASoC: topology: Replace fake root_device with kunit_device in tests
        overflow: Replace fake root_device with kunit_device
        fortify: test: Use kunit_device
        kunit: Add APIs for managing devices
        Documentation: Add debugfs docs with run after boot
        kunit: add ability to run tests after boot using debugfs
        kunit: add is_init test attribute
        kunit: add example suite to test init suites
        kunit: add KUNIT_INIT_TABLE to init linker section
        kunit: move KUNIT_TABLE out of INIT_DATA
        kunit: tool: add test for parsing attributes
        kunit: tool: fix parsing of test attributes
        ...
      41daf06e
    • Linus Torvalds's avatar
      Merge tag 'linux_kselftest-nolibc-6.8-rc1' of... · 5d09f61e
      Linus Torvalds authored
      Merge tag 'linux_kselftest-nolibc-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull nolibc updates from Shuah Khan:
      
       - Support for PIC mode on MIPS
      
       - Support for getrlimit()/setrlimit()
      
       - Replace some custom declarations with UAPI includes
      
       - A new script "run-tests.sh" to run the testsuite over different
         architectures and configurations
      
       - A few non-functional code cleanups
      
       - Minor improvements to nolibc-test, primarily to support the test
         script
      
      * tag 'linux_kselftest-nolibc-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (22 commits)
        selftests/nolibc: disable coredump via setrlimit
        tools/nolibc: add support for getrlimit/setrlimit
        tools/nolibc: drop custom definition of struct rusage
        tools/nolibc: drop duplicated testcase ioctl_tiocinq
        tools/nolibc: annotate va_list printf formats
        selftests/nolibc: make result alignment more robust
        tools/nolibc: mips: add support for PIC
        selftests/nolibc: run-tests.sh: enable testing via qemu-user
        selftests/nolibc: introduce QEMU_ARCH_USER
        selftests/nolibc: fix testcase status alignment
        selftests/nolibc: add configuration for mipso32be
        selftests/nolibc: extraconfig support
        selftests/nolibc: explicitly specify ABI for MIPS
        selftests/nolibc: use XARCH for MIPS
        tools/nolibc: move MIPS ABI validation into arch-mips.h
        tools/nolibc: error out on unsupported architecture
        selftests/nolibc: add script to run testsuite
        selftests/nolibc: support out-of-tree builds
        selftests/nolibc: anchor paths in $(srcdir) if possible
        selftests/nolibc: use EFI -bios for LoongArch qemu
        ...
      5d09f61e
    • Linus Torvalds's avatar
      Merge tag 'efi-next-for-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi · a7e4c6cf
      Linus Torvalds authored
      Pull EFI updates from Ard Biesheuvel:
      
       - Fix a syzbot reported issue in efivarfs where concurrent accesses to
         the file system resulted in list corruption
      
       - Add support for accessing EFI variables via the TEE subsystem (and a
         trusted application in the secure world) instead of via EFI runtime
         firmware running in the OS's execution context
      
       - Avoid linker tricks to discover the image base on LoongArch
      
      * tag 'efi-next-for-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
        efi: memmap: fix kernel-doc warnings
        efi/loongarch: Directly position the loaded image file
        efivarfs: automatically update super block flag
        efi: Add tee-based EFI variable driver
        efi: Add EFI_ACCESS_DENIED status code
        efi: expose efivar generic ops register function
        efivarfs: Move efivarfs list into superblock s_fs_info
        efivarfs: Free s_fs_info on unmount
        efivarfs: Move efivar availability check into FS context init
        efivarfs: force RO when remounting if SetVariable is not supported
      a7e4c6cf
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.8-1' of https://github.com/cminyard/linux-ipmi · 7c6a3fc9
      Linus Torvalds authored
      Pull IPMI updates from Corey Minyard:
       "Some small fixes. Nothing big, just aligning things with some changes"
      
      * tag 'for-linus-6.8-1' of https://github.com/cminyard/linux-ipmi:
        ipmi: Remove usage of the deprecated ida_simple_xx() API
        ipmi: Use regspacings passed as a module parameter
        ipmi: si: Use device_get_match_data()
      7c6a3fc9
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v6.8-1' of... · 5fda5698
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
      
      Pull x86 platform driver updates from Hans de Goede:
      
       - Intel PMC / PMT / TPMI / uncore-freq / vsec improvements and new
         platform support
      
       - AMD PMC / PMF improvements and new platform support
      
       - AMD ACPI based Wifi band RFI mitigation feature (WBRF)
      
       - WMI bus driver cleanups and improvements (Armin Wolf)
      
       - acer-wmi Predator PHN16-71 support
      
       - New Silicom network appliance EC LEDs / GPIOs driver
      
      * tag 'platform-drivers-x86-v6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (96 commits)
        platform/x86/amd/pmc: Modify SMU message port for latest AMD platform
        platform/x86/amd/pmc: Add 1Ah family series to STB support list
        platform/x86/amd/pmc: Add idlemask support for 1Ah family
        platform/x86/amd/pmc: call amd_pmc_get_ip_info() during driver probe
        platform/x86/amd/pmc: Add VPE information for AMDI000A platform
        platform/x86/amd/pmc: Send OS_HINT command for AMDI000A platform
        platform/x86/amd/pmf: Return a status code only as a constant in two functions
        platform/x86/amd/pmf: Return directly after a failed apmf_if_call() in apmf_sbios_heartbeat_notify()
        platform/x86: wmi: linux/wmi.h: fix Excess kernel-doc description warning
        platform/x86/intel/pmc: Add missing extern
        platform/x86/intel/pmc/lnl: Add GBE LTR ignore during suspend
        platform/x86/intel/pmc/arl: Add GBE LTR ignore during suspend
        platform/x86: intel-uncore-freq: Add additional client processors
        platform/x86: Remove "X86 PLATFORM DRIVERS - ARCH" from MAINTAINERS
        platform/x86: hp-bioscfg: Removed needless asm-generic
        platform/x86/intel/pmc: Add Lunar Lake M support to intel_pmc_core driver
        platform/x86/intel/pmc: Add Arrow Lake S support to intel_pmc_core driver
        platform/x86/intel/pmc: Add ssram_init flag in PMC discovery in Meteor Lake
        platform/x86/intel/pmc: Move common code to core.c
        platform/x86/intel/pmc: Add PSON residency counter for Alder Lake
        ...
      5fda5698
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-firmware-for-v6.8' of... · b9b56eb2
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-firmware-for-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform firmware updates from Tzung-Bi Shih:
      
        - Fix an invalid address access.
      
        - Use .remove_new() for converting the callback to return void
      
      * tag 'tag-chrome-platform-firmware-for-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
        firmware: coreboot: Convert to platform remove callback returning void
        firmware: coreboot: framebuffer: Avoid invalid zero physical address
      b9b56eb2
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-for-v6.8' of... · 3efcce4a
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-for-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform updates from Tzung-Bi Shih:
      
       - Implement quickselect for median in cros-ec-sensorhub
      
       - Fix an out of boundary array access in cros-ec-vbc
      
       - Cleanups and fix typos
      
      * tag 'tag-chrome-platform-for-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
        platform/chrome/wilco_ec: Remove usage of the deprecated ida_simple_xx() API
        platform/chrome: cros_ec_vbc: Fix -Warray-bounds warnings
        platform/chrome: sensorhub: Implement quickselect for median calculation
        platform/chrome: sensorhub: Fix typos
      3efcce4a
    • Linus Torvalds's avatar
      Merge tag 'pm-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 7da71072
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These add support for new processors (Sierra Forest, Grand Ridge and
        Meteor Lake) to the intel_idle driver, make intel_pstate run on
        Emerald Rapids without HWP support and adjust it to utilize EPP values
        supplied by the platform firmware, fix issues, clean up code and
        improve documentation.
      
        The most significant fix addresses deadlocks in the core system-wide
        resume code that occur if async_schedule_dev() attempts to run its
        argument function synchronously (for example, due to a memory
        allocation failure). It rearranges the code in question which may
        increase the system resume time in some cases, but this basically is a
        removal of a premature optimization. That optimization will be added
        back later, but properly this time.
      
        Specifics:
      
         - Add support for the Sierra Forest, Grand Ridge and Meteorlake SoCs
           to the intel_idle cpuidle driver (Artem Bityutskiy, Zhang Rui)
      
         - Do not enable interrupts when entering idle in the haltpoll cpuidle
           driver (Borislav Petkov)
      
         - Add Emerald Rapids support in no-HWP mode to the intel_pstate
           cpufreq driver (Zhenguo Yao)
      
         - Use EPP values programmed by the platform firmware as balanced
           performance ones by default in intel_pstate (Srinivas Pandruvada)
      
         - Add a missing function return value check to the SCMI cpufreq
           driver to avoid unexpected behavior (Alexandra Diupina)
      
         - Fix parameter type warning in the armada-8k cpufreq driver (Gregory
           CLEMENT)
      
         - Rework trans_stat_show() in the devfreq core code to avoid buffer
           overflows (Christian Marangi)
      
         - Synchronize devfreq_monitor_[start/stop] so as to prevent a timer
           list corruption from occurring when devfreq governors are switched
           frequently (Mukesh Ojha)
      
         - Fix possible deadlocks in the core system-wide PM code that occur
           if device-handling functions cannot be executed asynchronously
           during resume from system-wide suspend (Rafael J. Wysocki)
      
         - Clean up unnecessary local variable initializations in multiple
           places in the hibernation code (Wang chaodong, Li zeming)
      
         - Adjust core hibernation code to avoid missing wakeup events that
           occur after saving an image to persistent storage (Chris Feng)
      
         - Update hibernation code to enforce correct ordering during image
           compression and decompression (Hongchen Zhang)
      
         - Use kmap_local_page() instead of kmap_atomic() in copy_data_page()
           during hibernation and restore (Chen Haonan)
      
         - Adjust documentation and code comments to reflect recent tasks
           freezer changes (Kevin Hao)
      
         - Repair excess function parameter description warning in the
           hibernation image-saving code (Randy Dunlap)
      
         - Fix _set_required_opps when opp is NULL (Bryan O'Donoghue)
      
         - Use device_get_match_data() in the OPP code for TI (Rob Herring)
      
         - Clean up OPP level and other parts and call dev_pm_opp_set_opp()
           recursively for required OPPs (Viresh Kumar)"
      
      * tag 'pm-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (35 commits)
        OPP: Rename 'rate_clk_single'
        OPP: Pass rounded rate to _set_opp()
        OPP: Relocate dev_pm_opp_sync_regulators()
        PM: sleep: Fix possible deadlocks in core system-wide PM code
        OPP: Move dev_pm_opp_icc_bw to internal opp.h
        async: Introduce async_schedule_dev_nocall()
        async: Split async_schedule_node_domain()
        cpuidle: haltpoll: Do not enable interrupts when entering idle
        OPP: Fix _set_required_opps when opp is NULL
        OPP: The level field is always of unsigned int type
        PM: hibernate: Repair excess function parameter description warning
        PM: sleep: Remove obsolete comment from unlock_system_sleep()
        cpufreq: intel_pstate: Add Emerald Rapids support in no-HWP mode
        Documentation: PM: Adjust freezing-of-tasks.rst to the freezer changes
        PM: hibernate: Use kmap_local_page() in copy_data_page()
        intel_idle: add Sierra Forest SoC support
        intel_idle: add Grand Ridge SoC support
        PM / devfreq: Synchronize devfreq_monitor_[start/stop]
        cpufreq: armada-8k: Fix parameter type warning
        PM: hibernate: Enforce ordering during image compression/decompression
        ...
      7da71072
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 7f73ba68
      Linus Torvalds authored
      Pull thermal control updates from Rafael Wysocki:
       "These add support for the D1/T113s THS controller to the sun8i driver
        and a DT-based mechanism for platforms to indicate a preference to
        reboot (instead of shutting down) on crossing a critical trip point,
        fix issues, make other improvements (in the IPA governor, the Intel
        HFI driver, the exynos driver and the thermal netlink interface among
        other places) and clean up code.
      
        One long-standing issue addressed here is that trip point crossing
        notifications sent to user space might be unreliable due to the
        incorrect handling of trip point hysteresis in the thermal core:
        multiple notifications might be sent for the same event or there might
        be events without any notification at all.
      
        Specifics:
      
         - Add dynamic thresholds for trip point crossing detection to prevent
           trip point crossing notifications from being sent at incorrect
           times or not at all in some cases (Rafael J. Wysocki)
      
         - Fix synchronization issues related to the resume of thermal zones
           during a system-wide resume and allow thermal zones to be resumed
           concurrently (Rafael J. Wysocki)
      
         - Modify the thermal zone unregistration to wait for the given zone
           to go away completely before returning to the caller and rework the
           sysfs interface for trip points on top of that (Rafael J. Wysocki)
      
         - Fix a possible NULL pointer dereference in thermal zone
           registration error path (Rafael J. Wysocki)
      
         - Clean up the IPA thermal governor and modify it (with the help of a
           new governor callback) to avoid allocating and freeing memory every
           time its throttling callback is invoked (Lukasz Luba)
      
         - Make the IPA thermal governor handle thermal instance weight
           changes via sysfs correctly (Lukasz Luba)
      
         - Update the thermal netlink code to avoid sending messages if there
           are no recipients (Stanislaw Gruszka)
      
         - Convert Mediatek Thermal to the json-schema (Rafał Miłecki)
      
         - Fix thermal DT bindings issue on Loongson (Binbin Zhou)
      
         - Fix returning NULL instead of -ENODEV during thermal probe on
           Loogsoon (Binbin Zhou)
      
         - Add thermal DT binding for tsens on the SM8650 platform (Neil
           Armstrong)
      
         - Add reboot on the critical trip point crossing option feature
           (Fabio Estevam)
      
         - Use DEFINE_SIMPLE_DEV_PM_OPS do define PM functions for thermal
           suspend/resume on AmLogic (Uwe Kleine-König)
      
         - Add D1/T113s THS controller support to the Sun8i thermal control
           driver (Maxim Kiselev)
      
         - Fix example in the thermal DT binding for QCom SPMI (Johan Hovold)
      
         - Fix compilation warning in the tmon utility (Florian Eckert)
      
         - Add support for interrupt-based thermal configuration on Exynos
           along with a set of related cleanups (Mateusz Majewski)
      
         - Make the Intel HFI thermal driver enable an HFI instance (eg.
           processor package) from its first online CPU and disable it when
           the last CPU in it goes offline (Ricardo Neri)
      
         - Fix a kernel-doc warning and a spello in the cpuidle_cooling
           thermal driver (Randy Dunlap)
      
         - Move the .get_temp() thermal zone callback presence check to the
           thermal zone registration code (Daniel Lezcano)
      
         - Use the for_each_trip() macro for trip points table walks in a few
           places in the thermal core (Rafael J. Wysocki)
      
         - Make all trip point updates (via sysfs as well as from the platform
           firmware) trigger trip change notifications (Rafael J. Wysocki)
      
         - Drop redundant code from the thermal core and make one function in
           it take a const pointer argument (Rafael J. Wysocki)"
      
      * tag 'thermal-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (64 commits)
        thermal: trip: Constify thermal zone argument of thermal_zone_trip_id()
        thermal: intel: hfi: Disable an HFI instance when all its CPUs go offline
        thermal: intel: hfi: Enable an HFI instance from its first online CPU
        thermal: intel: hfi: Refactor enabling code into helper functions
        thermal/drivers/exynos: Use set_trips ops
        thermal/drivers/exynos: Use BIT wherever possible
        thermal/drivers/exynos: Split initialization of TMU and the thermal zone
        thermal/drivers/exynos: Stop using the threshold mechanism on Exynos 4210
        thermal/drivers/exynos: Simplify regulator (de)initialization
        thermal/drivers/exynos: Handle devm_regulator_get_optional return value correctly
        thermal/drivers/exynos: Wwitch from workqueue-driven interrupt handling to threaded interrupts
        thermal/drivers/exynos: Drop id field
        thermal/drivers/exynos: Remove an unnecessary field description
        tools/thermal/tmon: Fix compilation warning for wrong format
        dt-bindings: thermal: qcom-spmi-adc-tm5/hc: Clean up examples
        dt-bindings: thermal: qcom-spmi-adc-tm5/hc: Fix example node names
        thermal/drivers/sun8i: Add D1/T113s THS controller support
        dt-bindings: thermal: sun8i: Add binding for D1/T113s THS controller
        thermal: amlogic: Use DEFINE_SIMPLE_DEV_PM_OPS for PM functions
        thermal: amlogic: Make amlogic_thermal_disable() return void
        ...
      7f73ba68
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · bd012f3a
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "From the new features standpoint, the most significant change here is
        the addition of CSI-2 and MIPI DisCo for Imaging support to the ACPI
        device enumeration code that will allow MIPI cameras to be enumerated
        through the platform firmware on systems using ACPI.
      
        Also significant is the switch-over to threaded interrupt handlers for
        the ACPI SCI and the dedicated EC interrupt (on systems where the
        former is not used) which essentially allows all ACPI code to run with
        local interrupts enabled. That should improve responsiveness
        significantly on systems where multiple GPEs are enabled and the
        handling of one SCI involves many I/O address space accesses which
        previously had to be carried out in one go with disabled interrupts on
        the local CPU.
      
        Apart from the above, the ACPI thermal zone driver will use the
        Thermal fast Sampling Period (_TFP) object if available, which should
        allow temperature changes to be followed more accurately on some
        systems, the ACPI Notify () handlers can run on all CPUs (not just on
        CPU0), which should generally speed up the processing of events
        signaled through the ACPI SCI, and the ACPI power button driver will
        trigger wakeup key events via the input subsystem (on systems where it
        is a system wakeup device)
      
        In addition to that, there are the usual bunch of fixes and cleanups.
      
        Specifics:
      
         - Add CSI-2 and DisCo for Imaging support to the ACPI device
           enumeration code (Sakari Ailus, Rafael J. Wysocki)
      
         - Adjust the cpufreq thermal reduction algorithm in the ACPI
           processor driver for Tegra241 (Srikar Srimath Tirumala, Arnd
           Bergmann)
      
         - Make acpi_proc_quirk_mwait_check() x86-specific (Rafael J. Wysocki)
      
         - Switch over ACPI to using a threaded interrupt handler for the SCI
           (Rafael J. Wysocki)
      
         - Allow ACPI Notify () handlers to run on all CPUs and clean up the
           ACPI interface for deferred events processing (Rafael J. Wysocki)
      
         - Switch over the ACPI EC driver to using a threaded handler for the
           dedicated IRQ on systems without the EC GPE (Rafael J. Wysocki)
      
         - Adjust code using ACPICA spinlocks and the ACPI EC driver spinlock
           to keep local interrupts on (Rafael J. Wysocki)
      
         - Adjust the USB4 _OSC handshake to correctly handle cases in which
           certain types of OS control are denied by the platform (Mika
           Westerberg)
      
         - Correct and clean up the generic function for parsing ACPI
           data-only tables with array structure (Yuntao Wang)
      
         - Modify acpi_dev_uid_match() to support different types of its
           second argument and adjust its users accordingly (Raag Jadav)
      
         - Clean up code related to acpi_evaluate_reference() and ACPI device
           lists (Rafael J. Wysocki)
      
         - Use generic ACPI helpers for evaluating trip point temperature
           objects in the ACPI thermal zone driver (Rafael J. Wysockii, Arnd
           Bergmann)
      
         - Add Thermal fast Sampling Period (_TFP) support to the ACPI thermal
           zone driver (Jeff Brasen)
      
         - Modify the ACPI LPIT table handling code to avoid u32
           multiplication overflows in state residency computations (Nikita
           Kiryushin)
      
         - Drop an unused helper function from the ACPI backlight (video)
           driver and add a clarifying comment to it (Hans de Goede)
      
         - Update the ACPI backlight driver to avoid using uninitialized
           memory in some cases (Nikita Kiryushin)
      
         - Add ACPI backlight quirk for the Colorful X15 AT 23 laptop (Yuluo
           Qiu)
      
         - Add support for vendor-defined error types to the ACPI APEI error
           injection code (Avadhut Naik)
      
         - Adjust APEI to properly set MF_ACTION_REQUIRED on synchronous
           memory failure events, so they are handled differently from the
           asynchronous ones (Shuai Xue)
      
         - Fix NULL pointer dereference check in the ACPI extlog driver
           (Prarit Bhargava)
      
         - Adjust the ACPI extlog driver to clear the Extended Error Log
           status when RAS_CEC handled the error (Tony Luck)
      
         - Add IRQ override quirks for some Infinity laptops and for TongFang
           GMxXGxx (David McFarland, Hans de Goede)
      
         - Clean up the ACPI NUMA code and fix it to ensure that fake_pxm is
           not the same as one of the real pxm values (Yuntao Wang)
      
         - Fix the fractional clock divider flags in the ACPI LPSS (Intel SoC)
           driver so as to prevent miscalculation of the values in the clock
           divider (Andy Shevchenko)
      
         - Adjust comments in the ACPI watchdog driver to prevent kernel-doc
           from complaining during documentation builds (Randy Dunlap)
      
         - Make the ACPI button driver send wakeup key events to user space in
           addition to power button events on systems that can be woken up by
           the power button (Ken Xue)
      
         - Adjust pnpacpi_parse_allocated_vendor() to use memcpy() on a full
           structure field (Dmitry Antipov)"
      
      * tag 'acpi-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (56 commits)
        ACPI: resource: Add Infinity laptops to irq1_edge_low_force_override
        ACPI: button: trigger wakeup key events
        ACPI: resource: Add another DMI match for the TongFang GMxXGxx
        ACPI: EC: Use a spin lock without disabing interrupts
        ACPI: EC: Use a threaded handler for dedicated IRQ
        ACPI: OSL: Use spin locks without disabling interrupts
        ACPI: APEI: set memory failure flags as MF_ACTION_REQUIRED on synchronous events
        ACPI: utils: Introduce helper for _DEP list lookup
        ACPI: utils: Fix white space in struct acpi_handle_list definition
        ACPI: utils: Refine acpi_handle_list_equal() slightly
        ACPI: utils: Return bool from acpi_evaluate_reference()
        ACPI: utils: Rearrange in acpi_evaluate_reference()
        ACPI: arm64: export acpi_arch_thermal_cpufreq_pctg()
        ACPI: extlog: Clear Extended Error Log status when RAS_CEC handled the error
        ACPI: LPSS: Fix the fractional clock divider flags
        ACPI: NUMA: Fix the logic of getting the fake_pxm value
        ACPI: NUMA: Optimize the check for the availability of node values
        ACPI: NUMA: Remove unnecessary check in acpi_parse_gi_affinity()
        ACPI: watchdog: fix kernel-doc warnings
        ACPI: extlog: fix NULL pointer dereference check
        ...
      bd012f3a
  2. 09 Jan, 2024 20 commits
    • Linus Torvalds's avatar
      Merge tag 'mtd/for-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · 35f11a37
      Linus Torvalds authored
      Pull mtd updates from Miquel Raynal:
       "MTD:
      
         - Apart from preventing the mtdblk to run on top of ftl or ubiblk
           (which may cause security issues and has no meaning anyway), there
           are a few misc fixes.
      
        Raw NAND:
      
         - Two meaningful changes this time. The conversion of the brcmnand
           driver to the ->exec_op() API, this series brought additional
           changes to the core in order to help controller drivers to handle
           themselves the WP pin during destructive operations when relevant.
      
         - There is also a series bringing important fixes to the sequential
           read feature.
      
         - As always, there is as well a whole bunch of miscellaneous W=1
           fixes, together with a few runtime fixes (double free, timeout
           value, OOB layout, missing register initialization) and the usual
           load of remove callbacks turned into void (which led to switch the
           txx9ndfmc driver to use module_platform_driver()).
      
        SPI NOR:
      
         - SPI NOR comes with die erase support for multi die flashes, with
           new octal protocols (1-1-8 and 1-8-8) parsed from SFDP and with an
           updated documentation about what the contributors shall consider
           when proposing flash additions or updates.
      
         - Michael Walle stepped out from the reviewer role to maintainer"
      
      * tag 'mtd/for-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (39 commits)
        mtd: rawnand: Clarify conditions to enable continuous reads
        mtd: rawnand: Prevent sequential reads with on-die ECC engines
        mtd: rawnand: Fix core interference with sequential reads
        mtd: rawnand: Prevent crossing LUN boundaries during sequential reads
        mtd: Fix gluebi NULL pointer dereference caused by ftl notifier
        dt-bindings: mtd: partitions: u-boot: Fix typo
        mtd: rawnand: s3c2410: fix Excess struct member description kernel-doc warnings
        MAINTAINERS: change my mail to the kernel.org one
        mtd: spi-nor: sfdp: get the 1-1-8 and 1-8-8 protocol from SFDP
        mtd: spi-nor: drop superfluous debug prints
        mtd: spi-nor: sysfs: hide the flash name if not set
        mtd: spi-nor: mark the flash name as obsolete
        mtd: spi-nor: print flash ID instead of name
        mtd: maps: vmu-flash: Fix the (mtd core) switch to ref counters
        mtd: ssfdc: Remove an unused variable
        mtd: rawnand: diskonchip: fix a potential double free in doc_probe
        mtd: rawnand: rockchip: Add missing title to a kernel doc comment
        mtd: rawnand: rockchip: Rename a structure
        mtd: rawnand: pl353: Fix kernel doc
        mtd: spi-nor: micron-st: Add support for mt25qu01g
        ...
      35f11a37
    • Linus Torvalds's avatar
      Merge tag 'spi-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 30194002
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "A moderately busy release for SPI, the main core update was the
        merging of support for multiple chip selects, used in some flash
        configurations. There were also big overhauls for the AXI SPI Engine
        and PL022 drivers, plus some new device support for ST.
      
        There's a few patches for other trees, API updates to allow the
        multiple chip select support and one of the naming modernisations
        touched a controller embedded in the USB code.
      
         - Support for multiple chip selects.
      
         - A big overhaul for the AXI SPI engine driver, modernising it and
           adding a bunch of new features.
      
         - Modernisation of the PL022 driver, fixing some issues with
           submitting messages while in atomic context in the process.
      
         - Many drivers were converted to use new APIs which avoid outdated
           terminology for devices and controllers.
      
         - Support for ST Microelectronics STM32F7 and STM32MP25, and Renesas
           RZ/Five"
      
      * tag 'spi-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (83 commits)
        spi: stm32: add st,stm32mp25-spi compatible supporting STM32MP25 soc
        dt-bindings: spi: stm32: add st,stm32mp25-spi compatible
        spi: stm32: use dma_get_slave_caps prior to configuring dma channel
        spi: axi-spi-engine: fix struct member doc warnings
        spi: pl022: update description of internal_cs_control()
        spi: pl022: delete description of cur_msg
        spi: dw: Remove Intel Thunder Bay SOC support
        spi: dw: Remove Intel Thunder Bay SOC support
        spi: sh-msiof: Enforce fixed DTDL for R-Car H3
        spi: ljca: switch to use devm_spi_alloc_host()
        spi: cs42l43: switch to use devm_spi_alloc_host()
        spi: zynqmp-gqspi: switch to use modern name
        spi: zynq-qspi: switch to use modern name
        spi: xtensa-xtfpga: switch to use modern name
        spi: xlp: switch to use modern name
        spi: xilinx: switch to use modern name
        spi: xcomm: switch to use modern name
        spi: uniphier: switch to use modern name
        spi: topcliff-pch: switch to use modern name
        spi: wpcm-fiu: switch to use devm_spi_alloc_host()
        ...
      30194002
    • Linus Torvalds's avatar
      Merge tag 'regulator-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · da968017
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "The main updates for this release are around monitoring of regulators,
        largely for error handling purposes. We allow the stream of regulator
        events to be seen by userspace as netlink events and allow system
        integrators to describe individual regulators as system critical with
        information on how long the system is expected to last on error. The
        system level error handling is very much about best effort problem
        mitigation rather than providing something fully robust, the initial
        drive was to provide a mechanism for trying to avoid initiating any
        new writes to flash once we notice the power going out.
      
        Otherwise it's very quiet, mainly several new Qualcomm devices.
      
         - Support for marking regulators as system critical and providing
           information on how long the system might last with those regulators
           in a failure state, hooked into the existing critical shutdown
           error handling.
      
         - Optional support for generating netlink events for events, there
           are use cases for system monitoring UIs and error handling.
      
         - A command line option to leave unused controllable regulators
           enabled, useful for debugging. We already only disable regulators
           we were explicitly given permission to control.
      
         - Support for Quacomm MP5496, PM8010 and PM8937"
      
      * tag 'regulator-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (31 commits)
        regulator: event: Ensure atomicity for sequence number
        uapi: regulator: Fix typo
        regulator: Reuse LINEAR_RANGE() in REGULATOR_LINEAR_RANGE()
        dt-bindings: regulator: qcom,usb-vbus-regulator: clean up example
        regulator: qcom_smd: Add LDO5 MP5496 regulator
        regulator: qcom-rpmh: add support for pm8010 regulators
        regulator: dt-bindings: qcom,rpmh: add compatible for pm8010
        regulator: qcom-rpmh: extend to support multiple linear voltage ranges
        regulator: wm8350: Convert to platform remove callback returning void
        regulator: virtual: Convert to platform remove callback returning void
        regulator: userspace-consumer: Convert to platform remove callback returning void
        regulator: uniphier: Convert to platform remove callback returning void
        regulator: stm32-vrefbuf: Convert to platform remove callback returning void
        regulator: db8500-prcmu: Convert to platform remove callback returning void
        regulator: bd9571mwv: Convert to platform remove callback returning void
        regulator: arizona-ldo1: Convert to platform remove callback returning void
        regulator: event: Add regulator netlink event support
        regulator: event: Add regulator netlink event support
        regulator: stpmic1: Fix kernel-doc notation warnings
        regulator: palmas: remove redundant initialization of pointer pdata
        ...
      da968017
    • Linus Torvalds's avatar
      Merge tag 'regmap-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 83130ff4
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "This was a very quiet release for regmap, we added kunit test coverage
        for a noinc fix that was merged during v6.7 and a couple of other
        trivial cleanups"
      
      * tag 'regmap-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: fix kcalloc() arguments order
        regmap: fix regmap_noinc_write() description
        regmap: kunit: add noinc write test
        regmap: ram: support noinc semantics
      83130ff4
    • Linus Torvalds's avatar
      Merge tag 'integrity-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity · 6c1dd1fe
      Linus Torvalds authored
      Pull integrity updates from Mimi Zohar:
      
       - Add a new IMA/EVM maintainer and reviewer
      
       - Disable EVM on overlayfs
      
         The EVM HMAC and the original file signatures contain filesystem
         specific metadata (e.g. i_ino, i_generation and s_uuid), preventing
         the security.evm xattr from directly being copied up to the overlay.
         Further before calculating and writing out the overlay file's EVM
         HMAC, EVM must first verify the existing backing file's
         'security.evm' value.
      
         For now until a solution is developed, disable EVM on overlayfs.
      
       - One bug fix and two cleanups
      
      * tag 'integrity-v6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity:
        overlay: disable EVM
        evm: add support to disable EVM on unsupported filesystems
        evm: don't copy up 'security.evm' xattr
        MAINTAINERS: Add Eric Snowberg as a reviewer to IMA
        MAINTAINERS: Add Roberto Sassu as co-maintainer to IMA and EVM
        KEYS: encrypted: Add check for strsep
        ima: Remove EXPERIMENTAL from Kconfig
        ima: Reword IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY
      6c1dd1fe
    • Linus Torvalds's avatar
      Merge tag 'landlock-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux · e9b4c589
      Linus Torvalds authored
      Pull Landlock updates from Mickaël Salaün:
       "New tests, a slight optimization, and some cosmetic changes"
      
      * tag 'landlock-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux:
        landlock: Optimize the number of calls to get_access_mask slightly
        selftests/landlock: Rename "permitted" to "allowed" in ftruncate tests
        landlock: Remove remaining "inline" modifiers in .c files [v6.6]
        landlock: Remove remaining "inline" modifiers in .c files [v6.1]
        landlock: Remove remaining "inline" modifiers in .c files [v5.15]
        selftests/landlock: Add tests to check unhandled rule's access rights
        selftests/landlock: Add tests to check unknown rule's access rights
      e9b4c589
    • Linus Torvalds's avatar
      Merge tag 'lsm-pr-20240105' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm · 063a7ce3
      Linus Torvalds authored
      Pull security module updates from Paul Moore:
      
       - Add three new syscalls: lsm_list_modules(), lsm_get_self_attr(), and
         lsm_set_self_attr().
      
         The first syscall simply lists the LSMs enabled, while the second and
         third get and set the current process' LSM attributes. Yes, these
         syscalls may provide similar functionality to what can be found under
         /proc or /sys, but they were designed to support multiple,
         simultaneaous (stacked) LSMs from the start as opposed to the current
         /proc based solutions which were created at a time when only one LSM
         was allowed to be active at a given time.
      
         We have spent considerable time discussing ways to extend the
         existing /proc interfaces to support multiple, simultaneaous LSMs and
         even our best ideas have been far too ugly to support as a kernel
         API; after +20 years in the kernel, I felt the LSM layer had
         established itself enough to justify a handful of syscalls.
      
         Support amongst the individual LSM developers has been nearly
         unanimous, with a single objection coming from Tetsuo (TOMOYO) as he
         is worried that the LSM_ID_XXX token concept will make it more
         difficult for out-of-tree LSMs to survive. Several members of the LSM
         community have demonstrated the ability for out-of-tree LSMs to
         continue to exist by picking high/unused LSM_ID values as well as
         pointing out that many kernel APIs rely on integer identifiers, e.g.
         syscalls (!), but unfortunately Tetsuo's objections remain.
      
         My personal opinion is that while I have no interest in penalizing
         out-of-tree LSMs, I'm not going to penalize in-tree development to
         support out-of-tree development, and I view this as a necessary step
         forward to support the push for expanded LSM stacking and reduce our
         reliance on /proc and /sys which has occassionally been problematic
         for some container users. Finally, we have included the linux-api
         folks on (all?) recent revisions of the patchset and addressed all of
         their concerns.
      
       - Add a new security_file_ioctl_compat() LSM hook to handle the 32-bit
         ioctls on 64-bit systems problem.
      
         This patch includes support for all of the existing LSMs which
         provide ioctl hooks, although it turns out only SELinux actually
         cares about the individual ioctls. It is worth noting that while
         Casey (Smack) and Tetsuo (TOMOYO) did not give explicit ACKs to this
         patch, they did both indicate they are okay with the changes.
      
       - Fix a potential memory leak in the CALIPSO code when IPv6 is disabled
         at boot.
      
         While it's good that we are fixing this, I doubt this is something
         users are seeing in the wild as you need to both disable IPv6 and
         then attempt to configure IPv6 labeled networking via
         NetLabel/CALIPSO; that just doesn't make much sense.
      
         Normally this would go through netdev, but Jakub asked me to take
         this patch and of all the trees I maintain, the LSM tree seemed like
         the best fit.
      
       - Update the LSM MAINTAINERS entry with additional information about
         our process docs, patchwork, bug reporting, etc.
      
         I also noticed that the Lockdown LSM is missing a dedicated
         MAINTAINERS entry so I've added that to the pull request. I've been
         working with one of the major Lockdown authors/contributors to see if
         they are willing to step up and assume a Lockdown maintainer role;
         hopefully that will happen soon, but in the meantime I'll continue to
         look after it.
      
       - Add a handful of mailmap entries for Serge Hallyn and myself.
      
      * tag 'lsm-pr-20240105' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm: (27 commits)
        lsm: new security_file_ioctl_compat() hook
        lsm: Add a __counted_by() annotation to lsm_ctx.ctx
        calipso: fix memory leak in netlbl_calipso_add_pass()
        selftests: remove the LSM_ID_IMA check in lsm/lsm_list_modules_test
        MAINTAINERS: add an entry for the lockdown LSM
        MAINTAINERS: update the LSM entry
        mailmap: add entries for Serge Hallyn's dead accounts
        mailmap: update/replace my old email addresses
        lsm: mark the lsm_id variables are marked as static
        lsm: convert security_setselfattr() to use memdup_user()
        lsm: align based on pointer length in lsm_fill_user_ctx()
        lsm: consolidate buffer size handling into lsm_fill_user_ctx()
        lsm: correct error codes in security_getselfattr()
        lsm: cleanup the size counters in security_getselfattr()
        lsm: don't yet account for IMA in LSM_CONFIG_COUNT calculation
        lsm: drop LSM_ID_IMA
        LSM: selftests for Linux Security Module syscalls
        SELinux: Add selfattr hooks
        AppArmor: Add selfattr hooks
        Smack: implement setselfattr and getselfattr hooks
        ...
      063a7ce3
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20240105' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · 9f9310bf
      Linus Torvalds authored
      Pull selinux updates from Paul Moore:
      
       - Add a new SELinux initial SID, SECINITSID_INIT, to represent
         userspace processes started before the SELinux policy is loaded in
         early boot.
      
         Prior to this patch all processes were marked as SECINITSID_KERNEL
         before the SELinux policy was loaded, making it difficult to
         distinquish early boot userspace processes from the kernel in the
         SELinux policy.
      
         For most users this will be a non-issue as the policy is loaded early
         enough during boot, but for users who load their SELinux policy
         relatively late, this should make it easier to construct meaningful
         security policies.
      
       - Cleanups to the selinuxfs code by Al, mostly on VFS related issues
         during a policy reload.
      
         The commit description has more detail, but the quick summary is that
         we are replacing a disconnected directory approach with a temporary
         directory that we swapover at the end of the reload.
      
       - Fix an issue where the input sanity checking on socket bind()
         operations was slightly different depending on the presence of
         SELinux.
      
         This is caused by the placement of the LSM hooks in the generic
         socket layer as opposed to the protocol specific bind() handler where
         the protocol specific sanity checks are performed. Mickaël has
         mentioned that he is working to fix this, but in the meantime we just
         ensure that we are replicating the checks properly.
      
         We need to balance the placement of the LSM hooks with the number of
         LSM hooks; pushing the hooks down into the protocol layers is likely
         not the right answer.
      
       - Update the avc_has_perm_noaudit() prototype to better match the
         function definition.
      
       - Migrate from using partial_name_hash() to full_name_hash() the
         filename transition hash table.
      
         This improves the quality of the code and has the potential for a
         minor performance bump.
      
       - Consolidate some open coded SELinux access vector comparisions into a
         single new function, avtab_node_cmp(), and use that instead.
      
         A small, but nice win for code quality and maintainability.
      
       - Updated the SELinux MAINTAINERS entry with additional information
         around process, bug reporting, etc.
      
         We're also updating some of our "official" roles: dropping Eric Paris
         and adding Ondrej as a reviewer.
      
       - Cleanup the coding style crimes in security/selinux/include.
      
         While I'm not a fan of code churn, I am pushing for more automated
         code checks that can be done at the developer level and one of the
         obvious things to check for is coding style.
      
         In an effort to start from a "good" base I'm slowly working through
         our source files cleaning them up with the help of clang-format and
         good ol' fashioned human eyeballs; this has the first batch of these
         changes.
      
         I've been splitting the changes up per-file to help reduce the impact
         if backports are required (either for LTS or distro kernels), and I
         expect the some of the larger files, e.g. hooks.c and ss/services.c,
         will likely need to be split even further.
      
       - Cleanup old, outdated comments.
      
      * tag 'selinux-pr-20240105' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux: (24 commits)
        selinux: Fix error priority for bind with AF_UNSPEC on PF_INET6 socket
        selinux: fix style issues in security/selinux/include/initial_sid_to_string.h
        selinux: fix style issues in security/selinux/include/xfrm.h
        selinux: fix style issues in security/selinux/include/security.h
        selinux: fix style issues with security/selinux/include/policycap_names.h
        selinux: fix style issues in security/selinux/include/policycap.h
        selinux: fix style issues in security/selinux/include/objsec.h
        selinux: fix style issues with security/selinux/include/netlabel.h
        selinux: fix style issues in security/selinux/include/netif.h
        selinux: fix style issues in security/selinux/include/ima.h
        selinux: fix style issues in security/selinux/include/conditional.h
        selinux: fix style issues in security/selinux/include/classmap.h
        selinux: fix style issues in security/selinux/include/avc_ss.h
        selinux: align avc_has_perm_noaudit() prototype with definition
        selinux: fix style issues in security/selinux/include/avc.h
        selinux: fix style issues in security/selinux/include/audit.h
        MAINTAINERS: drop Eric Paris from his SELinux role
        MAINTAINERS: add Ondrej Mosnacek as a SELinux reviewer
        selinux: remove the wrong comment about multithreaded process handling
        selinux: introduce an initial SID for early boot processes
        ...
      9f9310bf
    • Linus Torvalds's avatar
      Merge tag 'audit-pr-20240105' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit · eab23bc8
      Linus Torvalds authored
      Pull audit updates from Paul Moore:
       "The audit updates are fairly minor with only two patches:
      
         - Send an audit ACK to userspace immediately upon receiving an auditd
           registration event as opposed to waiting until the registration has
           been fully processed and the audit backlog starts filling the
           netlink buffers.
      
           Sending the ACK earlier, as done here, is still safe as the
           operation should not fail at the point when the ACK is done, and
           doing so helps avoid the ACK being dropped in extreme situations.
      
         - Update the audit MAINTAINERS entry with additional information.
      
           There isn't anything in this update that should be new to regular
           contributors or list subscribers, but I'm pushing to start
           documenting our processes, conventions, etc. and this seems like an
           important part of that"
      
      * tag 'audit-pr-20240105' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
        MAINTAINERS: update the audit entry
        audit: Send netlink ACK before setting connection in auditd_set
      eab23bc8
    • Linus Torvalds's avatar
      Merge tag 'mm-nonmm-stable-2024-01-09-10-33' of... · 9f2a6352
      Linus Torvalds authored
      Merge tag 'mm-nonmm-stable-2024-01-09-10-33' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
      
      Pull non-MM updates from Andrew Morton:
       "Quite a lot of kexec work this time around. Many singleton patches in
        many places. The notable patch series are:
      
         - nilfs2 folio conversion from Matthew Wilcox in 'nilfs2: Folio
           conversions for file paths'.
      
         - Additional nilfs2 folio conversion from Ryusuke Konishi in 'nilfs2:
           Folio conversions for directory paths'.
      
         - IA64 remnant removal in Heiko Carstens's 'Remove unused code after
           IA-64 removal'.
      
         - Arnd Bergmann has enabled the -Wmissing-prototypes warning
           everywhere in 'Treewide: enable -Wmissing-prototypes'. This had
           some followup fixes:
      
            - Nathan Chancellor has cleaned up the hexagon build in the series
              'hexagon: Fix up instances of -Wmissing-prototypes'.
      
            - Nathan also addressed some s390 warnings in 's390: A couple of
              fixes for -Wmissing-prototypes'.
      
            - Arnd Bergmann addresses the same warnings for MIPS in his series
              'mips: address -Wmissing-prototypes warnings'.
      
         - Baoquan He has made kexec_file operate in a top-down-fitting manner
           similar to kexec_load in the series 'kexec_file: Load kernel at top
           of system RAM if required'
      
         - Baoquan He has also added the self-explanatory 'kexec_file: print
           out debugging message if required'.
      
         - Some checkstack maintenance work from Tiezhu Yang in the series
           'Modify some code about checkstack'.
      
         - Douglas Anderson has disentangled the watchdog code's logging when
           multiple reports are occurring simultaneously. The series is
           'watchdog: Better handling of concurrent lockups'.
      
         - Yuntao Wang has contributed some maintenance work on the crash code
           in 'crash: Some cleanups and fixes'"
      
      * tag 'mm-nonmm-stable-2024-01-09-10-33' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (157 commits)
        crash_core: fix and simplify the logic of crash_exclude_mem_range()
        x86/crash: use SZ_1M macro instead of hardcoded value
        x86/crash: remove the unused image parameter from prepare_elf_headers()
        kdump: remove redundant DEFAULT_CRASH_KERNEL_LOW_SIZE
        scripts/decode_stacktrace.sh: strip unexpected CR from lines
        watchdog: if panicking and we dumped everything, don't re-enable dumping
        watchdog/hardlockup: use printk_cpu_sync_get_irqsave() to serialize reporting
        watchdog/softlockup: use printk_cpu_sync_get_irqsave() to serialize reporting
        watchdog/hardlockup: adopt softlockup logic avoiding double-dumps
        kexec_core: fix the assignment to kimage->control_page
        x86/kexec: fix incorrect end address passed to kernel_ident_mapping_init()
        lib/trace_readwrite.c:: replace asm-generic/io with linux/io
        nilfs2: cpfile: fix some kernel-doc warnings
        stacktrace: fix kernel-doc typo
        scripts/checkstack.pl: fix no space expression between sp and offset
        x86/kexec: fix incorrect argument passed to kexec_dprintk()
        x86/kexec: use pr_err() instead of kexec_dprintk() when an error occurs
        nilfs2: add missing set_freezable() for freezable kthread
        kernel: relay: remove relay_file_splice_read dead code, doesn't work
        docs: submit-checklist: remove all of "make namespacecheck"
        ...
      9f2a6352
    • Linus Torvalds's avatar
      Merge tag 'mm-stable-2024-01-08-15-31' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm · fb46e22a
      Linus Torvalds authored
      Pull MM updates from Andrew Morton:
       "Many singleton patches against the MM code. The patch series which are
        included in this merge do the following:
      
         - Peng Zhang has done some mapletree maintainance work in the series
      
      	'maple_tree: add mt_free_one() and mt_attr() helpers'
      	'Some cleanups of maple tree'
      
         - In the series 'mm: use memmap_on_memory semantics for dax/kmem'
           Vishal Verma has altered the interworking between memory-hotplug
           and dax/kmem so that newly added 'device memory' can more easily
           have its memmap placed within that newly added memory.
      
         - Matthew Wilcox continues folio-related work (including a few fixes)
           in the patch series
      
      	'Add folio_zero_tail() and folio_fill_tail()'
      	'Make folio_start_writeback return void'
      	'Fix fault handler's handling of poisoned tail pages'
      	'Convert aops->error_remove_page to ->error_remove_folio'
      	'Finish two folio conversions'
      	'More swap folio conversions'
      
         - Kefeng Wang has also contributed folio-related work in the series
      
      	'mm: cleanup and use more folio in page fault'
      
         - Jim Cromie has improved the kmemleak reporting output in the series
           'tweak kmemleak report format'.
      
         - In the series 'stackdepot: allow evicting stack traces' Andrey
           Konovalov to permits clients (in this case KASAN) to cause eviction
           of no longer needed stack traces.
      
         - Charan Teja Kalla has fixed some accounting issues in the page
           allocator's atomic reserve calculations in the series 'mm:
           page_alloc: fixes for high atomic reserve caluculations'.
      
         - Dmitry Rokosov has added to the samples/ dorectory some sample code
           for a userspace memcg event listener application. See the series
           'samples: introduce cgroup events listeners'.
      
         - Some mapletree maintanance work from Liam Howlett in the series
           'maple_tree: iterator state changes'.
      
         - Nhat Pham has improved zswap's approach to writeback in the series
           'workload-specific and memory pressure-driven zswap writeback'.
      
         - DAMON/DAMOS feature and maintenance work from SeongJae Park in the
           series
      
      	'mm/damon: let users feed and tame/auto-tune DAMOS'
      	'selftests/damon: add Python-written DAMON functionality tests'
      	'mm/damon: misc updates for 6.8'
      
         - Yosry Ahmed has improved memcg's stats flushing in the series 'mm:
           memcg: subtree stats flushing and thresholds'.
      
         - In the series 'Multi-size THP for anonymous memory' Ryan Roberts
           has added a runtime opt-in feature to transparent hugepages which
           improves performance by allocating larger chunks of memory during
           anonymous page faults.
      
         - Matthew Wilcox has also contributed some cleanup and maintenance
           work against eh buffer_head code int he series 'More buffer_head
           cleanups'.
      
         - Suren Baghdasaryan has done work on Andrea Arcangeli's series
           'userfaultfd move option'. UFFDIO_MOVE permits userspace heap
           compaction algorithms to move userspace's pages around rather than
           UFFDIO_COPY'a alloc/copy/free.
      
         - Stefan Roesch has developed a 'KSM Advisor', in the series 'mm/ksm:
           Add ksm advisor'. This is a governor which tunes KSM's scanning
           aggressiveness in response to userspace's current needs.
      
         - Chengming Zhou has optimized zswap's temporary working memory use
           in the series 'mm/zswap: dstmem reuse optimizations and cleanups'.
      
         - Matthew Wilcox has performed some maintenance work on the writeback
           code, both code and within filesystems. The series is 'Clean up the
           writeback paths'.
      
         - Andrey Konovalov has optimized KASAN's handling of alloc and free
           stack traces for secondary-level allocators, in the series 'kasan:
           save mempool stack traces'.
      
         - Andrey also performed some KASAN maintenance work in the series
           'kasan: assorted clean-ups'.
      
         - David Hildenbrand has gone to town on the rmap code. Cleanups, more
           pte batching, folio conversions and more. See the series 'mm/rmap:
           interface overhaul'.
      
         - Kinsey Ho has contributed some maintenance work on the MGLRU code
           in the series 'mm/mglru: Kconfig cleanup'.
      
         - Matthew Wilcox has contributed lruvec page accounting code cleanups
           in the series 'Remove some lruvec page accounting functions'"
      
      * tag 'mm-stable-2024-01-08-15-31' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (361 commits)
        mm, treewide: rename MAX_ORDER to MAX_PAGE_ORDER
        mm, treewide: introduce NR_PAGE_ORDERS
        selftests/mm: add separate UFFDIO_MOVE test for PMD splitting
        selftests/mm: skip test if application doesn't has root privileges
        selftests/mm: conform test to TAP format output
        selftests: mm: hugepage-mmap: conform to TAP format output
        selftests/mm: gup_test: conform test to TAP format output
        mm/selftests: hugepage-mremap: conform test to TAP format output
        mm/vmstat: move pgdemote_* out of CONFIG_NUMA_BALANCING
        mm: zsmalloc: return -ENOSPC rather than -EINVAL in zs_malloc while size is too large
        mm/memcontrol: remove __mod_lruvec_page_state()
        mm/khugepaged: use a folio more in collapse_file()
        slub: use a folio in __kmalloc_large_node
        slub: use folio APIs in free_large_kmalloc()
        slub: use alloc_pages_node() in alloc_slab_page()
        mm: remove inc/dec lruvec page state functions
        mm: ratelimit stat flush from workingset shrinker
        kasan: stop leaking stack trace handles
        mm/mglru: remove CONFIG_TRANSPARENT_HUGEPAGE
        mm/mglru: add dummy pmd_dirty()
        ...
      fb46e22a
    • Linus Torvalds's avatar
      Merge tag 'slab-for-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab · d30e51aa
      Linus Torvalds authored
      Pull slab updates from Vlastimil Babka:
      
       - SLUB: delayed freezing of CPU partial slabs (Chengming Zhou)
      
         Freezing is an operation involving double_cmpxchg() that makes a slab
         exclusive for a particular CPU. Chengming noticed that we use it also
         in situations where we are not yet installing the slab as the CPU
         slab, because freezing also indicates that the slab is not on the
         shared list. This results in redundant freeze/unfreeze operation and
         can be avoided by marking separately the shared list presence by
         reusing the PG_workingset flag.
      
         This approach neatly avoids the issues described in 9b1ea29b
         ("Revert "mm, slub: consider rest of partial list if acquire_slab()
         fails"") as we can now grab a slab from the shared list in a quick
         and guaranteed way without the cmpxchg_double() operation that
         amplifies the lock contention and can fail.
      
         As a result, lkp has reported 34.2% improvement of
         stress-ng.rawudp.ops_per_sec
      
       - SLAB removal and SLUB cleanups (Vlastimil Babka)
      
         The SLAB allocator has been deprecated since 6.5 and nobody has
         objected so far. We agreed at LSF/MM to wait until the next LTS,
         which is 6.6, so we should be good to go now.
      
         This doesn't yet erase all traces of SLAB outside of mm/ so some dead
         code, comments or documentation remain, and will be cleaned up
         gradually (some series are already in the works).
      
         Removing the choice of allocators has already allowed to simplify and
         optimize the code wiring up the kmalloc APIs to the SLUB
         implementation.
      
      * tag 'slab-for-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab: (34 commits)
        mm/slub: free KFENCE objects in slab_free_hook()
        mm/slub: handle bulk and single object freeing separately
        mm/slub: introduce __kmem_cache_free_bulk() without free hooks
        mm/slub: fix bulk alloc and free stats
        mm/slub: optimize free fast path code layout
        mm/slub: optimize alloc fastpath code layout
        mm/slub: remove slab_alloc() and __kmem_cache_alloc_lru() wrappers
        mm/slab: move kmalloc() functions from slab_common.c to slub.c
        mm/slab: move kmalloc_slab() to mm/slab.h
        mm/slab: move kfree() from slab_common.c to slub.c
        mm/slab: move struct kmem_cache_node from slab.h to slub.c
        mm/slab: move memcg related functions from slab.h to slub.c
        mm/slab: move pre/post-alloc hooks from slab.h to slub.c
        mm/slab: consolidate includes in the internal mm/slab.h
        mm/slab: move the rest of slub_def.h to mm/slab.h
        mm/slab: move struct kmem_cache_cpu declaration to slub.c
        mm/slab: remove mm/slab.c and slab_def.h
        mm/mempool/dmapool: remove CONFIG_DEBUG_SLAB ifdefs
        mm/slab: remove CONFIG_SLAB code from slab common code
        cpu/hotplug: remove CPUHP_SLAB_PREPARE hooks
        ...
      d30e51aa
    • Linus Torvalds's avatar
      Merge tag 'cgroup-for-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 9f8413c4
      Linus Torvalds authored
      Pull cgroup updates from Tejun Heo:
      
       - Yafang Shao added task_get_cgroup1() helper to enable a similar BPF
         helper so that BPF progs can be more useful on cgroup1 hierarchies.
         While cgroup1 is mostly in maintenance mode, this addition is very
         small while having an outsized usefulness for users who are still on
         cgroup1. Yafang also optimized root cgroup list access by making it
         RCU protected in the process.
      
       - Waiman Long optimized rstat operation leading to substantially lower
         and more consistent lock hold time while flushing the hierarchical
         statistics. As the lock can be acquired briefly in various hot paths,
         this reduction has cascading benefits.
      
       - Waiman also improved the quality of isolation for cpuset's isolated
         partitions. CPUs which are allocated to isolated partitions are now
         excluded from running unbound work items and cpu_is_isolated() test
         which is used by vmstat and memcg to reduce interference now includes
         cpuset isolated CPUs. While it isn't there yet, the hope is
         eventually reaching parity with the isolation level provided by the
         `isolcpus` boot param but in a dynamic manner.
      
      * tag 'cgroup-for-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: Move rcu_head up near the top of cgroup_root
        cgroup/cpuset: Include isolated cpuset CPUs in cpu_is_isolated() check
        cgroup: Avoid false cacheline sharing of read mostly rstat_cpu
        cgroup/rstat: Optimize cgroup_rstat_updated_list()
        cgroup: Fix documentation for cpu.idle
        cgroup/cpuset: Expose cpuset.cpus.isolated
        workqueue: Move workqueue_set_unbound_cpumask() and its helpers inside CONFIG_SYSFS
        cgroup/rstat: Reduce cpu_lock hold time in cgroup_rstat_flush_locked()
        cgroup/cpuset: Take isolated CPUs out of workqueue unbound cpumask
        cgroup/cpuset: Keep track of CPUs in isolated partitions
        selftests/cgroup: Minor code cleanup and reorganization of test_cpuset_prs.sh
        workqueue: Add workqueue_unbound_exclude_cpumask() to exclude CPUs from wq_unbound_cpumask
        selftests: cgroup: Fixes a typo in a comment
        cgroup: Add a new helper for cgroup1 hierarchy
        cgroup: Add annotation for holding namespace_sem in current_cgns_cgroup_from_root()
        cgroup: Eliminate the need for cgroup_mutex in proc_cgroup_show()
        cgroup: Make operations on the cgroup root_list RCU safe
        cgroup: Remove unnecessary list_empty()
      9f8413c4
    • Linus Torvalds's avatar
      Merge tag 'sched-core-2024-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bfe8eb3b
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
       "Energy scheduling:
      
         - Consolidate how the max compute capacity is used in the scheduler
           and how we calculate the frequency for a level of utilization.
      
         - Rework interface between the scheduler and the schedutil governor
      
         - Simplify the util_est logic
      
        Deadline scheduler:
      
         - Work more towards reducing SCHED_DEADLINE starvation of low
           priority tasks (e.g., SCHED_OTHER) tasks when higher priority tasks
           monopolize CPU cycles, via the introduction of 'deadline servers'
           (nested/2-level scheduling).
      
           "Fair servers" to make use of this facility are not introduced yet.
      
        EEVDF:
      
         - Introduce O(1) fastpath for EEVDF task selection
      
        NUMA balancing:
      
         - Tune the NUMA-balancing vma scanning logic some more, to better
           distribute the probability of a particular vma getting scanned.
      
        Plus misc fixes, cleanups and updates"
      
      * tag 'sched-core-2024-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (30 commits)
        sched/fair: Fix tg->load when offlining a CPU
        sched/fair: Remove unused 'next_buddy_marked' local variable in check_preempt_wakeup_fair()
        sched/fair: Use all little CPUs for CPU-bound workloads
        sched/fair: Simplify util_est
        sched/fair: Remove SCHED_FEAT(UTIL_EST_FASTUP, true)
        arm64/amu: Use capacity_ref_freq() to set AMU ratio
        cpufreq/cppc: Set the frequency used for computing the capacity
        cpufreq/cppc: Move and rename cppc_cpufreq_{perf_to_khz|khz_to_perf}()
        energy_model: Use a fixed reference frequency
        cpufreq/schedutil: Use a fixed reference frequency
        cpufreq: Use the fixed and coherent frequency for scaling capacity
        sched/topology: Add a new arch_scale_freq_ref() method
        freezer,sched: Clean saved_state when restoring it during thaw
        sched/fair: Update min_vruntime for reweight_entity() correctly
        sched/doc: Update documentation after renames and synchronize Chinese version
        sched/cpufreq: Rework iowait boost
        sched/cpufreq: Rework schedutil governor performance estimation
        sched/pelt: Avoid underestimation of task utilization
        sched/timers: Explain why idle task schedules out on remote timer enqueue
        sched/cpuidle: Comment about timers requirements VS idle handler
        ...
      bfe8eb3b
    • Linus Torvalds's avatar
      Merge tag 'perf-core-2024-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · aac4de46
      Linus Torvalds authored
      Pull performance events updates from Ingo Molnar:
      
       - Add branch stack counters ABI extension to better capture the growing
         amount of information the PMU exposes via branch stack sampling.
         There's matching tooling support.
      
       - Fix race when creating the nr_addr_filters sysfs file
      
       - Add Intel Sierra Forest and Grand Ridge intel/cstate PMU support
      
       - Add Intel Granite Rapids, Sierra Forest and Grand Ridge uncore PMU
         support
      
       - Misc cleanups & fixes
      
      * tag 'perf-core-2024-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/intel/uncore: Factor out topology_gidnid_map()
        perf/x86/intel/uncore: Fix NULL pointer dereference issue in upi_fill_topology()
        perf/x86/amd: Reject branch stack for IBS events
        perf/x86/intel/uncore: Support Sierra Forest and Grand Ridge
        perf/x86/intel/uncore: Support IIO free-running counters on GNR
        perf/x86/intel/uncore: Support Granite Rapids
        perf/x86/uncore: Use u64 to replace unsigned for the uncore offsets array
        perf/x86/intel/uncore: Generic uncore_get_uncores and MMIO format of SPR
        perf: Fix the nr_addr_filters fix
        perf/x86/intel/cstate: Add Grand Ridge support
        perf/x86/intel/cstate: Add Sierra Forest support
        x86/smp: Export symbol cpu_clustergroup_mask()
        perf/x86/intel/cstate: Cleanup duplicate attr_groups
        perf/core: Fix narrow startup race when creating the perf nr_addr_filters sysfs file
        perf/x86/intel: Support branch counters logging
        perf/x86/intel: Reorganize attrs and is_visible
        perf: Add branch_sample_call_stack
        perf/x86: Add PERF_X86_EVENT_NEEDS_BRANCH_STACK flag
        perf: Add branch stack counters
      aac4de46
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2024-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0bdf0621
      Linus Torvalds authored
      Pull irq subsystem updates from Ingo Molnar:
      
       - Add support for the IA55 interrupt controller on RZ/G3S SoC's
      
       - Update/fix the Qualcom MPM Interrupt Controller driver's register
         enumeration within the somewhat exotic "RPM Message RAM" MMIO-mapped
         shared memory region that is used for other purposes as well
      
       - Clean up the Xtensa built-in Programmable Interrupt Controller driver
         (xtensa-pic) a bit
      
      * tag 'irq-core-2024-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/irq-xtensa-pic: Clean up
        irqchip/qcom-mpm: Support passing a slice of SRAM as reg space
        dt-bindings: interrupt-controller: mpm: Pass MSG RAM slice through phandle
        dt-bindings: interrupt-controller: renesas,rzg2l-irqc: Document RZ/G3S
        irqchip/renesas-rzg2l: Add support for suspend to RAM
        irqchip/renesas-rzg2l: Add macro to retrieve TITSR register offset based on register's index
        irqchip/renesas-rzg2l: Implement restriction when writing ISCR register
        irqchip/renesas-rzg2l: Document structure members
        irqchip/renesas-rzg2l: Align struct member names to tabs
        irqchip/renesas-rzg2l: Use tabs instead of spaces
      0bdf0621
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2024-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f24dc33f
      Linus Torvalds authored
      Pull timer subsystem updates from Ingo Molnar:
      
       - Various preparatory cleanups & enhancements of the timer-wheel code,
         in preparation for the WIP 'pull timers at expiry' timer migration
         model series (which will replace the current 'push timers at enqueue'
         migration model), by Anna-Maria Behnsen:
      
            - Update comments and clean up confusing variable names
      
            - Add debug check to warn about time travel
      
            - Improve/expand timer-wheel tracepoints
      
            - Optimize away unnecessary IPIs for deferrable timers
      
            - Restructure & clean up next_expiry_recalc()
      
            - Clean up forward_timer_base()
      
            - Introduce __forward_timer_base() and use it to simplify and
              micro-optimize get_next_timer_interrupt()
      
       - Restructure the get_next_timer_interrupt()'s idle logic for better
         readability and to enable a minor optimization.
      
       - Fix the nextevt calculation when no timers are pending
      
       - Fix the sysfs_get_uname() prototype declaration
      
      * tag 'timers-core-2024-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        timers: Fix nextevt calculation when no timers are pending
        timers: Rework idle logic
        timers: Use already existing function for forwarding timer base
        timers: Split out forward timer base functionality
        timers: Clarify check in forward_timer_base()
        timers: Move store of next event into __next_timer_interrupt()
        timers: Do not IPI for deferrable timers
        tracing/timers: Add tracepoint for tracking timer base is_idle flag
        tracing/timers: Enhance timer_start tracepoint
        tick-sched: Warn when next tick seems to be in the past
        tick/sched: Cleanup confusing variables
        tick-sched: Fix function names in comments
        time: Make sysfs_get_uname() function visible in header
      f24dc33f
    • Linus Torvalds's avatar
      Merge tag 'smp-core-2024-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 46a08b4d
      Linus Torvalds authored
      Pull CPU hotplug updates from Ingo Molnar:
      
       - Remove unused CPU hotplug states
      
       - Increase the number of dynamic CPU hotplug states
         from 30 to 40, because existing drivers can exhaust
         the allocation space
      
      * tag 'smp-core-2024-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        cpu/hotplug: Increase the number of dynamic states
        cpu/hotplug: Remove unused CPU hotplug states
      46a08b4d
    • Linus Torvalds's avatar
      Merge tag 'core-entry-2024-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · cdc20228
      Linus Torvalds authored
      Pull generic syscall updates from Ingo Molnar:
       "Move various entry functions from kernel/entry/common.c to a header
        file, and always-inline them, to improve syscall entry performance
        on s390 by ~11%"
      
      * tag 'core-entry-2024-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        entry: Move syscall_enter_from_user_mode() to header file
        entry: Move enter_from_user_mode() to header file
        entry: Move exit to usermode functions to header file
      cdc20228
    • Linus Torvalds's avatar
      Merge tag 'core-debugobjects-2024-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ab9517fa
      Linus Torvalds authored
      Pull debugobject update from Ingo Molnar:
      
       - Make tracking object use more robust: it's not safe to access a
         tracking object after releasing the hashbucket lock. Create a
         persistent copy for debug printouts instead.
      
      * tag 'core-debugobjects-2024-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        debugobjects: Stop accessing objects after releasing hash bucket lock
      ab9517fa