1. 12 Dec, 2022 40 commits
    • Linus Torvalds's avatar
      Merge tag 'cxl-for-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl · c1f0fcd8
      Linus Torvalds authored
      Pull cxl updates from Dan Williams:
       "Compute Express Link (CXL) updates for 6.2.
      
        While it may seem backwards, the CXL update this time around includes
        some focus on CXL 1.x enabling where the work to date had been with
        CXL 2.0 (VH topologies) in mind.
      
        First generation CXL can mostly be supported via BIOS, similar to DDR,
        however it became clear there are use cases for OS native CXL error
        handling and some CXL 3.0 endpoint features can be deployed on CXL 1.x
        hosts (Restricted CXL Host (RCH) topologies). So, this update brings
        RCH topologies into the Linux CXL device model.
      
        In support of the ongoing CXL 2.0+ enabling two new core kernel
        facilities are added.
      
        One is the ability for the kernel to flag collisions between userspace
        access to PCI configuration registers and kernel accesses. This is
        brought on by the PCIe Data-Object-Exchange (DOE) facility, a hardware
        mailbox over config-cycles.
      
        The other is a cpu_cache_invalidate_memregion() API that maps to
        wbinvd_on_all_cpus() on x86. To prevent abuse it is disabled in guest
        VMs and architectures that do not support it yet. The CXL paths that
        need it, dynamic memory region creation and security commands (erase /
        unlock), are disabled when it is not present.
      
        As for the CXL 2.0+ this cycle the subsystem gains support Persistent
        Memory Security commands, error handling in response to PCIe AER
        notifications, and support for the "XOR" host bridge interleave
        algorithm.
      
        Summary:
      
         - Add the cpu_cache_invalidate_memregion() API for cache flushing in
           response to physical memory reconfiguration, or memory-side data
           invalidation from operations like secure erase or memory-device
           unlock.
      
         - Add a facility for the kernel to warn about collisions between
           kernel and userspace access to PCI configuration registers
      
         - Add support for Restricted CXL Host (RCH) topologies (formerly CXL
           1.1)
      
         - Add handling and reporting of CXL errors reported via the PCIe AER
           mechanism
      
         - Add support for CXL Persistent Memory Security commands
      
         - Add support for the "XOR" algorithm for CXL host bridge interleave
      
         - Rework / simplify CXL to NVDIMM interactions
      
         - Miscellaneous cleanups and fixes"
      
      * tag 'cxl-for-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/cxl/cxl: (71 commits)
        cxl/region: Fix memdev reuse check
        cxl/pci: Remove endian confusion
        cxl/pci: Add some type-safety to the AER trace points
        cxl/security: Drop security command ioctl uapi
        cxl/mbox: Add variable output size validation for internal commands
        cxl/mbox: Enable cxl_mbox_send_cmd() users to validate output size
        cxl/security: Fix Get Security State output payload endian handling
        cxl: update names for interleave ways conversion macros
        cxl: update names for interleave granularity conversion macros
        cxl/acpi: Warn about an invalid CHBCR in an existing CHBS entry
        tools/testing/cxl: Require cache invalidation bypass
        cxl/acpi: Fail decoder add if CXIMS for HBIG is missing
        cxl/region: Fix spelling mistake "memergion" -> "memregion"
        cxl/regs: Fix sparse warning
        cxl/acpi: Set ACPI's CXL _OSC to indicate RCD mode support
        tools/testing/cxl: Add an RCH topology
        cxl/port: Add RCD endpoint port enumeration
        cxl/mem: Move devm_cxl_add_endpoint() from cxl_core to cxl_mem
        tools/testing/cxl: Add XOR Math support to cxl_test
        cxl/acpi: Support CXL XOR Interleave Math (CXIMS)
        ...
      c1f0fcd8
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 691806e9
      Linus Torvalds authored
      Pull thermal control updates from Rafael Wysocki:
       "These include thermal core fixes to protect thermal device operations
        against thermal device removal, other thermal core fixes and updates
        of Intel thermal control drivers.
      
        Specifics:
      
         - Fix race conditions related to thermal device operations that are
           not protected against thermal device removal (Guenter Roeck)
      
         - Fix error code in __thermal_cooling_device_register() (Dan
           Carpenter)
      
         - Validate new cooling device state (coming from user space) in
           cur_state_store() and reuse the max_state value from cooling device
           structure in the sysfs interface (Viresh Kumar)
      
         - Fix some possible name leaks in error paths in the thermal control
           core code (Yang Yingliang)
      
         - Detect TCC lock bit set in the intel_tcc_cooling driver and make it
           refuse to update the TCC offset in that case (Zhang Rui)
      
         - Add TCC cooling support for RaptorLake-S (Zhang Rui)
      
         - Prevent accidental clearing of HFI status by one of the other
           drivers using the same status register (Srinivas Pandruvada)
      
         - Protect clearing of thermal status bits in Intel thermal control
           drivers (Srinivas Pandruvada)
      
         - Allow the HFI thermal control driver to ACK an HFI event for the
           previously observed timestamp (Srinivas Pandruvada)
      
         - Remove a pointless die_id check from the HFI thermal driver and
           adjust the definition a data structure used by it (Ricardo Neri)"
      
      * tag 'thermal-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        thermal: intel: hfi: Remove a pointless die_id check
        thermal: core: fix some possible name leaks in error paths
        thermal: intel: hfi: ACK HFI for the same timestamp
        thermal: intel: Protect clearing of thermal status bits
        thermal: intel: Prevent accidental clearing of HFI status
        thermal/core: Protect thermal device operations against thermal device removal
        thermal/core: Remove thermal_zone_set_trips()
        thermal/core: Protect sysfs accesses to thermal operations with thermal zone mutex
        thermal/core: Protect hwmon accesses to thermal operations with thermal zone mutex
        thermal/core: Introduce locked version of thermal_zone_device_update
        thermal/core: Move parameter validation from __thermal_zone_get_temp to thermal_zone_get_temp
        thermal/core: Ensure that thermal device is registered in thermal_zone_get_temp
        thermal/core: Delete device under thermal device zone lock
        thermal/core: Destroy thermal zone device mutex in release function
        thermal: intel: intel_tcc_cooling: Add TCC cooling support for RaptorLake-S
        thermal: intel: intel_tcc_cooling: Detect TCC lock bit
        thermal: intel: hfi: Improve the type of hfi_features::nr_table_pages
        thermal/core: fix error code in __thermal_cooling_device_register()
        thermal: sysfs: Reuse cdev->max_state
        thermal: Validate new state in cur_state_store()
      691806e9
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 456ed864
      Linus Torvalds authored
      Pull ACPI and PNP updates from Rafael Wysocki:
       "These include new code (for instance, support for the FFH address
        space type and support for new firmware data structures in ACPICA),
        some new quirks (mostly related to backlight handling and I2C
        enumeration), a number of fixes and a fair amount of cleanups all
        over.
      
        Specifics:
      
         - Update the ACPICA code in the kernel to the 20221020 upstream
           version and fix a couple of issues in it:
            - Make acpi_ex_load_op() match upstream implementation (Rafael
              Wysocki)
            - Add support for loong_arch-specific APICs in MADT (Huacai Chen)
            - Add support for fixed PCIe wake event (Huacai Chen)
            - Add EBDA pointer sanity checks (Vit Kabele)
            - Avoid accessing VGA memory when EBDA < 1KiB (Vit Kabele)
            - Add CCEL table support to both compiler/disassembler (Kuppuswamy
              Sathyanarayanan)
            - Add a couple of new UUIDs to the known UUID list (Bob Moore)
            - Add support for FFH Opregion special context data (Sudeep
              Holla)
            - Improve warning message for "invalid ACPI name" (Bob Moore)
            - Add support for CXL 3.0 structures (CXIMS & RDPAS) in the CEDT
              table (Alison Schofield)
            - Prepare IORT support for revision E.e (Robin Murphy)
            - Finish support for the CDAT table (Bob Moore)
            - Fix error code path in acpi_ds_call_control_method() (Rafael
              Wysocki)
            - Fix use-after-free in acpi_ut_copy_ipackage_to_ipackage() (Li
              Zetao)
            - Update the version of the ACPICA code in the kernel (Bob Moore)
      
         - Use ZERO_PAGE(0) instead of empty_zero_page in the ACPI device
           enumeration code (Giulio Benetti)
      
         - Change the return type of the ACPI driver remove callback to void
           and update its users accordingly (Dawei Li)
      
         - Add general support for FFH address space type and implement the
           low- level part of it for ARM64 (Sudeep Holla)
      
         - Fix stale comments in the ACPI tables parsing code and make it
           print more messages related to MADT (Hanjun Guo, Huacai Chen)
      
         - Replace invocations of generic library functions with more kernel-
           specific counterparts in the ACPI sysfs interface (Christophe
           JAILLET, Xu Panda)
      
         - Print full name paths of ACPI power resource objects during
           enumeration (Kane Chen)
      
         - Eliminate a compiler warning regarding a missing function prototype
           in the ACPI power management code (Sudeep Holla)
      
         - Fix and clean up the ACPI processor driver (Rafael Wysocki, Li
           Zhong, Colin Ian King, Sudeep Holla)
      
         - Add quirk for the HP Pavilion Gaming 15-cx0041ur to the ACPI EC
           driver (Mia Kanashi)
      
         - Add some mew ACPI backlight handling quirks and update some
           existing ones (Hans de Goede)
      
         - Make the ACPI backlight driver prefer the native backlight control
           over vendor backlight control when possible (Hans de Goede)
      
         - Drop unsetting ACPI APEI driver data on remove (Uwe Kleine-König)
      
         - Use xchg_release() instead of cmpxchg() for updating new GHES cache
           slots (Ard Biesheuvel)
      
         - Clean up the ACPI APEI code (Sudeep Holla, Christophe JAILLET, Jay
           Lu)
      
         - Add new I2C device enumeration quirks for Medion Lifetab S10346 and
           Lenovo Yoga Tab 3 Pro (YT3-X90F) (Hans de Goede)
      
         - Make the ACPI battery driver notify user space about adding new
           battery hooks and removing the existing ones (Armin Wolf)
      
         - Modify the pfr_update and pfr_telemetry drivers to use ACPI_FREE()
           for freeing acpi_object structures to help diagnostics (Wang
           ShaoBo)
      
         - Make the ACPI fan driver use sysfs_emit_at() in its sysfs interface
           code (ye xingchen)
      
         - Fix the _FIF package extraction failure handling in the ACPI fan
           driver (Hanjun Guo)
      
         - Fix the PCC mailbox handling error code path (Huisong Li)
      
         - Avoid using PCC Opregions if there is no platform interrupt
           allocated for this purpose (Huisong Li)
      
         - Use sysfs_emit() instead of scnprintf() in the ACPI PAD driver and
           CPPC library (ye xingchen)
      
         - Fix some kernel-doc issues in the ACPI GSI processing code
           (Xiongfeng Wang)
      
         - Fix name memory leak in pnp_alloc_dev() (Yang Yingliang)
      
         - Do not disable PNP devices on suspend when they cannot be
           re-enabled on resume (Hans de Goede)
      
         - Clean up the ACPI thermal driver a bit (Rafael Wysocki)"
      
      * tag 'acpi-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (67 commits)
        ACPI: x86: Add skip i2c clients quirk for Medion Lifetab S10346
        ACPI: APEI: EINJ: Refactor available_error_type_show()
        ACPI: APEI: EINJ: Fix formatting errors
        ACPI: processor: perflib: Adjust acpi_processor_notify_smm() return value
        ACPI: processor: perflib: Rearrange acpi_processor_notify_smm()
        ACPI: processor: perflib: Rearrange unregistration routine
        ACPI: processor: perflib: Drop redundant parentheses
        ACPI: processor: perflib: Adjust white space
        ACPI: processor: idle: Drop unnecessary statements and parens
        ACPI: thermal: Adjust critical.flags.valid check
        ACPI: fan: Convert to use sysfs_emit_at() API
        ACPICA: Fix use-after-free in acpi_ut_copy_ipackage_to_ipackage()
        ACPI: battery: Call power_supply_changed() when adding hooks
        ACPI: use sysfs_emit() instead of scnprintf()
        ACPI: x86: Add skip i2c clients quirk for Lenovo Yoga Tab 3 Pro (YT3-X90F)
        ACPI: APEI: Remove a useless include
        PNP: Do not disable devices on suspend when they cannot be re-enabled on resume
        ACPI: processor: Silence missing prototype warnings
        ACPI: processor_idle: Silence missing prototype warnings
        ACPI: PM: Silence missing prototype warning
        ...
      456ed864
    • Linus Torvalds's avatar
      Merge tag 'pm-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 045e222d
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These include two new drivers (cpufreq driver for Apple SoC CPU
        P-states and the SCMI Powercap based power capping driver), other new
        hardware support and driver extensions (Qualcomm cpufreq driver and
        its DT bindings, TI cpufreq driver, intel_pstate, intel-uncore-freq),
        a bunch of fixes and cleanups all over and a cpupower utility update
        including new features related to RAPL support.
      
        Specifics:
      
         - Fix nasty and hard to debug race condition introduced by mistake in
           the runtime PM core code and clean up that code somewhat on top of
           the fix (Rafael Wysocki)
      
         - Generalize of_perf_domain_get_sharing_cpumask phandle format
           (Hector Martin)
      
         - Add new cpufreq driver for Apple SoC CPU P-states (Hector Martin)
      
         - Update Qualcomm cpufreq driver (Manivannan Sadhasivam, Chen Hui):
            - CPU clock provider support
            - Generic cleanups or reorganization
            - Potential memleak fix
            - Fix of the return value of cpufreq_driver->get()
      
         - Update Qualcomm cpufreq driver's DT bindings (Manivannan
           Sadhasivam, Rob Herring, Melody Olvera):
            - Support for CPU clock provider
            - Missing cache-related properties fixes
            - Support for QDU1000/QRU1000
      
         - Add support for ti,am625 SoC and enable build of ti-cpufreq for
           ARCH_K3 (Dave Gerlach, and Vibhore Vardhan)
      
         - Use flexible array to simplify memory allocation in the tegra186
           cpufreq driver (Christophe JAILLET)
      
         - Convert cpufreq statistics code to use sysfs_emit_at() (ye
           xingchen)
      
         - Allow intel_pstate to use no-HWP mode on Sapphire Rapids (Giovanni
           Gherdovich)
      
         - Add missing pci_dev_put() to the amd_freq_sensitivity cpufreq
           driver (Xiongfeng Wang)
      
         - Initialize the kobj_unregister completion before calling
           kobject_init_and_add() in the cpufreq core code (Yongqiang Liu)
      
         - Defer setting boost MSRs in the ACPI cpufreq driver (Stuart Hayes,
           Nathan Chancellor)
      
         - Make intel_pstate accept initial EPP value of 0x80 (Srinivas
           Pandruvada)
      
         - Make read-only array sys_clk_src in the SPEAr cpufreq driver static
           (Colin Ian King)
      
         - Make array speeds in the longhaul cpufreq driver static (Colin Ian
           King)
      
         - Use str_enabled_disabled() helper in the ACPI cpufreq driver (Andy
           Shevchenko)
      
         - Drop a reference to CVS from cpufreq documentation (Conghui Wang)
      
         - Improve kernel messages printed by the PSCI cpuidle driver (Ulf
           Hansson)
      
         - Make the DT cpuidle driver return the correct number of parsed idle
           states, clean it up and clarify a comment in it (Ulf Hansson)
      
         - Modify the tasks freezing code to avoid using pr_cont() and refine
           an error message printed by it (Rafael Wysocki)
      
         - Make the hibernation core code complain about memory map mismatches
           during resume to help diagnostics (Xueqin Luo)
      
         - Fix mistake in a kerneldoc comment in the hibernation code
           (xiongxin)
      
         - Reverse the order of performance and enabling operations in the
           generic power domains code (Abel Vesa)
      
         - Power off[on] domains in hibernate .freeze[thaw]_noirq hook of in
           the generic power domains code (Abel Vesa)
      
         - Consolidate genpd_restore_noirq() and genpd_resume_noirq() (Shawn
           Guo)
      
         - Pass generic PM noirq hooks to genpd_finish_suspend() (Shawn Guo)
      
         - Drop generic power domain status manipulation during hibernate
           restore (Shawn Guo)
      
         - Fix compiler warnings with make W=1 in the idle_inject power
           capping driver (Srinivas Pandruvada)
      
         - Use kstrtobool() instead of strtobool() in the power capping sysfs
           interface (Christophe JAILLET)
      
         - Add SCMI Powercap based power capping driver (Cristian Marussi)
      
         - Add Emerald Rapids support to the intel-uncore-freq driver (Artem
           Bityutskiy)
      
         - Repair slips in kernel-doc comments in the generic notifier code
           (Lukas Bulwahn)
      
         - Fix several DT issues in the OPP library reorganize code around
           opp-microvolt-<named> DT property (Viresh Kumar)
      
         - Allow any of opp-microvolt, opp-microamp, or opp-microwatt
           properties to be present without the others present (James
           Calligeros)
      
         - Fix clock-latency-ns property in DT example (Serge Semin)
      
         - Add a private governor_data for devfreq governors (Kant Fan)
      
         - Reorganize devfreq code to use device_match_of_node() and
           devm_platform_get_and_ioremap_resource() instead of open coding
           them (ye xingchen, Minghao Chi)
      
         - Make cpupower choose base_cpu to display default cpupower details
           instead of picking CPU 0 (Saket Kumar Bhaskar)
      
         - Add Georgian translation to cpupower documentation (Zurab
           Kargareteli)
      
         - Introduce powercap intel-rapl library, powercap-info command, and
           RAPL monitor into cpupower (Thomas Renninger)"
      
      * tag 'pm-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (64 commits)
        PM: runtime: Adjust white space in the core code
        cpufreq: Remove CVS version control contents from documentation
        cpufreq: stats: Convert to use sysfs_emit_at() API
        cpufreq: ACPI: Only set boost MSRs on supported CPUs
        PM: sleep: Refine error message in try_to_freeze_tasks()
        PM: sleep: Avoid using pr_cont() in the tasks freezing code
        PM: runtime: Relocate rpm_callback() right after __rpm_callback()
        PM: runtime: Do not call __rpm_callback() from rpm_idle()
        PM / devfreq: event: use devm_platform_get_and_ioremap_resource()
        PM / devfreq: event: Use device_match_of_node()
        PM / devfreq: Use device_match_of_node()
        powercap: idle_inject: Fix warnings with make W=1
        PM: hibernate: Complain about memory map mismatches during resume
        dt-bindings: cpufreq: cpufreq-qcom-hw: Add QDU1000/QRU1000 cpufreq
        cpufreq: tegra186: Use flexible array to simplify memory allocation
        cpupower: rapl monitor - shows the used power consumption in uj for each rapl domain
        cpupower: Introduce powercap intel-rapl library and powercap-info command
        cpupower: Add Georgian translation
        cpufreq: intel_pstate: Add Sapphire Rapids support in no-HWP mode
        cpufreq: amd_freq_sensitivity: Add missing pci_dev_put()
        ...
      045e222d
    • Linus Torvalds's avatar
      Merge tag 'x86-misc-2022-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 631aa744
      Linus Torvalds authored
      Pull misc x86 updates from Thomas Gleixner:
       "Updates for miscellaneous x86 areas:
      
         - Reserve a new boot loader type for barebox which is usally used on
           ARM and MIPS, but can also be utilized as EFI payload on x86 to
           provide watchdog-supervised boot up.
      
         - Consolidate the native and compat 32bit signal handling code and
           split the 64bit version out into a separate source file
      
         - Switch the ESPFIX random usage to get_random_long()"
      
      * tag 'x86-misc-2022-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/espfix: Use get_random_long() rather than archrandom
        x86/signal/64: Move 64-bit signal code to its own file
        x86/signal/32: Merge native and compat 32-bit signal code
        x86/signal: Add ABI prefixes to frame setup functions
        x86/signal: Merge get_sigframe()
        x86: Remove __USER32_DS
        signal/compat: Remove compat_sigset_t override
        x86/signal: Remove sigset_t parameter from frame setup functions
        x86/signal: Remove sig parameter from frame setup functions
        Documentation/x86/boot: Reserve type_of_loader=13 for barebox
      631aa744
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2022-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0a1d4434
      Linus Torvalds authored
      Pull timer updates from Thomas Gleixner:
       "Updates for timers, timekeeping and drivers:
      
        Core:
      
         - The timer_shutdown[_sync]() infrastructure:
      
           Tearing down timers can be tedious when there are circular
           dependencies to other things which need to be torn down. A prime
           example is timer and workqueue where the timer schedules work and
           the work arms the timer.
      
           What needs to prevented is that pending work which is drained via
           destroy_workqueue() does not rearm the previously shutdown timer.
           Nothing in that shutdown sequence relies on the timer being
           functional.
      
           The conclusion was that the semantics of timer_shutdown_sync()
           should be:
      	- timer is not enqueued
          	- timer callback is not running
          	- timer cannot be rearmed
      
           Preventing the rearming of shutdown timers is done by discarding
           rearm attempts silently.
      
           A warning for the case that a rearm attempt of a shutdown timer is
           detected would not be really helpful because it's entirely unclear
           how it should be acted upon. The only way to address such a case is
           to add 'if (in_shutdown)' conditionals all over the place. This is
           error prone and in most cases of teardown not required all.
      
         - The real fix for the bluetooth HCI teardown based on
           timer_shutdown_sync().
      
           A larger scale conversion to timer_shutdown_sync() is work in
           progress.
      
         - Consolidation of VDSO time namespace helper functions
      
         - Small fixes for timer and timerqueue
      
        Drivers:
      
         - Prevent integer overflow on the XGene-1 TVAL register which causes
           an never ending interrupt storm.
      
         - The usual set of new device tree bindings
      
         - Small fixes and improvements all over the place"
      
      * tag 'timers-core-2022-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits)
        dt-bindings: timer: renesas,cmt: Add r8a779g0 CMT support
        dt-bindings: timer: renesas,tmu: Add r8a779g0 support
        clocksource/drivers/arm_arch_timer: Use kstrtobool() instead of strtobool()
        clocksource/drivers/timer-ti-dm: Fix missing clk_disable_unprepare in dmtimer_systimer_init_clock()
        clocksource/drivers/timer-ti-dm: Clear settings on probe and free
        clocksource/drivers/timer-ti-dm: Make timer_get_irq static
        clocksource/drivers/timer-ti-dm: Fix warning for omap_timer_match
        clocksource/drivers/arm_arch_timer: Fix XGene-1 TVAL register math error
        clocksource/drivers/timer-npcm7xx: Enable timer 1 clock before use
        dt-bindings: timer: nuvoton,npcm7xx-timer: Allow specifying all clocks
        dt-bindings: timer: rockchip: Add rockchip,rk3128-timer
        clockevents: Repair kernel-doc for clockevent_delta2ns()
        clocksource/drivers/ingenic-ost: Define pm functions properly in platform_driver struct
        clocksource/drivers/sh_cmt: Access registers according to spec
        vdso/timens: Refactor copy-pasted find_timens_vvar_page() helper into one copy
        Bluetooth: hci_qca: Fix the teardown problem for real
        timers: Update the documentation to reflect on the new timer_shutdown() API
        timers: Provide timer_shutdown[_sync]()
        timers: Add shutdown mechanism to the internal functions
        timers: Split [try_to_]del_timer[_sync]() to prepare for shutdown mode
        ...
      0a1d4434
    • Linus Torvalds's avatar
      Merge tag 'x86-cleanups-2022-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 79ad8912
      Linus Torvalds authored
      Pull x86 cleanups from Thomas Gleixner:
       "A set of x86 cleanups:
      
         - Rework the handling of x86_regset for 32 and 64 bit.
      
           The original implementation tried to minimize the allocation size
           with quite some hard to understand and fragile tricks. Make it
           robust and straight forward by separating the register enumerations
           for 32 and 64 bit completely.
      
         - Add a few missing static annotations
      
         - Remove the stale unused setup_once() assembly function
      
         - Address a few minor static analysis and kernel-doc warnings"
      
      * tag 'x86-cleanups-2022-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/asm/32: Remove setup_once()
        x86/kaslr: Fix process_mem_region()'s return value
        x86: Fix misc small issues
        x86/boot: Repair kernel-doc for boot_kstrtoul()
        x86: Improve formatting of user_regset arrays
        x86: Separate out x86_regset for 32 and 64 bit
        x86/i8259: Make default_legacy_pic static
        x86/tsc: Make art_related_clocksource static
      79ad8912
    • Linus Torvalds's avatar
      Merge tag 'x86-apic-2022-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 36901316
      Linus Torvalds authored
      Pull x86 apic update from Thomas Gleixner:
       "A set of changes for the x86 APIC code:
      
         - Handle the case where x2APIC is enabled and locked by the BIOS on a
           kernel with CONFIG_X86_X2APIC=n gracefully.
      
           Instead of a panic which does not make it to the graphical console
           during very early boot, simply disable the local APIC completely
           and boot with the PIC and very limited functionality, which allows
           to diagnose the issue
      
         - Convert x86 APIC device tree bindings to YAML
      
         - Extend x86 APIC device tree bindings to configure interrupt
           delivery mode and handle this in during init. This allows to boot
           with device tree on platforms which lack a legacy PIC"
      
      * tag 'x86-apic-2022-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/of: Add support for boot time interrupt delivery mode configuration
        x86/of: Replace printk(KERN_LVL) with pr_lvl()
        dt-bindings: x86: apic: Introduce new optional bool property for lapic
        dt-bindings: x86: apic: Convert Intel's APIC bindings to YAML schema
        x86/of: Remove unused early_init_dt_add_memory_arch()
        x86/apic: Handle no CONFIG_X86_X2APIC on systems with x2APIC enabled by BIOS
      36901316
    • Linus Torvalds's avatar
      Merge tag 'smp-core-2022-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 08d72bd2
      Linus Torvalds authored
      Pull CPU hotplug updates from Thomas Gleixner:
       "A small set of updates for CPU hotplug:
      
         - Prevent stale CPU hotplug state in the cpu_down() path which was
           detected by stress testing the sysfs interface
      
         - Ensure that the target CPU hotplug state for the boot CPU is
           CPUHP_ONLINE instead of the compile time init value CPUHP_OFFLINE.
      
         - Switch back to the original behaviour of warning when a CPU hotplug
           callback in the DYING/STARTING section returns an error code.
      
           Otherwise a buggy callback can leave the CPUs in an non recoverable
           state"
      
      * tag 'smp-core-2022-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        cpu/hotplug: Do not bail-out in DYING/STARTING sections
        cpu/hotplug: Set cpuhp target for boot cpu
        cpu/hotplug: Make target_store() a nop when target == state
      08d72bd2
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2022-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9d33edb2
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "Updates for the interrupt core and driver subsystem:
      
        The bulk is the rework of the MSI subsystem to support per device MSI
        interrupt domains. This solves conceptual problems of the current
        PCI/MSI design which are in the way of providing support for
        PCI/MSI[-X] and the upcoming PCI/IMS mechanism on the same device.
      
        IMS (Interrupt Message Store] is a new specification which allows
        device manufactures to provide implementation defined storage for MSI
        messages (as opposed to PCI/MSI and PCI/MSI-X that has a specified
        message store which is uniform accross all devices). The PCI/MSI[-X]
        uniformity allowed us to get away with "global" PCI/MSI domains.
      
        IMS not only allows to overcome the size limitations of the MSI-X
        table, but also gives the device manufacturer the freedom to store the
        message in arbitrary places, even in host memory which is shared with
        the device.
      
        There have been several attempts to glue this into the current MSI
        code, but after lengthy discussions it turned out that there is a
        fundamental design problem in the current PCI/MSI-X implementation.
        This needs some historical background.
      
        When PCI/MSI[-X] support was added around 2003, interrupt management
        was completely different from what we have today in the actively
        developed architectures. Interrupt management was completely
        architecture specific and while there were attempts to create common
        infrastructure the commonalities were rudimentary and just providing
        shared data structures and interfaces so that drivers could be written
        in an architecture agnostic way.
      
        The initial PCI/MSI[-X] support obviously plugged into this model
        which resulted in some basic shared infrastructure in the PCI core
        code for setting up MSI descriptors, which are a pure software
        construct for holding data relevant for a particular MSI interrupt,
        but the actual association to Linux interrupts was completely
        architecture specific. This model is still supported today to keep
        museum architectures and notorious stragglers alive.
      
        In 2013 Intel tried to add support for hot-pluggable IO/APICs to the
        kernel, which was creating yet another architecture specific mechanism
        and resulted in an unholy mess on top of the existing horrors of x86
        interrupt handling. The x86 interrupt management code was already an
        incomprehensible maze of indirections between the CPU vector
        management, interrupt remapping and the actual IO/APIC and PCI/MSI[-X]
        implementation.
      
        At roughly the same time ARM struggled with the ever growing SoC
        specific extensions which were glued on top of the architected GIC
        interrupt controller.
      
        This resulted in a fundamental redesign of interrupt management and
        provided the today prevailing concept of hierarchical interrupt
        domains. This allowed to disentangle the interactions between x86
        vector domain and interrupt remapping and also allowed ARM to handle
        the zoo of SoC specific interrupt components in a sane way.
      
        The concept of hierarchical interrupt domains aims to encapsulate the
        functionality of particular IP blocks which are involved in interrupt
        delivery so that they become extensible and pluggable. The X86
        encapsulation looks like this:
      
                                                  |--- device 1
           [Vector]---[Remapping]---[PCI/MSI]--|...
                                                  |--- device N
      
        where the remapping domain is an optional component and in case that
        it is not available the PCI/MSI[-X] domains have the vector domain as
        their parent. This reduced the required interaction between the
        domains pretty much to the initialization phase where it is obviously
        required to establish the proper parent relation ship in the
        components of the hierarchy.
      
        While in most cases the model is strictly representing the chain of IP
        blocks and abstracting them so they can be plugged together to form a
        hierarchy, the design stopped short on PCI/MSI[-X]. Looking at the
        hardware it's clear that the actual PCI/MSI[-X] interrupt controller
        is not a global entity, but strict a per PCI device entity.
      
        Here we took a short cut on the hierarchical model and went for the
        easy solution of providing "global" PCI/MSI domains which was possible
        because the PCI/MSI[-X] handling is uniform across the devices. This
        also allowed to keep the existing PCI/MSI[-X] infrastructure mostly
        unchanged which in turn made it simple to keep the existing
        architecture specific management alive.
      
        A similar problem was created in the ARM world with support for IP
        block specific message storage. Instead of going all the way to stack
        a IP block specific domain on top of the generic MSI domain this ended
        in a construct which provides a "global" platform MSI domain which
        allows overriding the irq_write_msi_msg() callback per allocation.
      
        In course of the lengthy discussions we identified other abuse of the
        MSI infrastructure in wireless drivers, NTB etc. where support for
        implementation specific message storage was just mindlessly glued into
        the existing infrastructure. Some of this just works by chance on
        particular platforms but will fail in hard to diagnose ways when the
        driver is used on platforms where the underlying MSI interrupt
        management code does not expect the creative abuse.
      
        Another shortcoming of today's PCI/MSI-X support is the inability to
        allocate or free individual vectors after the initial enablement of
        MSI-X. This results in an works by chance implementation of VFIO (PCI
        pass-through) where interrupts on the host side are not set up upfront
        to avoid resource exhaustion. They are expanded at run-time when the
        guest actually tries to use them. The way how this is implemented is
        that the host disables MSI-X and then re-enables it with a larger
        number of vectors again. That works by chance because most device
        drivers set up all interrupts before the device actually will utilize
        them. But that's not universally true because some drivers allocate a
        large enough number of vectors but do not utilize them until it's
        actually required, e.g. for acceleration support. But at that point
        other interrupts of the device might be in active use and the MSI-X
        disable/enable dance can just result in losing interrupts and
        therefore hard to diagnose subtle problems.
      
        Last but not least the "global" PCI/MSI-X domain approach prevents to
        utilize PCI/MSI[-X] and PCI/IMS on the same device due to the fact
        that IMS is not longer providing a uniform storage and configuration
        model.
      
        The solution to this is to implement the missing step and switch from
        global PCI/MSI domains to per device PCI/MSI domains. The resulting
        hierarchy then looks like this:
      
                                    |--- [PCI/MSI] device 1
           [Vector]---[Remapping]---|...
                                    |--- [PCI/MSI] device N
      
        which in turn allows to provide support for multiple domains per
        device:
      
                                    |--- [PCI/MSI] device 1
                                    |--- [PCI/IMS] device 1
           [Vector]---[Remapping]---|...
                                    |--- [PCI/MSI] device N
                                    |--- [PCI/IMS] device N
      
        This work converts the MSI and PCI/MSI core and the x86 interrupt
        domains to the new model, provides new interfaces for post-enable
        allocation/free of MSI-X interrupts and the base framework for
        PCI/IMS. PCI/IMS has been verified with the work in progress IDXD
        driver.
      
        There is work in progress to convert ARM over which will replace the
        platform MSI train-wreck. The cleanup of VFIO, NTB and other creative
        "solutions" are in the works as well.
      
        Drivers:
      
         - Updates for the LoongArch interrupt chip drivers
      
         - Support for MTK CIRQv2
      
         - The usual small fixes and updates all over the place"
      
      * tag 'irq-core-2022-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (134 commits)
        irqchip/ti-sci-inta: Fix kernel doc
        irqchip/gic-v2m: Mark a few functions __init
        irqchip/gic-v2m: Include arm-gic-common.h
        irqchip/irq-mvebu-icu: Fix works by chance pointer assignment
        iommu/amd: Enable PCI/IMS
        iommu/vt-d: Enable PCI/IMS
        x86/apic/msi: Enable PCI/IMS
        PCI/MSI: Provide pci_ims_alloc/free_irq()
        PCI/MSI: Provide IMS (Interrupt Message Store) support
        genirq/msi: Provide constants for PCI/IMS support
        x86/apic/msi: Enable MSI_FLAG_PCI_MSIX_ALLOC_DYN
        PCI/MSI: Provide post-enable dynamic allocation interfaces for MSI-X
        PCI/MSI: Provide prepare_desc() MSI domain op
        PCI/MSI: Split MSI-X descriptor setup
        genirq/msi: Provide MSI_FLAG_MSIX_ALLOC_DYN
        genirq/msi: Provide msi_domain_alloc_irq_at()
        genirq/msi: Provide msi_domain_ops:: Prepare_desc()
        genirq/msi: Provide msi_desc:: Msi_data
        genirq/msi: Provide struct msi_map
        x86/apic/msi: Remove arch_create_remap_msi_irq_domain()
        ...
      9d33edb2
    • Linus Torvalds's avatar
      Merge tag 'core-debugobjects-2022-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f10bc401
      Linus Torvalds authored
      Pull debugobjects update from Thomas Gleixner:
       "A single update for debugobjects:
      
        Add the object pointer to the debug output for better correlation with
        other debug facilities"
      
      * tag 'core-debugobjects-2022-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        debugobjects: Print object pointer in debug_print_object()
      f10bc401
    • Linus Torvalds's avatar
      Merge tag 'x86-urgent-2022-12-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9c2b840a
      Linus Torvalds authored
      Pull x86 fixes from Thomas Gleixner:
       "Three small x86 fixes which did not make it into 6.1:
      
         - Remove a superfluous noinline which prevents GCC-7.3 to optimize a
           stub function away
      
         - Allow uprobes on REP NOP and do not treat them like word-sized
           branch instructions
      
         - Make the VDSO symbol export of __vdso_sgx_enter_enclave() depend on
           CONFIG_X86_SGX to prevent build failures with newer LLVM versions
           which rightfully detect that there is no function behind the
           symbol"
      
      * tag 'x86-urgent-2022-12-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/vdso: Conditionally export __vdso_sgx_enter_enclave()
        uprobes/x86: Allow to probe a NOP instruction with 0x66 prefix
        x86/alternative: Remove noinline from __ibt_endbr_seal[_end]() stubs
      9c2b840a
    • Linus Torvalds's avatar
      Merge tag 's390-6.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 47477c84
      Linus Torvalds authored
      Pull s390 updates from Alexander Gordeev:
      
       - Factor out handle_write() function and simplify 3215 console write
         operation
      
       - When 3170 terminal emulator is connected to the 3215 console driver
         the boot time could be very long due to limited buffer space or
         missing operator input. Add con3215_drop command line parameter and
         con3215_drop sysfs attribute file to instruct the kernel drop console
         data when such conditions are met
      
       - Fix white space errors in 3215 console driver
      
       - Move enum paiext_mode definition to a header file and rename it to
         paievt_mode to indicate this is now used for several events. Rename
         PAI_MODE_COUNTER to PAI_MODE_COUNTING to make consistent with
         PAI_MODE_SAMPLING
      
       - Simplify the logic of PMU pai_crypto mapped buffer reference counter
         and make it consistent with PMU pai_ext
      
       - Rename PMU pai_crypto mapped buffer structure member users to
         active_events to make it consistent with PMU pai_ext
      
       - Enable HUGETLB_PAGE_OPTIMIZE_VMEMMAP configuration option. This
         results in saving of 12K per 1M hugetlb page (~1.2%) and 32764K per
         2G hugetlb page (~1.6%)
      
       - Use generic serial.h, bugs.h, shmparam.h and vga.h header files and
         scrap s390-specific versions
      
       - The generic percpu setup code does not expect the s390-like
         implementation and emits a warning. To get rid of that warning and
         provide sane CPU-to-node and CPU-to-CPU distance mappings implementat
         a minimal version of setup_per_cpu_areas()
      
       - Use kstrtobool() instead of strtobool() for re-IPL sysfs device
         attributes
      
       - Avoid unnecessary lookup of a pointer to MSI descriptor when setting
         IRQ affinity for a PCI device
      
       - Get rid of "an incompatible function type cast" warning by changing
         debug_sprintf_format_fn() function prototype so it matches the
         debug_format_proc_t function type
      
       - Remove unused info_blk_hdr__pcpus() and get_page_state() functions
      
       - Get rid of clang "unused unused insn cache ops function" warning by
         moving s390_insn definition to a private header
      
       - Get rid of clang "unused function" warning by making function
         raw3270_state_final() only available if CONFIG_TN3270_CONSOLE is
         enabled
      
       - Use kstrobool() to parse sclp_con_drop parameter to make it identical
         to the con3215_drop parameter and allow passing values like "yes" and
         "true"
      
       - Use sysfs_emit() for all SCLP sysfs show functions, which is the
         current standard way to generate output strings
      
       - Make SCLP con_drop sysfs attribute also writable and allow to change
         its value during runtime. This makes SCLP console drop handling
         consistent with the 3215 device driver
      
       - Virtual and physical addresses are indentical on s390. However, there
         is still a confusion when pointers are directly casted to physical
         addresses or vice versa. Use correct address converters
         virt_to_phys() and phys_to_virt() for s390 channel IO drivers
      
       - Support for power managemant has been removed from s390 since quite
         some time. Remove unused power managemant code from the appldata
         device driver
      
       - Allow memory tools like KASAN see memory accesses from the checksum
         code. Switch to GENERIC_CSUM if KASAN is enabled, just like x86 does
      
       - Add support of ECKD DASDs disks so it could be used as boot and dump
         devices
      
       - Follow checkpatch recommendations and use octal values instead of
         S_IRUGO and S_IWUSR for dump device attributes in sysfs
      
       - Changes to vx-insn.h do not cause a recompile of C files that use
         asm(".include \"asm/vx-insn.h\"\n") magic to access vector
         instruction macros from inline assemblies. Add wrapper include header
         file to avoid this problem
      
       - Use vector instruction macros instead of byte patterns to increase
         register validation routine readability
      
       - The current machine check register validation handling does not take
         into account various scenarios and might lead to killing a wrong user
         process or potentially ignore corrupted FPU registers. Simplify logic
         of the machine check handler and stop the whole machine if the
         previous context was kerenel mode. If the previous context was user
         mode, kill the current task
      
       - Introduce sclp_emergency_printk() function which can be used to emit
         a message in emergency cases. It is supposed to be used in cases
         where regular console device drivers may not work anymore, e.g.
         unrecoverable machine checks
      
         Keep the early Service-Call Control Block so it can also be used
         after initdata has been freed to allow sclp_emergency_printk()
         implementation
      
       - In case a system will be stopped because of an unrecoverable machine
         check error print the machine check interruption code to give a hint
         of what went wrong
      
       - Move storage error checking from the assembly entry code to C in
         order to simplify machine check handling. Enter the handler with DAT
         turned on, which simplifies the entry code even more
      
       - The machine check extended save areas are allocated using a private
         "nmi_save_areas" slab cache which guarantees a required power-of-two
         alignment. Get rid of that cache in favour of kmalloc()
      
      * tag 's390-6.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (38 commits)
        s390/nmi: get rid of private slab cache
        s390/nmi: move storage error checking back to C, enter with DAT on
        s390/nmi: print machine check interruption code before stopping system
        s390/sclp: introduce sclp_emergency_printk()
        s390/sclp: keep sclp_early_sccb
        s390/nmi: rework register validation handling
        s390/nmi: use vector instruction macros instead of byte patterns
        s390/vx: add vx-insn.h wrapper include file
        s390/ipl: use octal values instead of S_* macros
        s390/ipl: add eckd dump support
        s390/ipl: add eckd support
        vfio/ccw: identify CCW data addresses as physical
        vfio/ccw: sort out physical vs virtual pointers usage
        s390/checksum: support GENERIC_CSUM, enable it for KASAN
        s390/appldata: remove power management callbacks
        s390/cio: sort out physical vs virtual pointers usage
        s390/sclp: allow to change sclp_console_drop during runtime
        s390/sclp: convert to use sysfs_emit()
        s390/sclp: use kstrobool() to parse sclp_con_drop parameter
        s390/3270: make raw3270_state_final() depend on CONFIG_TN3270_CONSOLE
        ...
      47477c84
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v6.2-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 49d07f01
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
       - remove an unused function involving a non-explictly signed char type
      
       - reword a (correct) comment to stop the inflood of (incorrect) patches
         trying to fix it
      
       - defconfig updates
      
      * tag 'm68k-for-v6.2-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: defconfig: Update defconfigs for v6.1-rc1
        m68k: mac: Reword comment using double "in"
        m68k: mac: Remove unused rbv_set_video_bpp()
      49d07f01
    • Linus Torvalds's avatar
      Merge tag 'mips_6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 5977aa66
      Linus Torvalds authored
      Pull MIPS updates from Thomas Bogendoerfer:
      
       - DT cleanups
      
       - fix for early use of kzalloc on mt7621 platform
      
       - cleanups and fixes
      
      * tag 'mips_6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (21 commits)
        MIPS: OCTEON: warn only once if deprecated link status is being used
        MIPS: BCM63xx: Add check for NULL for clk in clk_enable
        platform/mips: Adjust Kconfig to keep consistency
        MIPS: OCTEON: cvmx-bootmem: use strscpy() to instead of strncpy()
        MIPS: mscc: jaguar2: Fix pca9545 i2c-mux node names
        mips/pci: use devm_platform_ioremap_resource()
        mips: ralink: mt7621: do not use kzalloc too early
        mips: ralink: mt7621: soc queries and tests as functions
        mips: ralink: mt7621: define MT7621_SYSC_BASE with __iomem
        MIPS: Restore symbol versions for copy_page_cpu and clear_page_cpu
        mips: dts: remove label = "cpu" from DSA dt-binding
        mips: ralink: mt7621: change DSA port labels to generic naming
        mips: ralink: mt7621: fix phy-mode of external phy on GB-PC2
        MIPS: vpe-cmp: fix possible memory leak while module exiting
        MIPS: vpe-mt: fix possible memory leak while module exiting
        dt-bindings: mips: brcm: add Broadcom SoCs bindings
        dt-bindings: mips: add CPU bindings for MIPS architecture
        mips: dts: brcm: bcm7435: add "interrupt-names" for NAND controller
        mips: dts: bcm63268: add TWD block timer
        MIPS: Use "grep -E" instead of "egrep"
        ...
      5977aa66
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.2-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · e6b160bc
      Linus Torvalds authored
      Pull xen updates from Juergen Gross:
      
       - fix memory leaks in error paths
      
       - add support for virtio PCI-devices in Xen guests on ARM
      
       - two minor fixes
      
      * tag 'for-linus-6.2-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen/privcmd: Fix a possible warning in privcmd_ioctl_mmap_resource()
        x86/xen: Fix memory leak in xen_init_lock_cpu()
        x86/xen: Fix memory leak in xen_smp_intr_init{_pv}()
        xen: fix xen.h build for CONFIG_XEN_PVH=y
        xen/virtio: Handle PCI devices which Host controller is described in DT
        xen/virtio: Optimize the setup of "xen-grant-dma" devices
      e6b160bc
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-for-v6.2' of... · 0ec5a38b
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-for-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform updates from Tzung-Bi Shih:
       "New drivers
         - Driver for ChromeOS human presence sensor
      
        Cleanups:
         - Add missing property in dt-binding example.
         - Update the availability of properties in dt-binding.
         - Separate dt-binding for ChromeOS fingerprint sensor.
      
        Improvements:
         - Set PROBE_PREFER_ASYNCHRONOUS for some drivers for shortening boot time.
      
        Fixes:
         - Fix an use-after-free in cros_ec_typec.
      
        And minor fixes and cleanups"
      
      * tag 'tag-chrome-platform-for-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
        platform/chrome: cros_ec_typec: zero out stale pointers
        platform/chrome: cros_usbpd_notify: Fix error handling in cros_usbpd_notify_init()
        platform/chrome: cros_ec: Convert to i2c's .probe_new()
        platform/chrome: cros_ec_lpc: Force synchronous probe
        platform/chrome: cros_ec_spi: Set PROBE_PREFER_ASYNCHRONOUS
        platform/chrome: cros_ec_lightbar: Set PROBE_PREFER_ASYNCHRONOUS
        platform/chrome: cros_ec_debugfs: Set PROBE_PREFER_ASYNCHRONOUS
        platform/chrome: cros_ec_lpc: Mark PROBE_PREFER_ASYNCHRONOUS
        platform/chrome: cros_ec_lpc: Move mec_init to device probe
        platform/chrome: Use kstrtobool() instead of strtobool()
        platform/chrome: cros_ec_lpc_mec: remove cros_ec_lpc_mec_destroy()
        dt-bindings: cros-ec: Add ChromeOS fingerprint binding
        dt-bindings: cros-ec: Reorganize and enforce property availability
        platform/chrome: cros_hps_i2c: make remove callback return void
        platform/chrome: add a driver for HPS
      0ec5a38b
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v6.2-1' of... · 7a76117f
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v6.2-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: Add support for Meteor Lake
            - Intel On Demand: various updates
      
       - Ideapad-laptop:
            - Add support for various Fn keys on new models
            - Fix touchpad on/off handling in a generic way to avoid having to
              add more and more quirks
      
       - Android x86 tablets:
            - Add support for two more X86 Android tablet models
      
       - New Dell WMI DDV driver
      
       - Miscellaneous cleanups and small bugfixes
      
      * tag 'platform-drivers-x86-v6.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (52 commits)
        platform/mellanox: mlxbf-pmc: Fix event typo
        platform/x86: intel_scu_ipc: fix possible name leak in __intel_scu_ipc_register()
        platform/x86: sony-laptop: Convert to use sysfs_emit_at() API
        platform/x86/dell: alienware-wmi: Use sysfs_emit() instead of scnprintf()
        platform/x86: uv_sysfs: Use sysfs_emit() instead of scnprintf()
        platform/x86: mxm-wmi: fix memleak in mxm_wmi_call_mx[ds|mx]()
        platform/x86: x86-android-tablets: Add Advantech MICA-071 extra button
        platform/x86: x86-android-tablets: Add Lenovo Yoga Tab 3 (YT3-X90F) charger + fuel-gauge data
        platform/x86: x86-android-tablets: Add Medion Lifetab S10346 data
        platform/x86: wireless-hotkey: use ACPI HID as phys
        platform/x86/intel/hid: Add module-params for 5 button array + SW_TABLET_MODE reporting
        platform/x86: ideapad-laptop: Make touchpad_ctrl_via_ec a module option
        platform/x86: ideapad-laptop: Stop writing VPCCMD_W_TOUCHPAD at probe time
        platform/x86: ideapad-laptop: Send KEY_TOUCHPAD_TOGGLE on some models
        platform/x86: ideapad-laptop: Only toggle ps2 aux port on/off on select models
        platform/x86: ideapad-laptop: Do not send KEY_TOUCHPAD* events on probe / resume
        platform/x86: ideapad-laptop: Refactor ideapad_sync_touchpad_state()
        tools/arch/x86: intel_sdsi: Add support for reading meter certificates
        tools/arch/x86: intel_sdsi: Add support for new GUID
        tools/arch/x86: intel_sdsi: Read more On Demand registers
        ...
      7a76117f
    • Linus Torvalds's avatar
      Merge tag 'soc-dt-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 01f3cbb2
      Linus Torvalds authored
      Pull ARM SoC DT updates from Arnd Bergmann:
       "The devicetree changes contain exactly 1000 non-merge changesets,
        including a number of new arm64 SoC variants from Qualcomm and Apple,
        as well as the Renesas r9a07g043f/u chip in both arm64 and riscv
        variants.
      
        While we have occasionally merged support for non-arm SoCs in the
        past, this is now the normal path for riscv devicetree files.
      
        The most notable changes, by SoC platform, are:
      
         - The Apple T6000 (M1 Pro), T6001 (M1 Max) and T6002 (M1 Ultra) chips
           now have initial support. This is particularly nice as I am typing
           this on a T6002 Mac Studio with only a small number of driver
           patches.
      
         - Qualcomm MSM8996 Pro (Snapdragon 821), SM6115 (Snapdragon 662),
           SM4250 (Snapdragon 460), SM6375 (Snapdragon 695), SDM670
           (Snapdragon 670), MSM8976 (Snapdragon 652) and MSM8956 (Snapdragon
           650) are all mobile phone chips that are closely related to others
           we already support.
      
           Adding those helps support more phones and we add several models
           from Sony (Xperia 10 IV, 5 IV, X, and X compact), OnePlus (One, 3,
           3T, and Nord N100), Xiaomi (Poco F1, Mi6), Huawei (Watch) and
           Google (Pixel 3a).
      
           There are also new variants of the Herobrine and Trogdor chromebook
           motherboards. SA8540P is an automotive SoC used in the Qdrive-3
           development platform
      
         - Rockchips gains no new SoC variants, but a lot of new boards: three
           mobile gaming systems based on RK3326 Odroid-Go/rg351 family, two
           more Anbernic gaming systems based on RK3566 and a number of other
           RK356x based single-board computers.
      
         - Renesas RZ/G2UL (r9a07g043) was already supported for arm64, but as
           the newly added RZ/Five is based on the same design, this now gets
           reorganized in order to share most of the dts description between
           the two and add the RZ/Five SMARC EVK board support.
      
        Aside from that, there are the usual changes all over the tree:
      
         - New boards on other platforms contain two ASpeed BMC users, two
           Broadcom based Wifi routers, Zyxel NSA310S NAS, the i.MX6 based
           Kobo Aura2 ebook reader, two i.MX8 based development boards, two
           Uniphier Pro5 development boards, the STM32MP1 testbench board from
           DHCOR, the TI K3 based BeagleBone AI-64 board, and the Mediatek
           Helio X10 based Sony Xperia M5 phone.
      
         - The Starfive JH7100 source gets reorganized in order to support the
           VisionFive V1 board.
      
         - Minor updates and cleanups for Intel SoCFPGA, Marvell PXA168, TI,
           ST, NXP, Apple, Broadcom, Juno, Marvell MVEBU, at91, nuvoton,
           Tegra, Mediatek, Renesas, Hisilicon, Allwinner, Samsung, ux500,
           spear, ... The treewide cleanups now have a lot of fixes for cache
           nodes and other binding violoations.
      
         - Somewhat larger sets of reworks for NVIDIA Tegra, Qualcomm and
           Renesas platforms, adding a lot more on-chip device support
      
         - A rework of the way that DTB overlays are built"
      
      * tag 'soc-dt-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (979 commits)
        arm64: dts: apple: t6002: Fix GPU power domains
        arm64: dts: apple: t600x-pmgr: Fix search & replace typo
        arm64: dts: apple: Add t8103 L1/L2 cache properties and nodes
        arm64: dts: apple: Rename dart-sio* to sio-dart*
        arch: arm64: apple: t600x: Use standard "iommu" node name
        arch: arm64: apple: t8103: Use standard "iommu" node name
        ARM: dts: socfpga: Fix pca9548 i2c-mux node name
        dt-bindings: iio: adc: qcom,spmi-vadc: fix PM8350 define
        dt-bindings: iio: adc: qcom,spmi-vadc: extend example
        arm64: dts: qcom: sc8280xp: fix UFS DMA coherency
        arm64: dts: qcom: sc7280: Add DT for sc7280-herobrine-zombie
        arm64: dts: qcom: sm8250-sony-xperia-edo: fix no-mmc property for SDHCI
        arm64: dts: qcom: sdm845-sony-xperia-tama: fix no-mmc property for SDHCI
        arm64: dts: qcom: sda660-inforce-ifc6560: fix no-mmc property for SDHCI
        arm64: dts: qcom: sa8155p-adp: fix no-mmc property for SDHCI
        arm64: dts: qcom: qrb5165-rb: fix no-mmc property for SDHCI
        arm64: dts: qcom: sm8450: align MMC node names with dtschema
        arm64: dts: qcom: sc7180-trogdor: use generic node names
        arm64: dts: qcom: sm8450-hdk: add sound support
        arm64: dts: qcom: sm8450: add Soundwire and LPASS
        ...
      01f3cbb2
    • Linus Torvalds's avatar
      Merge tag 'soc-drivers-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 8e17b16a
      Linus Torvalds authored
      Pull ARM SoC driver updates from Arnd Bergmann:
       "There are few major updates in the SoC specific drivers, mainly the
        usual reworks and support for variants of the existing SoC. While this
        remains Arm centric for the most part, the branch now also contains
        updates to risc-v and loongarch specific code in drivers/soc/.
      
        Notable changes include:
      
         - Support for the newly added Qualcomm Snapdragon variants (MSM8956,
           MSM8976, SM6115, SM4250, SM8150, SA8155 and SM8550) in the soc ID,
           rpmh, rpm, spm and powerdomain drivers.
      
         - Documentation for the somewhat controversial qcom,board-id
           properties that are required for booting a number of machines
      
         - A new SoC identification driver for the loongson-2 (loongarch)
           platform
      
         - memory controller updates for stm32, tegra, and renesas.
      
         - a new DT binding to better describe LPDDR2/3/4/5 chips in the
           memory controller subsystem
      
         - Updates for Tegra specific drivers across multiple subsystems,
           improving support for newer SoCs and better identification
      
         - Minor fixes for Broadcom, Freescale, Apple, Renesas, Sifive, TI,
           Mediatek and Marvell SoC drivers"
      
      * tag 'soc-drivers-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (137 commits)
        soc: qcom: socinfo: Add SM6115 / SM4250 SoC IDs to the soc_id table
        dt-bindings: arm: qcom,ids: Add SoC IDs for SM6115 / SM4250 and variants
        soc: qcom: socinfo: Add SM8150 and SA8155 SoC IDs to the soc_id table
        dt-bindings: arm: qcom,ids: Add SoC IDs for SM8150 and SA8155
        dt-bindings: soc: qcom: apr: document generic qcom,apr compatible
        soc: qcom: Select REMAP_MMIO for ICC_BWMON driver
        soc: qcom: Select REMAP_MMIO for LLCC driver
        soc: qcom: rpmpd: Add SM4250 support
        dt-bindings: power: rpmpd: Add SM4250 support
        dt-bindings: soc: qcom: aoss: Add compatible for SM8550
        soc: qcom: llcc: Add configuration data for SM8550
        dt-bindings: arm: msm: Add LLCC compatible for SM8550
        soc: qcom: llcc: Add v4.1 HW version support
        soc: qcom: socinfo: Add SM8550 ID
        soc: qcom: rpmh-rsc: Avoid unnecessary checks on irq-done response
        soc: qcom: rpmh-rsc: Add support for RSC v3 register offsets
        soc: qcom: rpmhpd: Add SM8550 power domains
        dt-bindings: power: rpmpd: Add SM8550 to rpmpd binding
        soc: qcom: socinfo: Add MSM8956/76 SoC IDs to the soc_id table
        dt-bindings: arm: qcom,ids: Add SoC IDs for MSM8956 and MSM8976
        ...
      8e17b16a
    • Linus Torvalds's avatar
      Merge tag 'soc-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 69700db4
      Linus Torvalds authored
      Pull ARM SoC code updates from Arnd Bergmann:
       "This time there are only fairly minor cleanups across the i.MX,
        ixp4xx, ux500 and renesas platforms.
      
        The only notable update is a change to the keystone2 platform to
        switch switch it over to standard PSCI SMP bringup, which apparently
        was present in the shipped firmware almost from the start"
      
      * tag 'soc-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
        ARM: ixp4xx: Remove unused debug iomap
        MAINTAINERS: Add DHCOR to the DH electronic i.MX6 board support
        ARM: ixp4xx: Remove unused static map
        MAINTAINERS: adjust ARM/INTEL IXP4XX ARM ARCHITECTURE to ixp4xx clean-up
        ARM: imx3: Remove unneeded #include <linux/pinctrl/machine.h>
        ARM: mxs: Remove unneeded #include <linux/pinctrl/consumer.h>
        riscv: Kconfig.socs: Add ARCH_RENESAS kconfig option
        ARM: ux500: Drop unused register file
        ARM: ux500: do not directly dereference __iomem
        arm/mach-ux500: fix repeated words in comments
        arm64: renesas: Drop selecting GPIOLIB and PINCTRL
        ARM: shmobile: Drop selecting GPIOLIB and PINCTRL
        ARM: keystone: Replace platform SMP with PSCI
        soc: renesas: Kconfig: Explicitly select GPIOLIB and PINCTRL config under SOC_RENESAS
      69700db4
    • Linus Torvalds's avatar
      Merge tag 'soc-defconfig-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 5910b842
      Linus Torvalds authored
      Pull ARM SoC defconfig updates from Arnd Bergmann:
       "This contains the ususal arm and arm64 updates to defconfig files,
        enabling newly added drivers and adapting the files to Kconfig
        changes, in particular for qualcomm, microchip, and nxp SoC platforms"
      
      * tag 'soc-defconfig-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (28 commits)
        arm64: defconfig: Enable Qualcomm SM6115 / SM4250 GCC and Pinctrl
        arm64: defconfig: Enable Qualcomm SM6115 / SM4250 GCC and Pinctrl
        ARM: configs: multi_v7: switch to new MICROCHIP_ISC driver
        ARM: configs: sama5/7: switch to new MICROCHIP_ISC driver
        ARM: multi_v7_defconfig: enable Type-C UCSI and STM32G0 as modules
        arm64: defconfig: Enable Renesas R-Car S4-8 Spider Ethernet devices
        arm: configs: spear6xx: Enable PL110 display controller
        arm: configs: spear6xx: Refresh defconfig
        arm64: defconfig: Enable HTE config
        arm64: defconfig: Enable missing configs for mt8183-jacuzzi-juniper
        arm64: defconfig: Add Renesas 9-series PCIe clock generator
        riscv: configs: defconfig: Enable Renesas RZ/Five SoC
        ARM: imx_v6_v7_defconfig: Enable the cyttsp5 touchscreen
        arm64: defconfig: Enable Tegra186 timer support
        arm64: defconfig: build-in Qualcomm SC7180 and SM8450 interconnects
        arm64: defconfig: Enable Qualcomm QCE crypto
        arm64: defconfig: Enable TI_TFP410 DVI bridge
        ARM: configs: at91: sama7: add config for thermal management
        ARM: configs: at91: sama7: add config for microchip otpc
        ARM: configs: at91: sama7: use make savedefconfig
        ...
      5910b842
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 06cff4a5
      Linus Torvalds authored
      Pull arm64 updates from Will Deacon:
       "The highlights this time are support for dynamically enabling and
        disabling Clang's Shadow Call Stack at boot and a long-awaited
        optimisation to the way in which we handle the SVE register state on
        system call entry to avoid taking unnecessary traps from userspace.
      
        Summary:
      
        ACPI:
         - Enable FPDT support for boot-time profiling
         - Fix CPU PMU probing to work better with PREEMPT_RT
         - Update SMMUv3 MSI DeviceID parsing to latest IORT spec
         - APMT support for probing Arm CoreSight PMU devices
      
        CPU features:
         - Advertise new SVE instructions (v2.1)
         - Advertise range prefetch instruction
         - Advertise CSSC ("Common Short Sequence Compression") scalar
           instructions, adding things like min, max, abs, popcount
         - Enable DIT (Data Independent Timing) when running in the kernel
         - More conversion of system register fields over to the generated
           header
      
        CPU misfeatures:
         - Workaround for Cortex-A715 erratum #2645198
      
        Dynamic SCS:
         - Support for dynamic shadow call stacks to allow switching at
           runtime between Clang's SCS implementation and the CPU's pointer
           authentication feature when it is supported (complete with scary
           DWARF parser!)
      
        Tracing and debug:
         - Remove static ftrace in favour of, err, dynamic ftrace!
         - Seperate 'struct ftrace_regs' from 'struct pt_regs' in core ftrace
           and existing arch code
         - Introduce and implement FTRACE_WITH_ARGS on arm64 to replace the
           old FTRACE_WITH_REGS
         - Extend 'crashkernel=' parameter with default value and fallback to
           placement above 4G physical if initial (low) allocation fails
      
        SVE:
         - Optimisation to avoid disabling SVE unconditionally on syscall
           entry and just zeroing the non-shared state on return instead
      
        Exceptions:
         - Rework of undefined instruction handling to avoid serialisation on
           global lock (this includes emulation of user accesses to the ID
           registers)
      
        Perf and PMU:
         - Support for TLP filters in Hisilicon's PCIe PMU device
         - Support for the DDR PMU present in Amlogic Meson G12 SoCs
         - Support for the terribly-named "CoreSight PMU" architecture from
           Arm (and Nvidia's implementation of said architecture)
      
        Misc:
         - Tighten up our boot protocol for systems with memory above 52 bits
           physical
         - Const-ify static keys to satisty jump label asm constraints
         - Trivial FFA driver cleanups in preparation for v1.1 support
         - Export the kernel_neon_* APIs as GPL symbols
         - Harden our instruction generation routines against instrumentation
         - A bunch of robustness improvements to our arch-specific selftests
         - Minor cleanups and fixes all over (kbuild, kprobes, kfence, PMU, ...)"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (151 commits)
        arm64: kprobes: Return DBG_HOOK_ERROR if kprobes can not handle a BRK
        arm64: kprobes: Let arch do_page_fault() fix up page fault in user handler
        arm64: Prohibit instrumentation on arch_stack_walk()
        arm64:uprobe fix the uprobe SWBP_INSN in big-endian
        arm64: alternatives: add __init/__initconst to some functions/variables
        arm_pmu: Drop redundant armpmu->map_event() in armpmu_event_init()
        kselftest/arm64: Allow epoll_wait() to return more than one result
        kselftest/arm64: Don't drain output while spawning children
        kselftest/arm64: Hold fp-stress children until they're all spawned
        arm64/sysreg: Remove duplicate definitions from asm/sysreg.h
        arm64/sysreg: Convert ID_DFR1_EL1 to automatic generation
        arm64/sysreg: Convert ID_DFR0_EL1 to automatic generation
        arm64/sysreg: Convert ID_AFR0_EL1 to automatic generation
        arm64/sysreg: Convert ID_MMFR5_EL1 to automatic generation
        arm64/sysreg: Convert MVFR2_EL1 to automatic generation
        arm64/sysreg: Convert MVFR1_EL1 to automatic generation
        arm64/sysreg: Convert MVFR0_EL1 to automatic generation
        arm64/sysreg: Convert ID_PFR2_EL1 to automatic generation
        arm64/sysreg: Convert ID_PFR1_EL1 to automatic generation
        arm64/sysreg: Convert ID_PFR0_EL1 to automatic generation
        ...
      06cff4a5
    • Linus Torvalds's avatar
      Merge tag 'microblaze-v6.2' of git://git.monstr.eu/linux-2.6-microblaze · 164f5900
      Linus Torvalds authored
      Pull microblaze updates from Michal Simek:
       "Clean up PCI support which was pretty much copied and pasted from
        PowerPC long time ago for one custom platform which is not available
        for years.
      
        Also, the Xilinx/AMD PCIe team tested Microblaze with IP cores also
        used on ARM SOCs and clean up Microblaze code"
      
      * tag 'microblaze-v6.2' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze/PCI: Moving PCI iounmap and dependent code
        microblaze/PCI: Remove support for Xilinx PCI host bridge
        microblaze/PCI: Remove unused pci_iobar_pfn() and et al declarations
        microblaze/PCI: Remove unused sys_pciconfig_iobase() and et al declaration
        microblaze/PCI: Remove unused pci_address_to_pio() conversion of CPU address to I/O port
        microblaze/PCI: Remove unused PCI Indirect ops
        microblaze/PCI: Remove unused PCI BIOS resource allocation
        microblaze/PCI: Remove unused allocation & free of PCI host bridge structure
        microblaze/PCI: Remove unused device tree parsing for a host bridge resources
        microblaze/PCI: Remove unused PCI legacy IO's access on a bus
        microblaze/PCI: Remove unused PCI bus scan if configured as a host
        microblaze/PCI: Remove Null PCI config access unused functions
        microblaze/PCI: Remove unused early_read_config_byte() et al declarations
      164f5900
    • Linus Torvalds's avatar
      Merge tag 'hyperv-next-signed-20221208' of... · 7d621599
      Linus Torvalds authored
      Merge tag 'hyperv-next-signed-20221208' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux
      
      Pull hyperv updates from Wei Liu:
      
       - Drop unregister syscore from hyperv_cleanup to avoid hang (Gaurav
         Kohli)
      
       - Clean up panic path for Hyper-V framebuffer (Guilherme G. Piccoli)
      
       - Allow IRQ remapping to work without x2apic (Nuno Das Neves)
      
       - Fix comments (Olaf Hering)
      
       - Expand hv_vp_assist_page definition (Saurabh Sengar)
      
       - Improvement to page reporting (Shradha Gupta)
      
       - Make sure TSC clocksource works when Linux runs as the root partition
         (Stanislav Kinsburskiy)
      
      * tag 'hyperv-next-signed-20221208' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
        x86/hyperv: Remove unregister syscore call from Hyper-V cleanup
        iommu/hyper-v: Allow hyperv irq remapping without x2apic
        clocksource: hyper-v: Add TSC page support for root partition
        clocksource: hyper-v: Use TSC PFN getter to map vvar page
        clocksource: hyper-v: Introduce TSC PFN getter
        clocksource: hyper-v: Introduce a pointer to TSC page
        x86/hyperv: Expand definition of struct hv_vp_assist_page
        PCI: hv: update comment in x86 specific hv_arch_irq_unmask
        hv: fix comment typo in vmbus_channel/low_latency
        drivers: hv, hyperv_fb: Untangle and refactor Hyper-V panic notifiers
        video: hyperv_fb: Avoid taking busy spinlock on panic path
        hv_balloon: Add support for configurable order free page reporting
        mm/page_reporting: Add checks for page_reporting_order param
      7d621599
    • Linus Torvalds's avatar
      Merge tag 'tpmdd-next-v6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd · 43686598
      Linus Torvalds authored
      Pull tpm updates from Jarkko Sakkinen:
       "A random collection of TPM fixes and one bug fix for trusted keys"
      
      * tag 'tpmdd-next-v6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd:
        tpm: st33zp24: remove pointless checks on probe
        tpm/tpm_crb: Fix error message in __crb_relinquish_locality()
        tpm/tpm_ftpm_tee: Fix error handling in ftpm_mod_init()
        tpm: tpm_tis: Add the missed acpi_put_table() to fix memory leak
        tpm: tpm_crb: Add the missed acpi_put_table() to fix memory leak
        tpm: acpi: Call acpi_put_table() to fix memory leak
        tpm: Add flag to use default cancellation policy
        tpm: tis_i2c: Fix sanity check interrupt enable mask
        KEYS: trusted: tee: Make registered shm dependency explicit
        tpm: Avoid function type cast of put_device()
        tpm: st33zp24: switch to using gpiod API
        tpm: st33zp24: drop support for platform data
      43686598
    • Linus Torvalds's avatar
      Merge tag 'slab-for-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab · 893660b0
      Linus Torvalds authored
      Pull slab updates from Vlastimil Babka:
      
       - SLOB deprecation and SLUB_TINY
      
         The SLOB allocator adds maintenance burden and stands in the way of
         API improvements [1]. Deprecate it by renaming the config option (to
         make users notice) to CONFIG_SLOB_DEPRECATED with updated help text.
         SLUB should be used instead as SLAB will be the next on the removal
         list.
      
         Based on reports from a riscv k210 board with 8MB RAM, add a
         CONFIG_SLUB_TINY option to minimize SLUB's memory usage at the
         expense of scalability. This has resolved the k210 regression [2] so
         in case there are no others (that wouldn't be resolvable by further
         tweaks to SLUB_TINY) plan is to remove SLOB in a few cycles.
      
         Existing defconfigs with CONFIG_SLOB are converted to
         CONFIG_SLUB_TINY.
      
       - kmalloc() slub_debug redzone improvements
      
         A series from Feng Tang that builds on the tracking or requested size
         for kmalloc() allocations (for caches with debugging enabled) added
         in 6.1, to make redzone checks consider the requested size and not
         the rounded up one, in order to catch more subtle buffer overruns.
         Includes new slub_kunit test.
      
       - struct slab fields reordering to accomodate larger rcu_head
      
         RCU folks would like to grow rcu_head with debugging options, which
         breaks current struct slab layout's assumptions, so reorganize it to
         make this possible.
      
       - Miscellaneous improvements/fixes:
           - __alloc_size checking compiler workaround (Kees Cook)
           - Optimize and cleanup SLUB's sysfs init (Rasmus Villemoes)
           - Make SLAB compatible with PROVE_RAW_LOCK_NESTING (Jiri Kosina)
           - Correct SLUB's percpu allocation estimates (Baoquan He)
           - Re-enableS LUB's run-time failslab sysfs control (Alexander Atanasov)
           - Make tools/vm/slabinfo more user friendly when not run as root (Rong Tao)
           - Dead code removal in SLUB (Hyeonggon Yoo)
      
      * tag 'slab-for-6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab: (31 commits)
        mm, slob: rename CONFIG_SLOB to CONFIG_SLOB_DEPRECATED
        mm, slub: don't aggressively inline with CONFIG_SLUB_TINY
        mm, slub: remove percpu slabs with CONFIG_SLUB_TINY
        mm, slub: split out allocations from pre/post hooks
        mm/slub, kunit: Add a test case for kmalloc redzone check
        mm/slub, kunit: add SLAB_SKIP_KFENCE flag for cache creation
        mm, slub: refactor free debug processing
        mm, slab: ignore SLAB_RECLAIM_ACCOUNT with CONFIG_SLUB_TINY
        mm, slub: don't create kmalloc-rcl caches with CONFIG_SLUB_TINY
        mm, slub: lower the default slub_max_order with CONFIG_SLUB_TINY
        mm, slub: retain no free slabs on partial list with CONFIG_SLUB_TINY
        mm, slub: disable SYSFS support with CONFIG_SLUB_TINY
        mm, slub: add CONFIG_SLUB_TINY
        mm, slab: ignore hardened usercopy parameters when disabled
        slab: Remove special-casing of const 0 size allocations
        slab: Clean up SLOB vs kmalloc() definition
        mm/sl[au]b: rearrange struct slab fields to allow larger rcu_head
        mm/migrate: make isolate_movable_page() skip slab pages
        mm/slab: move and adjust kernel-doc for kmem_cache_alloc
        mm/slub, percpu: correct the calculation of early percpu allocation size
        ...
      893660b0
    • Linus Torvalds's avatar
      Merge tag 'printk-for-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux · 98d0052d
      Linus Torvalds authored
      Pull printk updates from Petr Mladek:
      
       - Add NMI-safe SRCU reader API. It uses atomic_inc() instead of
         this_cpu_inc() on strong load-store architectures.
      
       - Introduce new console_list_lock to synchronize a manipulation of the
         list of registered consoles and their flags.
      
         This is a first step in removing the big-kernel-lock-like behavior of
         console_lock(). This semaphore still serializes console->write()
         calbacks against:
      
            - each other. It primary prevents potential races between early
              and proper console drivers using the same device.
      
            - suspend()/resume() callbacks and init() operations in some
              drivers.
      
            - various other operations in the tty/vt and framebufer
              susbsystems. It is likely that console_lock() serializes even
              operations that are not directly conflicting with the
              console->write() callbacks here. This is the most complicated
              big-kernel-lock aspect of the console_lock() that will be hard
              to untangle.
      
       - Introduce new console_srcu lock that is used to safely iterate and
         access the registered console drivers under SRCU read lock.
      
         This is a prerequisite for introducing atomic console drivers and
         console kthreads. It will reduce the complexity of serialization
         against normal consoles and console_lock(). Also it should remove the
         risk of deadlock during critical situations, like Oops or panic, when
         only atomic consoles are registered.
      
       - Check whether the console is registered instead of enabled on many
         locations. It was a historical leftover.
      
       - Cleanly force a preferred console in xenfb code instead of a dirty
         hack.
      
       - A lot of code and comment clean ups and improvements.
      
      * tag 'printk-for-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux: (47 commits)
        printk: htmldocs: add missing description
        tty: serial: sh-sci: use setup() callback for early console
        printk: relieve console_lock of list synchronization duties
        tty: serial: kgdboc: use console_list_lock to trap exit
        tty: serial: kgdboc: synchronize tty_find_polling_driver() and register_console()
        tty: serial: kgdboc: use console_list_lock for list traversal
        tty: serial: kgdboc: use srcu console list iterator
        proc: consoles: use console_list_lock for list iteration
        tty: tty_io: use console_list_lock for list synchronization
        printk, xen: fbfront: create/use safe function for forcing preferred
        netconsole: avoid CON_ENABLED misuse to track registration
        usb: early: xhci-dbc: use console_is_registered()
        tty: serial: xilinx_uartps: use console_is_registered()
        tty: serial: samsung_tty: use console_is_registered()
        tty: serial: pic32_uart: use console_is_registered()
        tty: serial: earlycon: use console_is_registered()
        tty: hvc: use console_is_registered()
        efi: earlycon: use console_is_registered()
        tty: nfcon: use console_is_registered()
        serial_core: replace uart_console_enabled() with uart_console_registered()
        ...
      98d0052d
    • Linus Torvalds's avatar
      Merge tag 'locks-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux · 73fa58dc
      Linus Torvalds authored
      Pull file locking updates from Jeff Layton:
       "The main change here is to add the new locks_inode_context helper, and
        convert all of the places that dereference inode->i_flctx directly to
        use that instead.
      
        There is a new helper to indicate whether any locks are held on an
        inode. This is mostly for Ceph but may be usable elsewhere too.
      
        Andi Kleen requested that we print the PID when the LOCK_MAND warning
        fires, to help track down applications trying to use it.
      
        Finally, we added some new warnings to some of the file locking
        functions that fire when the ->fl_file and filp arguments differ. This
        helped us find some long-standing bugs in lockd. Patches for those are
        in Chuck Lever's tree and should be in his v6.2 PR. After that patch,
        people using NFSv2/v3 locking may see some warnings fire until those
        go in.
      
        Happy Holidays!"
      
      * tag 'locks-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux:
        Add process name and pid to locks warning
        nfsd: use locks_inode_context helper
        nfs: use locks_inode_context helper
        lockd: use locks_inode_context helper
        ksmbd: use locks_inode_context helper
        cifs: use locks_inode_context helper
        ceph: use locks_inode_context helper
        filelock: add a new locks_inode_context accessor function
        filelock: new helper: vfs_inode_has_locks
        filelock: WARN_ON_ONCE when ->fl_file and filp don't match
      73fa58dc
    • Linus Torvalds's avatar
      Merge tag 'execve-v6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 7fc03505
      Linus Torvalds authored
      Pull execve updates from Kees Cook:
       "Most are small refactorings and bug fixes, but three things stand out:
        switching timens (which got reverted before) looks solid now,
        FOLL_FORCE has been removed (no failures seen yet across several weeks
        in -next), and some whitespace cleanups (which are long overdue).
      
         - Add timens support (when switching mm). This version has survived
           in -next for the entire cycle (Andrei Vagin)
      
         - Various small bug fixes, refactoring, and readability improvements
           (Bernd Edlinger, Rolf Eike Beer, Bo Liu, Li Zetao Liu Shixin)
      
         - Remove FOLL_FORCE for stack setup (Kees Cook)
      
         - Whitespace cleanups (Rolf Eike Beer, Kees Cook)"
      
      * tag 'execve-v6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        binfmt_misc: fix shift-out-of-bounds in check_special_flags
        binfmt: Fix error return code in load_elf_fdpic_binary()
        exec: Remove FOLL_FORCE for stack setup
        binfmt_elf: replace IS_ERR() with IS_ERR_VALUE()
        binfmt_elf: simplify error handling in load_elf_phdrs()
        binfmt_elf: fix documented return value for load_elf_phdrs()
        exec: simplify initial stack size expansion
        binfmt: Fix whitespace issues
        exec: Add comments on check_unsafe_exec() fs counting
        ELF uapi: add spaces before '{'
        selftests/timens: add a test for vfork+exit
        fs/exec: switch timens when a task gets a new mm
      7fc03505
    • Linus Torvalds's avatar
      Merge tag 'seccomp-v6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 667161ba
      Linus Torvalds authored
      Pull seccomp updates from Kees Cook:
      
       - Add missing kerndoc parameter (Randy Dunlap)
      
       - Improve seccomp selftest to check CAP_SYS_ADMIN (Gautam Menghani)
      
       - Fix allocation leak when cloned thread immediately dies (Kuniyuki
         Iwashima)
      
      * tag 'seccomp-v6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        seccomp: document the "filter_count" field
        seccomp: Move copy_seccomp() to no failure path.
        selftests/seccomp: Check CAP_SYS_ADMIN capability in the test mode_filter_without_nnp
      667161ba
    • Linus Torvalds's avatar
      Merge tag 'pstore-v6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 059c4a34
      Linus Torvalds authored
      Pull pstore updates from Kees Cook:
       "A small collection of bug fixes, refactorings, and general
        improvements:
      
         - Reporting improvements and return path fixes (Guilherme G. Piccoli,
           Wang Yufen, Kees Cook)
      
         - Clean up kmsg_bytes module parameter usage (Guilherme G. Piccoli)
      
         - Add Guilherme to pstore MAINTAINERS entry
      
         - Choose friendlier allocation flags (Qiujun Huang, Stephen Boyd)"
      
      * tag 'pstore-v6.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        pstore: Avoid kcore oops by vmap()ing with VM_IOREMAP
        pstore/ram: Fix error return code in ramoops_probe()
        pstore: Alert on backend write error
        MAINTAINERS: Update pstore maintainers
        pstore/ram: Set freed addresses to NULL
        pstore/ram: Move internal definitions out of kernel-wide include
        pstore/ram: Move pmsg init earlier
        pstore/ram: Consolidate kfree() paths
        efi: pstore: Follow convention for the efi-pstore backend name
        pstore: Inform unregistered backend names as well
        pstore: Expose kmsg_bytes as a module parameter
        pstore: Improve error reporting in case of backend overlap
        pstore/zone: Use GFP_ATOMIC to allocate zone buffer
      059c4a34
    • Linus Torvalds's avatar
      Merge tag 'unsigned-char-6.2-for-linus' of... · 3a28c2c8
      Linus Torvalds authored
      Merge tag 'unsigned-char-6.2-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/zx2c4/linux
      
      Pull unsigned-char conversion from Jason Donenfeld:
       "Enable -funsigned-char and fix code affected by that flag.
      
        During the 6.1 cycle, several patches already made it into the tree,
        which were for code that was already broken on at least one
        architecture, where the naked char had a different sign than the code
        author anticipated, or were part of some bug fix for an existing bug
        that this initiative unearthed.
      
        These 6.1-era fixes are:
      
          64806090 ("MIPS: pic32: treat port as signed integer")
          5c26159c ("ipvs: use explicitly signed chars")
          e6cb8769 ("wifi: airo: do not assign -1 to unsigned char")
          937ec9f7 ("staging: rtl8192e: remove bogus ssid character sign test")
          67704738 ("misc: sgi-gru: use explicitly signed char")
          50895a55 ("ALSA: rme9652: use explicitly signed char")
          ee03c0f2 ("ALSA: au88x0: use explicitly signed char")
          835bed1b ("fbdev: sisfb: use explicitly signed char")
          50f19697 ("parisc: Use signed char for hardware path in pdc.h")
          66063033 ("wifi: rt2x00: use explicitly signed or unsigned types")
      
        Regarding patches in this pull:
      
         - There is one patch in this pull that should have made it to you
           during 6.1 ("media: stv0288: use explicitly signed char"), but the
           maintainer was MIA during the cycle, so it's in here instead.
      
         - Two patches fix single architecture code affected by unsigned char
           ("perf/x86: Make struct p4_event_bind::cntr signed array" and
           "sparc: sbus: treat CPU index as integer"), while one patch fixes
           an unused typedef, in case it's ever used in the future ("media:
           atomisp: make hive_int8 explictly signed").
      
         - Finally, there's the change to actually enable -funsigned-char
           ("kbuild: treat char as always unsigned") and then the removal of
           some no longer useful !__CHAR_UNSIGNED__ selftest code ("lib:
           assume char is unsigned").
      
        The various fixes were found with a combination of diffing objdump
        output, a large variety of Coccinelle scripts, and plain old grep. In
        the end, things didn't seem as bad as I feared they would. But of
        course, it's also possible I missed things.
      
        However, this has been in linux-next for basically an entire cycle
        now, so I'm not overly worried. I've also been daily driving this on
        my laptop for all of 6.1. Still, this series, and the ones sent for
        6.1 don't total in quantity to what I thought it'd be, so I will be on
        the lookout for breakage.
      
        We could receive a few reports that are quickly fixable. Hopefully we
        won't receive a barrage of reports that would result in a revert. And
        just maybe we won't receive any reports at all and nobody will even
        notice. Knock on wood"
      
      * tag 'unsigned-char-6.2-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/zx2c4/linux:
        lib: assume char is unsigned
        kbuild: treat char as always unsigned
        media: atomisp: make hive_int8 explictly signed
        media: stv0288: use explicitly signed char
        sparc: sbus: treat CPU index as integer
        perf/x86: Make struct p4_event_bind::cntr signed array
      3a28c2c8
    • Linus Torvalds's avatar
      Merge tag 'nolibc.2022.12.02a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · 74dc488b
      Linus Torvalds authored
      Pull nolibc updates from Paul McKenney:
      
       - Further improvements to nolibc testing
      
      * tag 'nolibc.2022.12.02a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
        selftests/nolibc: Always rebuild the sysroot when running a test
        selftests/nolibc: Add 7 tests for memcmp()
      74dc488b
    • Linus Torvalds's avatar
      Merge tag 'kcsan.2022.12.02a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · f433cf21
      Linus Torvalds authored
      Pull KCSAN updates from Paul McKenney:
      
       - Add instrumentation for memcpy(), memset(), and memmove() for Clang
         v16+'s new function names that are used when the -fsanitize=thread
         argument is given
      
       - Fix objtool warnings from KCSAN's volatile instrumentation, and typos
         in a pair of Kconfig options' help clauses
      
      * tag 'kcsan.2022.12.02a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
        kcsan: Fix trivial typo in Kconfig help comments
        objtool, kcsan: Add volatile read/write instrumentation to whitelist
        kcsan: Instrument memcpy/memset/memmove with newer Clang
      f433cf21
    • Linus Torvalds's avatar
      Merge tag 'lkmm.2022.12.02a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · 5517a2ea
      Linus Torvalds authored
      Pull kernel memory model documentation updates from Paul McKenney:
      
       - Update the LKMM documentation, both in English and in Korean
      
      * tag 'lkmm.2022.12.02a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
        docs/memory-barriers.txt/kokr: Fix confusing name of 'data dependency barrier'
        docs/memory-barriers.txt/kokr: Add memory barrier dma_mb()
        docs/memory-barriers.txt/kokr: introduce io_stop_wc() and add implementation for ARM64
        docs/memory-barriers.txt: Add a missed closing parenthesis
        tools/memory-model: Weaken ctrl dependency definition in explanation.txt
      5517a2ea
    • Rafael J. Wysocki's avatar
      Merge branch 'thermal-intel' · 75b15aa0
      Rafael J. Wysocki authored
      Merge one more Intel thermal control change for 6.2-rc1:
      
       - Remove a pointless die_id chec from the Intel HFI thermal control
         driver (Ricardo Neri).
      
      * thermal-intel:
        thermal: intel: hfi: Remove a pointless die_id check
      75b15aa0
    • Linus Torvalds's avatar
      Merge tag 'rcu.2022.12.02a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · 1fab45ab
      Linus Torvalds authored
      Pull RCU updates from Paul McKenney:
      
       - Documentation updates. This is the second in a series from an ongoing
         review of the RCU documentation.
      
       - Miscellaneous fixes.
      
       - Introduce a default-off Kconfig option that depends on RCU_NOCB_CPU
         that, on CPUs mentioned in the nohz_full or rcu_nocbs boot-argument
         CPU lists, causes call_rcu() to introduce delays.
      
         These delays result in significant power savings on nearly idle
         Android and ChromeOS systems. These savings range from a few percent
         to more than ten percent.
      
         This series also includes several commits that change call_rcu() to a
         new call_rcu_hurry() function that avoids these delays in a few
         cases, for example, where timely wakeups are required. Several of
         these are outside of RCU and thus have acks and reviews from the
         relevant maintainers.
      
       - Create an srcu_read_lock_nmisafe() and an srcu_read_unlock_nmisafe()
         for architectures that support NMIs, but which do not provide
         NMI-safe this_cpu_inc(). These NMI-safe SRCU functions are required
         by the upcoming lockless printk() work by John Ogness et al.
      
       - Changes providing minor but important increases in torture test
         coverage for the new RCU polled-grace-period APIs.
      
       - Changes to torturescript that avoid redundant kernel builds, thus
         providing about a 30% speedup for the torture.sh acceptance test.
      
      * tag 'rcu.2022.12.02a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu: (49 commits)
        net: devinet: Reduce refcount before grace period
        net: Use call_rcu_hurry() for dst_release()
        workqueue: Make queue_rcu_work() use call_rcu_hurry()
        percpu-refcount: Use call_rcu_hurry() for atomic switch
        scsi/scsi_error: Use call_rcu_hurry() instead of call_rcu()
        rcu/rcutorture: Use call_rcu_hurry() where needed
        rcu/rcuscale: Use call_rcu_hurry() for async reader test
        rcu/sync: Use call_rcu_hurry() instead of call_rcu
        rcuscale: Add laziness and kfree tests
        rcu: Shrinker for lazy rcu
        rcu: Refactor code a bit in rcu_nocb_do_flush_bypass()
        rcu: Make call_rcu() lazy to save power
        rcu: Implement lockdep_rcu_enabled for !CONFIG_DEBUG_LOCK_ALLOC
        srcu: Debug NMI safety even on archs that don't require it
        srcu: Explain the reason behind the read side critical section on GP start
        srcu: Warn when NMI-unsafe API is used in NMI
        arch/s390: Add ARCH_HAS_NMI_SAFE_THIS_CPU_OPS Kconfig option
        arch/loongarch: Add ARCH_HAS_NMI_SAFE_THIS_CPU_OPS Kconfig option
        rcu: Fix __this_cpu_read() lockdep warning in rcu_force_quiescent_state()
        rcu-tasks: Make grace-period-age message human-readable
        ...
      1fab45ab
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-devfreq' and 'pm-tools' · ed6a0047
      Rafael J. Wysocki authored
      Merge devfreq updates and cpupower utility updates for 6.2-rc1:
      
       - Add a private governor_data for devfreq governors (Kant Fan).
      
       - Reorganize devfreq code to use device_match_of_node() and
         devm_platform_get_and_ioremap_resource() instead of open coding
         them (ye xingchen, Minghao Chi).
      
       - Make cpupower choose base_cpu to display default cpupower details
         instead of picking CPU 0 (Saket Kumar Bhaskar).
      
       - Add Georgian translation to cpupower documentation (Zurab
         Kargareteli).
      
       - Introduce powercap intel-rapl library, powercap-info command, and
         RAPL monitor into cpupower (Thomas Renninger).
      
      * pm-devfreq:
        PM / devfreq: event: use devm_platform_get_and_ioremap_resource()
        PM / devfreq: event: Use device_match_of_node()
        PM / devfreq: Use device_match_of_node()
        PM/devfreq: governor: Add a private governor_data for governor
      
      * pm-tools:
        cpupower: rapl monitor - shows the used power consumption in uj for each rapl domain
        cpupower: Introduce powercap intel-rapl library and powercap-info command
        cpupower: Add Georgian translation
        tools/cpupower: Choose base_cpu to display default cpupower details
      ed6a0047
    • Rafael J. Wysocki's avatar
      Merge branches 'powercap', 'pm-x86', 'pm-opp' and 'pm-misc' · e0e44513
      Rafael J. Wysocki authored
      Merge power capping code updates, x86-specific power management pdate,
      operating performance points library updates and miscellaneous power
      management updates for 6.2-rc1:
      
       - Fix compiler warnings with make W=1 in the idle_inject power capping
         driver (Srinivas Pandruvada).
      
       - Use kstrtobool() instead of strtobool() in the power capping sysfs
         interface (Christophe JAILLET).
      
       - Add SCMI Powercap based power capping driver (Cristian Marussi).
      
       - Add Emerald Rapids support to the intel-uncore-freq driver (Artem
         Bityutskiy).
      
       - Repair slips in kernel-doc comments in the generic notifier code
         (Lukas Bulwahn).
      
       - Fix several DT issues in the OPP library reorganize code around
         opp-microvolt-<named> DT property (Viresh Kumar).
      
       - Allow any of opp-microvolt, opp-microamp, or opp-microwatt properties
         to be present without the others present (James Calligeros).
      
       - Fix clock-latency-ns property in DT example (Serge Semin).
      
      * powercap:
        powercap: idle_inject: Fix warnings with make W=1
        powercap: Use kstrtobool() instead of strtobool()
        powercap: arm_scmi: Add SCMI Powercap based driver
      
      * pm-x86:
        platform/x86: intel-uncore-freq: add Emerald Rapids support
      
      * pm-opp:
        dt-bindings: opp-v2: Fix clock-latency-ns prop in example
        OPP: decouple dt properties in opp_parse_supplies()
        OPP: Simplify opp_parse_supplies() by restructuring it
        OPP: Parse named opp-microwatt property too
        dt-bindings: opp: Fix named microwatt property
        dt-bindings: opp: Fix usage of current in microwatt property
      
      * pm-misc:
        notifier: repair slips in kernel-doc comments
      e0e44513