1. 21 Mar, 2024 3 commits
  2. 19 Mar, 2024 1 commit
  3. 18 Mar, 2024 3 commits
  4. 14 Mar, 2024 7 commits
  5. 13 Mar, 2024 26 commits
    • Bart Van Assche's avatar
      Revert "block/mq-deadline: use correct way to throttling write requests" · 256aab46
      Bart Van Assche authored
      The code "max(1U, 3 * (1U << shift)  / 4)" comes from the Kyber I/O
      scheduler. The Kyber I/O scheduler maintains one internal queue per hwq
      and hence derives its async_depth from the number of hwq tags. Using
      this approach for the mq-deadline scheduler is wrong since the
      mq-deadline scheduler maintains one internal queue for all hwqs
      combined. Hence this revert.
      
      Cc: stable@vger.kernel.org
      Cc: Damien Le Moal <dlemoal@kernel.org>
      Cc: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
      Cc: Zhiguo Niu <Zhiguo.Niu@unisoc.com>
      Fixes: d47f9717 ("block/mq-deadline: use correct way to throttling write requests")
      Signed-off-by: default avatarBart Van Assche <bvanassche@acm.org>
      Link: https://lore.kernel.org/r/20240313214218.1736147-1-bvanassche@acm.orgSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      256aab46
    • Jens Axboe's avatar
      block: limit block time caching to in_task() context · b874d4aa
      Jens Axboe authored
      We should not have any callers of this from non-task context, but Jakub
      ran [1] into one from blk-iocost. Rather than risk running into others,
      or future ones, just limit blk_time_get_ns() to when it is called from
      a task. Any other usage is invalid.
      
      [1] https://lore.kernel.org/lkml/CAHk-=wiOaBLqarS2uFhM1YdwOvCX4CZaWkeyNDY1zONpbYw2ig@mail.gmail.com/
      
      Fixes: da4c8c3d ("block: cache current nsec time in struct blk_plug")
      Reported-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      b874d4aa
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 259f7d5e
      Linus Torvalds authored
      Pull thermal control updates from Rafael Wysocki:
       "These mostly change the thermal core in a few ways allowing thermal
        drivers to be simplified, in particular in their removal and failing
        probe handling parts that are notoriously prone to errors, and
        propagate the changes to several drivers.
      
        Apart from that, support for a new platform is added (Intel Lunar
        Lake-M), some bugs are fixed and some code is cleaned up, as usual.
      
        Specifics:
      
         - Store zone trips table and zone operations directly in struct
           thermal_zone_device (Rafael Wysocki)
      
         - Fix up flex array initialization during thermal zone device
           registration (Nathan Chancellor)
      
         - Rework writable trip points handling in the thermal core and
           several drivers (Rafael Wysocki)
      
         - Thermal core code cleanups (Dan Carpenter, Flavio Suligoi)
      
         - Use thermal zone accessor functions in the int340x Intel thermal
           driver (Rafael Wysocki)
      
         - Add Lunar Lake-M PCI ID to the int340x Intel thermal driver
           (Srinivas Pandruvada)
      
         - Minor fixes for thermal governors (Rafael Wysocki, Di Shen)
      
         - Trip point handling fixes for the iwlwifi wireless driver (Rafael
           Wysocki)
      
         - Code cleanups (Rafael J. Wysocki, AngeloGioacchino Del Regno)"
      
      * tag 'thermal-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (29 commits)
        thermal: core: remove unnecessary check in trip_point_hyst_store()
        thermal: intel: int340x_thermal: Use thermal zone accessor functions
        thermal: core: Remove excess empty line from a comment
        thermal: int340x: processor_thermal: Add Lunar Lake-M PCI ID
        thermal: core: Eliminate writable trip points masks
        thermal: of: Set THERMAL_TRIP_FLAG_RW_TEMP directly
        thermal: imx: Set THERMAL_TRIP_FLAG_RW_TEMP directly
        wifi: iwlwifi: mvm: Set THERMAL_TRIP_FLAG_RW_TEMP directly
        mlxsw: core_thermal: Set THERMAL_TRIP_FLAG_RW_TEMP directly
        thermal: intel: Set THERMAL_TRIP_FLAG_RW_TEMP directly
        thermal: core: Drop the .set_trip_hyst() thermal zone operation
        thermal: core: Add flags to struct thermal_trip
        thermal: core: Move initial num_trips assignment before memcpy()
        thermal: Get rid of CONFIG_THERMAL_WRITABLE_TRIPS
        thermal: intel: Adjust ops handling during thermal zone registration
        thermal: ACPI: Constify acpi_thermal_zone_ops
        thermal: core: Store zone ops in struct thermal_zone_device
        thermal: intel: Discard trip tables after zone registration
        thermal: ACPI: Discard trips table after zone registration
        thermal: core: Store zone trips table in struct thermal_zone_device
        ...
      259f7d5e
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 94344679
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "These modify the ACPI device events and processor enumeration code to
        take the 'enabled' _STA bit into account as mandated by the ACPI
        specification, convert several platform drivers to using a remove
        callback that returns void, add some new quirks for ACPI IRQ override
        and other things, address assorted issues and clean up code.
      
        Specifics:
      
         - Rearrange Device Check and Bus Check notification handling in the
           ACPI device hotplug code to make it get the "enabled" _STA bit into
           account (Rafael Wysocki)
      
         - Modify acpi_processor_add() to skip processors with the "enabled"
           _STA bit clear, as per the specification (Rafael Wysocki)
      
         - Stop failing Device Check notification handling without a valid
           reason (Rafael Wysocki)
      
         - Defer enumeration of devices that depend on a device with an ACPI
           device ID equalt to INTC10CF to address probe ordering issues on
           some platforms (Wentong Wu)
      
         - Constify acpi_bus_type (Ricardo Marliere)
      
         - Make the ACPI-specific suspend-to-idle code take the Low-Power S0
           Idle MSFT UUID into account on non-AMD systems (Rafael Wysocki)
      
         - Add ACPI IRQ override quirks for some new platforms (Sergey
           Kalinichev, Maxim Kudinov, Alexey Froloff, Sviatoslav Harasymchuk,
           Nicolas Haye)
      
         - Make the NFIT parsing code use acpi_evaluate_dsm_typed() (Andy
           Shevchenko)
      
         - Fix a memory leak in acpi_processor_power_exit() (Armin Wolf)
      
         - Make it possible to quirk the CSI-2 and MIPI DisCo for Imaging
           properties parsing and add a quirk for Dell XPS 9315 (Sakari Ailus)
      
         - Prevent false-positive static checker warnings from triggering by
           intializing some variables in the ACPI thermal code to zero (Colin
           Ian King)
      
         - Add DELL0501 handling to acpi_quirk_skip_serdev_enumeration() and
           make that function generic (Hans de Goede)
      
         - Make the ACPI backlight code handle fetching EDID that is longer
           than 256 bytes (Mario Limonciello)
      
         - Skip initialization of GHES_ASSIST structures for Machine Check
           Architecture in APEI (Avadhut Naik)
      
         - Convert several plaform drivers in the ACPI subsystem to using a
           remove callback that returns void (Uwe Kleine-König)
      
         - Drop the long-deprecated custom_method debugfs interface that is
           problematic from the security standpoint (Rafael Wysocki)
      
         - Use %pe in a couple of places in the ACPI code for easier error
           decoding (Onkarnath)
      
         - Fix register width information handling during system memory
           accesses in the ACPI CPPC library (Jarred White)
      
         - Add AMD CPPC V2 support for family 17h processors to the ACPI CPPC
           library (Perry Yuan)"
      
      * tag 'acpi-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (35 commits)
        ACPI: resource: Use IRQ override on Maibenben X565
        ACPI: CPPC: Use access_width over bit_width for system memory accesses
        ACPI: CPPC: enable AMD CPPC V2 support for family 17h processors
        ACPI: APEI: Skip initialization of GHES_ASSIST structures for Machine Check Architecture
        ACPI: scan: Consolidate Device Check and Bus Check notification handling
        ACPI: scan: Rework Device Check and Bus Check notification handling
        ACPI: scan: Make acpi_processor_add() check the device enabled bit
        ACPI: scan: Relocate acpi_bus_trim_one()
        ACPI: scan: Fix device check notification handling
        ACPI: resource: Add MAIBENBEN X577 to irq1_edge_low_force_override
        ACPI: pfr_update: Convert to platform remove callback returning void
        ACPI: pfr_telemetry: Convert to platform remove callback returning void
        ACPI: fan: Convert to platform remove callback returning void
        ACPI: GED: Convert to platform remove callback returning void
        ACPI: DPTF: Convert to platform remove callback returning void
        ACPI: AGDI: Convert to platform remove callback returning void
        ACPI: TAD: Convert to platform remove callback returning void
        ACPI: APEI: GHES: Convert to platform remove callback returning void
        ACPI: property: Polish ignoring bad data nodes
        ACPI: thermal_lib: Initialize temp_decik to zero
        ...
      94344679
    • Linus Torvalds's avatar
      Merge tag 'pm-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 07abb19a
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "From the functional perspective, the most significant change here is
        the addition of support for Energy Models that can be updated
        dynamically at run time.
      
        There is also the addition of LZ4 compression support for hibernation,
        the new preferred core support in amd-pstate, new platforms support in
        the Intel RAPL driver, new model-specific EPP handling in intel_pstate
        and more.
      
        Apart from that, the cpufreq default transition delay is reduced from
        10 ms to 2 ms (along with some related adjustments), the system
        suspend statistics code undergoes a significant rework and there is a
        usual bunch of fixes and code cleanups all over.
      
        Specifics:
      
         - Allow the Energy Model to be updated dynamically (Lukasz Luba)
      
         - Add support for LZ4 compression algorithm to the hibernation image
           creation and loading code (Nikhil V)
      
         - Fix and clean up system suspend statistics collection (Rafael
           Wysocki)
      
         - Simplify device suspend and resume handling in the power management
           core code (Rafael Wysocki)
      
         - Fix PCI hibernation support description (Yiwei Lin)
      
         - Make hibernation take set_memory_ro() return values into account as
           appropriate (Christophe Leroy)
      
         - Set mem_sleep_current during kernel command line setup to avoid an
           ordering issue with handling it (Maulik Shah)
      
         - Fix wake IRQs handling when pm_runtime_force_suspend() is used as a
           driver's system suspend callback (Qingliang Li)
      
         - Simplify pm_runtime_get_if_active() usage and add a replacement for
           pm_runtime_put_autosuspend() (Sakari Ailus)
      
         - Add a tracepoint for runtime_status changes tracking (Vilas Bhat)
      
         - Fix section title markdown in the runtime PM documentation (Yiwei
           Lin)
      
         - Enable preferred core support in the amd-pstate cpufreq driver
           (Meng Li)
      
         - Fix min_perf assignment in amd_pstate_adjust_perf() and make the
           min/max limit perf values in amd-pstate always stay within the
           (highest perf, lowest perf) range (Tor Vic, Meng Li)
      
         - Allow intel_pstate to assign model-specific values to strings used
           in the EPP sysfs interface and make it do so on Meteor Lake
           (Srinivas Pandruvada)
      
         - Drop long-unused cpudata::prev_cummulative_iowait from the
           intel_pstate cpufreq driver (Jiri Slaby)
      
         - Prevent scaling_cur_freq from exceeding scaling_max_freq when the
           latter is an inefficient frequency (Shivnandan Kumar)
      
         - Change default transition delay in cpufreq to 2ms (Qais Yousef)
      
         - Remove references to 10ms minimum sampling rate from comments in
           the cpufreq code (Pierre Gondois)
      
         - Honour transition_latency over transition_delay_us in cpufreq (Qais
           Yousef)
      
         - Stop unregistering cpufreq cooling on CPU hot-remove (Viresh Kumar)
      
         - General enhancements / cleanups to ARM cpufreq drivers (tianyu2,
           Nícolas F. R. A. Prado, Erick Archer, Arnd Bergmann, Anastasia
           Belova)
      
         - Update cpufreq-dt-platdev to block/approve devices (Richard Acayan)
      
         - Make the SCMI cpufreq driver get a transition delay value from
           firmware (Pierre Gondois)
      
         - Prevent the haltpoll cpuidle governor from shrinking guest
           poll_limit_ns below grow_start (Parshuram Sangle)
      
         - Avoid potential overflow in integer multiplication when computing
           cpuidle state parameters (C Cheng)
      
         - Adjust MWAIT hint target C-state computation in the ACPI cpuidle
           driver and in intel_idle to return a correct value for C0 (He
           Rongguang)
      
         - Address multiple issues in the TPMI RAPL driver and add support for
           new platforms (Lunar Lake-M, Arrow Lake) to Intel RAPL (Zhang Rui)
      
         - Fix freq_qos_add_request() return value check in dtpm_cpu (Daniel
           Lezcano)
      
         - Fix kernel-doc for dtpm_create_hierarchy() (Yang Li)
      
         - Fix file leak in get_pkg_num() in x86_energy_perf_policy (Samasth
           Norway Ananda)
      
         - Fix cpupower-frequency-info.1 man page typo (Jan Kratochvil)
      
         - Fix a couple of warnings in the OPP core code related to W=1 builds
           (Viresh Kumar)
      
         - Move dev_pm_opp_{init|free}_cpufreq_table() to pm_opp.h (Viresh
           Kumar)
      
         - Extend dev_pm_opp_data with turbo support (Sibi Sankar)
      
         - dt-bindings: drop maxItems from inner items (David Heidelberg)"
      
      * tag 'pm-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (95 commits)
        dt-bindings: opp: drop maxItems from inner items
        OPP: debugfs: Fix warning around icc_get_name()
        OPP: debugfs: Fix warning with W=1 builds
        cpufreq: Move dev_pm_opp_{init|free}_cpufreq_table() to pm_opp.h
        OPP: Extend dev_pm_opp_data with turbo support
        Fix cpupower-frequency-info.1 man page typo
        cpufreq: scmi: Set transition_delay_us
        firmware: arm_scmi: Populate fast channel rate_limit
        firmware: arm_scmi: Populate perf commands rate_limit
        cpuidle: ACPI/intel: fix MWAIT hint target C-state computation
        PM: sleep: wakeirq: fix wake irq warning in system suspend
        powercap: dtpm: Fix kernel-doc for dtpm_create_hierarchy() function
        cpufreq: Don't unregister cpufreq cooling on CPU hotplug
        PM: suspend: Set mem_sleep_current during kernel command line setup
        cpufreq: Honour transition_latency over transition_delay_us
        cpufreq: Limit resolving a frequency to policy min/max
        Documentation: PM: Fix runtime_pm.rst markdown syntax
        cpufreq: amd-pstate: adjust min/max limit perf
        cpufreq: Remove references to 10ms min sampling rate
        cpufreq: intel_pstate: Update default EPPs for Meteor Lake
        ...
      07abb19a
    • Linus Torvalds's avatar
      Merge tag 'pmdomain-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm · a070a08d
      Linus Torvalds authored
      Pull pmdomain updates from Ulf Hansson:
       "Core:
         - Log a message when unused PM domains gets disabled
         - Scale down parent/child performance states in the reverse order
      
        Providers:
         - qcom: rpmpd: Add power domains support for MSM8974, MSM8974PRO,
           PMA8084 and PM8841
         - renesas: rcar-gen4-sysc: Reduce atomic delays
         - renesas: rcar-sysc: Adjust the waiting time to cover the worst case
         - renesas: r8a779h0-sysc: Add support for the r8a779h0 PM domains
         - imx: imx8mp-blk-ctrl: Add the fdcc clock to the hdmimix domains
         - imx: imx8mp-blk-ctrl: Error out if domains are missing in DT
      
        Improve support for multiple PM domains:
         - Add two helper functions to attach/detach multiple PM domains
         - Convert a couple of drivers to use the new helper functions"
      
      * tag 'pmdomain-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm: (22 commits)
        pmdomain: renesas: rcar-gen4-sysc: Reduce atomic delays
        pmdomain: renesas: Adjust the waiting time to cover the worst case
        pmdomain: qcom: rpmpd: Add MSM8974PRO+PMA8084 power domains
        pmdomain: qcom: rpmpd: Add MSM8974+PM8841 power domains
        pmdomain: core: constify of_phandle_args in add device and subdomain
        pmdomain: core: constify of_phandle_args in xlate
        media: venus: Convert to dev_pm_domain_attach|detach_list() for vcodec
        remoteproc: qcom_q6v5_adsp: Convert to dev_pm_domain_attach|detach_list()
        remoteproc: imx_rproc: Convert to dev_pm_domain_attach|detach_list()
        remoteproc: imx_dsp_rproc: Convert to dev_pm_domain_attach|detach_list()
        PM: domains: Add helper functions to attach/detach multiple PM domains
        pmdomain: imx8mp-blk-ctrl: imx8mp_blk: Add fdcc clock to hdmimix domain
        pmdomain: mediatek: Use devm_platform_ioremap_resource() in init_scp()
        pmdomain: renesas: r8a779h0-sysc: Add r8a779h0 support
        pmdomain: imx8mp-blk-ctrl: Error out if domains are missing in DT
        pmdomain: ti: Add a null pointer check to the omap_prm_domain_init
        pmdomain: renesas: rcar-gen4-sysc: Remove unneeded includes
        pmdomain: core: Print a message when unused power domains are disabled
        pmdomain: qcom: rpmpd: Keep one RPM handle for all RPMPDs
        pmdomain: core: Scale down parent/child performance states in reverse order
        ...
      a070a08d
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 15223fdb
      Linus Torvalds authored
      Pull hwmon updates from Guenter Roeck:
       "New drivers:
         - Amphenol ChipCap 2
         - ASPEED g6 PWM/Fan tach
         - Astera Labs PT5161L retimer
         - ASUS ROG RYUJIN II 360 AIO cooler
         - LTC4282
         - Microsoft Surface devices
         - MPS MPQ8785 Synchronous Step-Down Converter
         - NZXT Kraken X and Z series AIO CPU coolers
      
        Additional chip support in existing drivers:
         - Ayaneo Air Plus 7320u (oxp-sensors)
         - INA260 (ina2xx)
         - XPS 9315 (dell-smm)
         - MSI customer ID (nct6683)
      
        Devicetree bindings updates:
         - Common schema for hardware monitoring devices
         - Common schema for fans
         - Update chip descriptions to use common schema
         - Document regulator properties in several drivers
         - Explicit bindings for infineon buck converters
      
        Other improvements:
         - Replaced rbtree with maple tree register cache in several drivers
         - Added support for humidity min/max alarm and volatage fault
           attributes to hwmon core
         - Dropped non-functional I2C_CLASS_HWMON support for drivers w/o
           detect()
         - Dropped obsolete and redundant entried from MAINTAINERS
         - Cleaned up axi-fan-control and coretemp drivers
         - Minor fixes and improvements in several other drivers"
      
      * tag 'hwmon-for-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (70 commits)
        hwmon: (dell-smm) Add XPS 9315 to fan control whitelist
        hwmon: (aspeed-g6-pwm-tacho): Support for ASPEED g6 PWM/Fan tach
        dt-bindings: hwmon: Support Aspeed g6 PWM TACH Control
        dt-bindings: hwmon: fan: Add fan binding to schema
        dt-bindings: hwmon: tda38640: Add interrupt & regulator properties
        hwmon: (amc6821) add of_match table
        dt-bindings: hwmon: lm75: use common hwmon schema
        hwmon: (sis5595) drop unused DIV_TO_REG function
        dt-bindings: hwmon: reference common hwmon schema
        dt-bindings: hwmon: lltc,ltc4286: use common hwmon schema
        dt-bindings: hwmon: adi,adm1275: use common hwmon schema
        dt-bindings: hwmon: ti,ina2xx: use common hwmon schema
        dt-bindings: hwmon: add common properties
        hwmon: (pmbus/ir38064) Use PMBUS_REGULATOR_ONE to declare regulator
        hwmon: (pmbus/lm25066) Use PMBUS_REGULATOR_ONE to declare regulator
        hwmon: (pmbus/tda38640) Use PMBUS_REGULATOR_ONE to declare regulator
        regulator: dt-bindings: promote infineon buck converters to their own binding
        dt-bindings: hwmon/pmbus: ti,lm25066: document regulators
        dt-bindings: hwmon: nuvoton,nct6775: Add compatible value for NCT6799
        MAINTAINERS: Drop redundant hwmon entries
        ...
      15223fdb
    • Linus Torvalds's avatar
      Merge tag 'gpio-updates-for-v6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · 69afef4a
      Linus Torvalds authored
      Pull gpio updates from Bartosz Golaszewski:
       "The biggest feature is the locking overhaul. Up until now the
        synchronization in the GPIO subsystem was broken. There was a single
        spinlock "protecting" multiple data structures but doing it wrong (as
        evidenced by several places where it would be released when a sleeping
        function was called and then reacquired without checking the protected
        state).
      
        We tried to use an RW semaphore before but the main issue with GPIO is
        that we have drivers implementing the interfaces in both sleeping and
        non-sleeping ways as well as user-facing interfaces that can be called
        both from process as well as atomic contexts. Both ends converge in
        the same code paths that can use neither spinlocks nor mutexes. The
        only reasonable way out is to use SRCU and go mostly lockless. To that
        end: we add several SRCU structs in relevant places and use them to
        assure consistency between API calls together with atomic reads and
        writes of GPIO descriptor flags where it makes sense.
      
        This code has spent several weeks in next and has received several
        fixes in the first week or two after which it stabilized nicely. The
        GPIO subsystem is now resilient to providers being suddenly unbound.
        We managed to also remove the existing character device RW semaphore
        and the obsolete global spinlock.
      
        Other than the locking rework we have one new driver (for Chromebook
        EC), much appreciated documentation improvements from Kent and the
        regular driver improvements, DT-bindings updates and GPIOLIB core
        tweaks.
      
        Serialization rework:
         - use SRCU to serialize access to the global GPIO device list, to
           GPIO device structs themselves and to GPIO descriptors
         - make the GPIO subsystem resilient to the GPIO providers being
           unbound while the API calls are in progress
         - don't dereference the SRCU-protected chip pointer if the
           information we need can be obtained from the GPIO device structure
         - move some of the information contained in struct gpio_chip to
           struct gpio_device to further reduce the need to dereference the
           former
         - pass the GPIO device struct instead of the GPIO chip to sysfs
           callback to, again, reduce the need for accessing the latter
         - get GPIO descriptors from the GPIO device, not from the chip for
           the same reason
         - allow for mostly lockless operation of the GPIO driver API: assure
           consistency with SRCU and atomic operations
         - remove the global GPIO spinlock
         - remove the character device RW semaphore
      
        Core GPIOLIB:
         - constify pointers in GPIO API where applicable
         - unify the GPIO counting APIs for ACPI and OF
         - provide a macro for iterating over all GPIOs, not only the ones
           that are requested
         - remove leftover typedefs
         - pass the consumer device to GPIO core in
           devm_fwnode_gpiod_get_index() for improved logging
         - constify the GPIO bus type
         - don't warn about removing GPIO chips with descriptors still held by
           users as we can now handle this situation gracefully
         - remove unused logging helpers
         - unexport functions that are only used internally in the GPIO
           subsystem
         - set the device type (assign the relevant struct device_type) for
           GPIO devices
      
        New drivers:
         - add the ChromeOS EC GPIO driver
      
        Driver improvements:
         - allow building gpio-vf610 with COMPILE_TEST as well as disabling it
           in menuconfig (before it was always built for i.MX cofigs)
         - count the number of EICs using the device properties instead of
           hard-coding it in gpio-eic-sprd
         - improve the device naming, extend the debugfs output and add
           lockdep asserts to gpio-sim
      
        DT bindings:
         - document the 'label' property for gpio-pca9570
         - convert aspeed,ast2400-gpio bindings to DT schema
         - disallow unevaluated properties for gpio-mvebu
         - document a new model in renesas,rcar-gpio
      
        Documentation:
         - improve the character device kerneldocs in user-space headers
         - add proper documentation for the character device uAPI (both v1 and v2)
         - move the sysfs and gpio-mockup docs into the "obsolete" section
         - improve naming consistency for GPIO terms
         - clarify the line values description for sysfs
         - minor docs improvements
         - improve the driver API contract for setting GPIO direction
         - mark unsafe APIs as deprecated in kerneldocs and suggest
           replacements
      
        Other:
         - remove an obsolete test from selftests"
      
      * tag 'gpio-updates-for-v6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: (79 commits)
        gpio: sysfs: repair export returning -EPERM on 1st attempt
        selftest: gpio: remove obsolete gpio-mockup test
        gpiolib: Deduplicate cleanup for-loop in gpiochip_add_data_with_key()
        dt-bindings: gpio: aspeed,ast2400-gpio: Convert to DT schema
        gpio: acpi: Make acpi_gpio_count() take firmware node as a parameter
        gpio: of: Make of_gpio_get_count() take firmware node as a parameter
        gpiolib: Pass consumer device through to core in devm_fwnode_gpiod_get_index()
        gpio: sim: use for_each_hwgpio()
        gpio: provide for_each_hwgpio()
        gpio: don't warn about removing GPIO chips with active users anymore
        gpio: sim: delimit the fwnode name with a ":" when generating labels
        gpio: sim: add lockdep asserts
        gpio: Add ChromeOS EC GPIO driver
        gpio: constify of_phandle_args in of_find_gpio_device_by_xlate()
        gpio: fix memory leak in gpiod_request_commit()
        gpio: constify opaque pointer "data" in gpio_device_find()
        gpio: cdev: fix a NULL-pointer dereference with DEBUG enabled
        gpio: uapi: clarify default_values being logical
        gpio: sysfs: fix inverted pointer logic
        gpio: don't let lockdep complain about inherently dangerous RCU usage
        ...
      69afef4a
    • Linus Torvalds's avatar
      Merge tag 'spi-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 6cdebf62
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "This release sees some exciting changes from David Lechner which
        implements some optimisations that have been talked about for a long
        time which allows client drivers to pre-prepare SPI messages for
        repeated or low latency use. This lets us move work out of latency
        sensitive paths and avoid repeating work for frequently performed
        operations. As well as being useful in itself this will also be used
        in future to allow controllers to directly trigger SPI operations (eg,
        from interrupts).
      
        Otherwise this release has mostly been focused on cleanups, plus a
        couple of new devices:
      
         - Support for pre-optimising messages
      
         - A big set of updates from Uwe Kleine-König moving drivers to use
           APIs with more modern terminology for controllers
      
         - Major overhaul of the s3c64xx driver
      
         - Support for Google GS101 and Samsung Exynos850"
      
      * tag 'spi-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (122 commits)
        spi: Introduce SPI_INVALID_CS and is_valid_cs()
        spi: Fix types of the last chip select storage variables
        spi: Consistently use BIT for cs_index_mask
        spi: Exctract spi_dev_check_cs() helper
        spi: Exctract spi_set_all_cs_unused() helper
        spi: s3c64xx: switch exynos850 to new port config data
        spi: s3c64xx: switch gs101 to new port config data
        spi: s3c64xx: deprecate fifo_lvl_mask, rx_lvl_offset and port_id
        spi: s3c64xx: get rid of the OF alias ID dependency
        spi: s3c64xx: introduce s3c64xx_spi_set_port_id()
        spi: s3c64xx: let the SPI core determine the bus number
        spi: s3c64xx: allow FIFO depth to be determined from the compatible
        spi: s3c64xx: retrieve the FIFO depth from the device tree
        spi: s3c64xx: determine the fifo depth only once
        spi: s3c64xx: allow full FIFO masks
        spi: s3c64xx: define a magic value
        spi: dt-bindings: introduce FIFO depth properties
        spi: axi-spi-engine: use struct_size() macro
        spi: axi-spi-engine: use __counted_by() attribute
        spi: axi-spi-engine: remove p from struct spi_engine_message_state
        ...
      6cdebf62
    • Linus Torvalds's avatar
      Merge tag 'regulator-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 21ac5a96
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "This has been a very quiet release, mostly cleanups, API updates and
        simple device additions. I messed up slightly and there are a couple
        of duplicated commits resulting from me leaving things in my inbox
        which didn't seem worth removing by the time I noticed them.
      
         - Conversion of several drivers to GPIO descriptors
      
         - Build out the features of of the MP8859 driver
      
         - Support for Qualcomm PM4125 and PM6150"
      
      * tag 'regulator-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (31 commits)
        regulator: lp8788-buck: fix copy and paste bug in lp8788_dvs_gpio_request()
        regulator: core: make regulator_class constant
        regulator: da9121: Remove unused of_gpio.h
        regulator: userspace-consumer: add module device table
        regulator: dt-bindings: gpio-regulator: Fix "gpios-states" and "states" array bounds
        regulator: mp8859: Implement set_current_limit()
        regulator: mp8859: Report slew rate
        regulator: mp8859: Support status and error readback
        regulator: mp8859: Support active discharge control
        regulator: mp8859: Support mode operations
        regulator: mp8859: Support enable control
        regulator: mp8859: Validate and log device identifier information
        regulator: mp8859: Specify register accessibility and enable caching
        regulator: max8998: Convert to GPIO descriptors
        regulator: max8997: Convert to GPIO descriptors
        regulator: lp8788-buck: Fully convert to GPIO descriptors
        regulator: da9055: Fully convert to GPIO descriptors
        regulator: max8973: Finalize switch to GPIO descriptors
        regulator: dt-bindings: qcom,usb-vbus-regulator: add support for PM4125
        regulator: dt-bindings: qcom,usb-vbus-regulator: add support for PM4125
        ...
      21ac5a96
    • Linus Torvalds's avatar
      Merge tag 'regmap-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · b30f2db0
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "Just two updates this time around, a rework of max_register handling
        which enables us to support devices with only one register better and
        a new test which will be used to validate use of some new SPI
        optimisations which will be coming in during this merge window"
      
      * tag 'regmap-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: kunit: Add a test for ranges in combination with windows
        regmap: rework ->max_register handling
      b30f2db0
    • Linus Torvalds's avatar
      Merge tag 'mmc-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 245b6f32
      Linus Torvalds authored
      Pull MMC updates from Ulf Hansson:
       "MMC core:
         - Drop the use of BLK_BOUNCE_HIGH
         - Fix partition switch for GP3
         - Remove usage of the deprecated ida_simple API
      
        MMC host:
         - cqhci: Update bouncing email-addresses in MAINTAINERS
         - davinci_mmc: Use sg_miter for PIO
         - dw_mmc-hi3798cv200: Convert the DT bindings to YAML
         - dw_mmc-hi3798mv200: Add driver for the new dw_mmc variant
         - fsl-imx-esdhc: A couple of corrections/updates to the DT bindings
         - meson-mx-sdhc: Drop use of the ->card_hw_reset() callback
         - moxart-mmc: Use sg_miter for PIO
         - moxart-mmc: Fix accounting for DMA transfers
         - mvsdio: Use sg_miter for PIO
         - mxcmmc: Use sg_miter for PIO
         - omap: Use sg_miter for PIO
         - renesas,sdhi: Add support for R-Car V4M variant
         - sdhci-esdhc-mcf: Use sg_miter for swapping
         - sdhci-of-dwcmshc: Add support for Sophgo CV1800B and SG2002 variants
         - sh_mmcif: Use sg_miter for PIO
         - tmio: Avoid concurrent runs of mmc_request_done()"
      
      * tag 'mmc-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (44 commits)
        mmc: core: make mmc_host_class constant
        mmc: core: Fix switch on gp3 partition
        mmc: tmio: comment the ERR_PTR usage in this driver
        mmc: mmc_spi: Don't mention DMA direction
        mmc: dw_mmc: Remove unused of_gpio.h
        mmc: dw_mmc: add support for hi3798mv200
        dt-bindings: mmc: hisilicon,hi3798cv200-dw-mshc: add Hi3798MV200 binding
        dt-bindings: mmc: dw-mshc-hi3798cv200: convert to YAML
        mmc: dw_mmc-hi3798cv200: remove MODULE_ALIAS()
        mmc: core: Use a struct device* as in-param to mmc_of_parse_clk_phase()
        mmc: wmt-sdmmc: remove an incorrect release_mem_region() call in the .remove function
        mmc: tmio: avoid concurrent runs of mmc_request_done()
        dt-bindings: mmc: fsl-imx-mmc: Document the required clocks
        mmc: sh_mmcif: Advance sg_miter before reading blocks
        mmc: sh_mmcif: sg_miter must not be atomic
        mmc: sdhci-esdhc-mcf: Flag the sg_miter as atomic
        dt-bindings: mmc: fsl-imx-esdhc: add default and 100mhz state
        mmc: core: constify the struct device_type usage
        mmc: sdhci-of-dwcmshc: Add support for Sophgo CV1800B and SG2002
        dt-bindings: mmc: sdhci-of-dwcmhsc: Add Sophgo CV1800B and SG2002 support
        ...
      245b6f32
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux · aeb15291
      Linus Torvalds authored
      Pull pwm updates from Uwe Kleine-König:
       "This contains the usual amount of driver and device tree changes.
        Additionally there is a big rework of how pwm lowlevel drivers are
        registered to prepare adding character device support.
      
        Thanks to Dharma Balasubiramani, Dong Aisheng, Duje Mihanović, Jerome
        Brunet, Raag Jadav and Rafał Miłecki for their contributions. And
        sorry for those who still need some patience because I didn't manage
        to empty my review queue"
      
      * tag 'pwm/for-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux: (185 commits)
        pwm: imx-tpm: fix probe crash due to access registers without clock
        pwm: meson: generalize 4 inputs clock on meson8 pwm type
        dt-bindings: pwm: amlogic: Add a new binding for meson8 pwm types
        dt-bindings: pwm: amlogic: fix s4 bindings
        pwm: dwc: simplify error handling
        pwm: dwc: Add 16 channel support for Intel Elkhart Lake
        pwm: dwc: drop redundant error check
        staging: greybus: pwm: Make use of devm_pwmchip_alloc() function
        staging: greybus: pwm: Rework how the number of PWM lines is determined
        staging: greybus: pwm: Drop unused gb_connection_set_data()
        staging: greybus: pwm: Rely on pwm framework to pass a valid hwpwm
        staging: greybus: pwm: Make use of pwmchip_parent() accessor
        staging: greybus: pwm: Change prototype of helpers to prepare further changes
        leds: qcom-lpg: Make use of devm_pwmchip_alloc() function
        drm/bridge: ti-sn65dsi86: Make use of devm_pwmchip_alloc() function
        drm/bridge: ti-sn65dsi86: Make use of pwmchip_parent() accessor
        gpio: mvebu: Make use of devm_pwmchip_alloc() function
        pwm: xilinx: Make use of devm_pwmchip_alloc() function
        pwm: xilinx: Prepare removing pwm_chip from driver data
        pwm: vt8500: Make use of devm_pwmchip_alloc() function
        ...
      aeb15291
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-firmware-for-v6.9' of... · aa7d6513
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-firmware-for-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform firmware updates from Tzung-Bi Shih:
      
       - Allow userspace to automatically load coreboot modules by adding
         modaliases and sending uevents
      
       - Make bus_type const
      
      * tag 'tag-chrome-platform-firmware-for-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
        firmware: coreboot: Replace tag with id table in driver struct
        firmware: coreboot: Generate aliases for coreboot modules
        firmware: coreboot: Generate modalias uevent for devices
        firmware: coreboot: make coreboot_bus_type const
      aa7d6513
    • Linus Torvalds's avatar
      Merge tag 'for-6.9/dm-vdo' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm · 61387b8d
      Linus Torvalds authored
      Pull device mapper VDO target from Mike Snitzer:
       "Introduce the DM vdo target which provides block-level deduplication,
        compression, and thin provisioning. Please see:
      
            Documentation/admin-guide/device-mapper/vdo.rst
            Documentation/admin-guide/device-mapper/vdo-design.rst
      
        The DM vdo target handles its concurrency by pinning an IO, and
        subsequent stages of handling that IO, to a particular VDO thread.
        This aspect of VDO is "unique" but its overall implementation is very
        tightly coupled to its mostly lockless threading model. As such, VDO
        is not easily changed to use more traditional finer-grained locking
        and Linux workqueues. Please see the "Zones and Threading" section of
        vdo-design.rst
      
        The DM vdo target has been used in production for many years but has
        seen significant changes over the past ~6 years to prepare it for
        upstream inclusion. The codebase is still large but it is isolated to
        drivers/md/dm-vdo/ and has been made considerably more approachable
        and maintainable.
      
        Matt Sakai has been added to the MAINTAINERS file to reflect that he
        will send VDO changes upstream through the DM subsystem maintainers"
      
      * tag 'for-6.9/dm-vdo' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (142 commits)
        dm vdo: document minimum metadata size requirements
        dm vdo: remove meaningless version number constant
        dm vdo: remove vdo_perform_once
        dm vdo block-map: Remove stray semicolon
        dm vdo string-utils: change from uds_ to vdo_ namespace
        dm vdo logger: change from uds_ to vdo_ namespace
        dm vdo funnel-queue: change from uds_ to vdo_ namespace
        dm vdo indexer: fix use after free
        dm vdo logger: remove log level to string conversion code
        dm vdo: document log_level parameter
        dm vdo: add 'log_level' module parameter
        dm vdo: remove all sysfs interfaces
        dm vdo target: eliminate inappropriate uses of UDS_SUCCESS
        dm vdo indexer: update ASSERT and ASSERT_LOG_ONLY usage
        dm vdo encodings: update some stale comments
        dm vdo permassert: audit all of ASSERT to test for VDO_SUCCESS
        dm-vdo funnel-workqueue: return VDO_SUCCESS from make_simple_work_queue
        dm vdo thread-utils: return VDO_SUCCESS on vdo_create_thread success
        dm vdo int-map: return VDO_SUCCESS on success
        dm vdo: check for VDO_SUCCESS return value from memory-alloc functions
        ...
      61387b8d
    • Linus Torvalds's avatar
      Merge tag 'for-6.9/dm-bh-wq' of... · c0499a08
      Linus Torvalds authored
      Merge tag 'for-6.9/dm-bh-wq' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper BH workqueue conversion from Mike Snitzer:
       "Convert the DM verity and crypt targets from (ab)using tasklets to
        using BH workqueues.
      
        These changes were coordinated with Tejun and are based ontop of DM's
        6.9 changes and Tejun's 6.9 workqueue tree"
      
      * tag 'for-6.9/dm-bh-wq' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm-verity: Convert from tasklet to BH workqueue
        dm-crypt: Convert from tasklet to BH workqueue
      c0499a08
    • Linus Torvalds's avatar
      Merge tag 'for-6.9/dm-changes' of... · d2bac082
      Linus Torvalds authored
      Merge tag 'for-6.9/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - Fix DM core's IO submission (which include dm-io and dm-bufio) such
         that a bio's IO priority is propagated. Work focused on enabling both
         DM crypt and verity targets to retain the appropriate IO priority
      
       - Fix DM raid reshape logic to not allow an empty flush bio to be
         requeued due to false concern about the bio, which doesn't have a
         data payload, accessing beyond the end of the device
      
       - Fix DM core's internal resume so that it properly calls both presume
         and resume methods, which fixes the potential for a postsuspend and
         resume imbalance
      
       - Update DM verity target to set DM_TARGET_SINGLETON flag because it
         doesn't make sense to have a DM table with a mix of targets that
         include dm-verity
      
       - Small cleanups in DM crypt, thin, and integrity targets
      
       - Fix references to dm-devel mailing list to use latest list address
      
      * tag 'for-6.9/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm: call the resume method on internal suspend
        dm raid: fix false positive for requeue needed during reshape
        dm-integrity: set max_integrity_segments in dm_integrity_io_hints
        dm: update relevant MODULE_AUTHOR entries to latest dm-devel mailing list
        dm ioctl: update DM_DRIVER_EMAIL to new dm-devel mailing list
        dm verity: set DM_TARGET_SINGLETON feature flag
        dm crypt: Fix IO priority lost when queuing write bios
        dm verity: Fix IO priority lost when reading FEC and hash
        dm bufio: Support IO priority
        dm io: Support IO priority
        dm crypt: remove redundant state settings after waking up
        dm thin: add braces around conditional code that spans lines
      d2bac082
    • Linus Torvalds's avatar
      Merge tag 'ata-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux · 57aaf913
      Linus Torvalds authored
      Pull ata updates from Niklas Cassel:
      
       - Do not enable LPM for external ports (hotplug-capable ports or eSATA
         ports), as the HBA will not be able to detect hot plug removal events
         when LPM is enabled (me)
      
       - Drop the board type board_ahci_low_power. Now when we make sure that
         we won't enable LPM for external ports, we can always set the LPM
         policy to CONFIG_SATA_MOBILE_LPM_POLICY for internal ports. There is
         thus no longer any need for the board type board_ahci_low_power, so
         it can be removed. (As before, LPM features not supported by the HBA
         and/or the device will not be enabled, regardless of the LPM policy
         Kconfig) (Mario Limonciello)
      
         Note that the default CONFIG_SATA_MOBILE_LPM_POLICY value is still 0
         (which will not try to enable any LPM features), however, most Linux
         distributions override this and set it to 3 (Medium power with DIPM).
         We intend to change the default to 3 in the coming cycles, but we
         will wait a cycle or two.
      
       - Add board type board_ahci_pcs_quirk and make all legacy Intel
         platforms use it. The Intel PCS quirk was being applied to basically
         all Intel platforms, which caused some issues (the device failing to
         come back after a reset), when being applied to newer Intel platforms
         where it shouldn't have been applied.
      
         New platforms can be added using board type board_ahci, which will
         not have the quirk applied (me)
      
       - Rename board_ahci_nosntf to board_ahci_pcs_quirk_no_sntf to more
         clearly highlight that it applies two different quirks (me)
      
       - Modify the ahci_broken_devslp() quirk to be implemented like all the
         other quirks (i.e. define a board type for the quirk) (me)
      
       - Drop unused board_ahci_noncq board type (me)
      
       - Rename board_ahci_nomsi to board_ahci_no_msi to match the other board
         types (me)
      
       - Make pata_parport_bus_type const (Ricardo B. Marliere)
      
       - Remove at91 compact flash device tree binding. (The binding is not
         used by any driver.) (from Hari Prasath Gujulan Elango)
      
       - Convert MediaTek device tree binding to json-schema (Rafał Miłecki)
      
       - At boot, print the number of implemented ports, instead of printing
         the maximum number of ports supported by the HBA silicon (me)
      
      * tag 'ata-6.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux:
        ahci: print the number of implemented ports
        dt-bindings: ata: convert MediaTek controller to the json-schema
        ahci: rename board_ahci_nomsi
        ahci: drop unused board_ahci_noncq
        ahci: clean up ahci_broken_devslp quirk
        ahci: rename board_ahci_nosntf
        ahci: clean up intel_pcs_quirk
        ata: ahci: Drop low power policy board type
        ata: ahci: do not enable LPM on external ports
        ata: ahci: drop hpriv param from ahci_update_initial_lpm_policy()
        ata: ahci: a hotplug capable port is an external port
        ata: ahci: move marking of external port earlier
        dt-bindings: ata: atmel: remove at91 compact flash documentation
        ata: pata_parport: make pata_parport_bus_type const
      57aaf913
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-6.9-2024-03-11' of git://git.infradead.org/users/hch/dma-mapping · 7d62cb2a
      Linus Torvalds authored
      Pull dma-mapping updates from Christoph Hellwig:
      
       - fix leaked pages on dma_set_decrypted() failure (Rick Edgecombe)
      
       - add a new swiotlb debugfs file (ZhangPeng)
      
      * tag 'dma-mapping-6.9-2024-03-11' of git://git.infradead.org/users/hch/dma-mapping:
        dma-direct: Leak pages on dma_set_decrypted() failure
        swiotlb: add debugfs to track swiotlb transient pool usage
      7d62cb2a
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 8c9c2f85
      Linus Torvalds authored
      Pull iommu updates from Joerg Roedel:
       "Core changes:
          - Constification of bus_type pointer
          - Preparations for user-space page-fault delivery
          - Use a named kmem_cache for IOVA magazines
      
        Intel VT-d changes from Lu Baolu:
          - Add RBTree to track iommu probed devices
          - Add Intel IOMMU debugfs document
          - Cleanup and refactoring
      
        ARM-SMMU Updates from Will Deacon:
          - Device-tree binding updates for a bunch of Qualcomm SoCs
          - SMMUv2: Support for Qualcomm X1E80100 MDSS
          - SMMUv3: Significant rework of the driver's STE manipulation and
            domain handling code. This is the initial part of a larger scale
            rework aiming to improve the driver's implementation of the
            IOMMU-API in preparation for hooking up IOMMUFD support.
      
        AMD-Vi Updates:
          - Refactor GCR3 table support for SVA
          - Cleanups
      
        Some smaller cleanups and fixes"
      
      * tag 'iommu-updates-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (88 commits)
        iommu: Fix compilation without CONFIG_IOMMU_INTEL
        iommu/amd: Fix sleeping in atomic context
        iommu/dma: Document min_align_mask assumption
        iommu/vt-d: Remove scalabe mode in domain_context_clear_one()
        iommu/vt-d: Remove scalable mode context entry setup from attach_dev
        iommu/vt-d: Setup scalable mode context entry in probe path
        iommu/vt-d: Fix NULL domain on device release
        iommu: Add static iommu_ops->release_domain
        iommu/vt-d: Improve ITE fault handling if target device isn't present
        iommu/vt-d: Don't issue ATS Invalidation request when device is disconnected
        PCI: Make pci_dev_is_disconnected() helper public for other drivers
        iommu/vt-d: Use device rbtree in iopf reporting path
        iommu/vt-d: Use rbtree to track iommu probed devices
        iommu/vt-d: Merge intel_svm_bind_mm() into its caller
        iommu/vt-d: Remove initialization for dynamically heap-allocated rcu_head
        iommu/vt-d: Remove treatment for revoking PASIDs with pending page faults
        iommu/vt-d: Add the document for Intel IOMMU debugfs
        iommu/vt-d: Use kcalloc() instead of kzalloc()
        iommu/vt-d: Remove INTEL_IOMMU_BROKEN_GFX_WA
        iommu: re-use local fwnode variable in iommu_ops_from_fwnode()
        ...
      8c9c2f85
    • Linus Torvalds's avatar
      Merge tag 'printk-for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux · b0546776
      Linus Torvalds authored
      Pull printk updates from Petr Mladek:
       "Improve the behavior during panic. The issues were found when testing
        the ongoing changes introducing atomic consoles and printk kthreads:
      
         - pr_flush() has to wait for the last reserved record instead of the
           last finalized one. Note that records are finalized in random order
           when generated by more CPUs in parallel.
      
         - Ignore non-finalized records during panic(). Messages printed on
           panic-CPU are always finalized. Messages printed by other CPUs
           might never be finalized when the CPUs get stopped.
      
         - Block new printk() calls on non-panic CPUs completely. Backtraces
           are printed before entering the panic mode. Later messages would
           just mess information printed by the panic CPU.
      
         - Do not take console_lock in console_flush_on_panic() at all. The
           original code did try_lock()/console_unlock(). The unlock part
           might cause a deadlock when panic() happened in a scheduler code.
      
         - Fix conversion of 64-bit sequence number for 32-bit atomic
           operations"
      
      * tag 'printk-for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux:
        dump_stack: Do not get cpu_sync for panic CPU
        panic: Flush kernel log buffer at the end
        printk: Avoid non-panic CPUs writing to ringbuffer
        printk: Disable passing console lock owner completely during panic()
        printk: ringbuffer: Skip non-finalized records in panic
        printk: Wait for all reserved records with pr_flush()
        printk: ringbuffer: Cleanup reader terminology
        printk: Add this_cpu_in_panic()
        printk: For @suppress_panic_printk check for other CPU in panic
        printk: ringbuffer: Clarify special lpos values
        printk: ringbuffer: Do not skip non-finalized records with prb_next_seq()
        printk: Use prb_first_seq() as base for 32bit seq macros
        printk: Adjust mapping for 32bit seq macros
        printk: nbcon: Relocate 32bit seq macros
      b0546776
    • Linus Torvalds's avatar
      mm, slab: remove last vestiges of SLAB_MEM_SPREAD · f88c3fb8
      Linus Torvalds authored
      Yes, yes, I know the slab people were planning on going slow and letting
      every subsystem fight this thing on their own.  But let's just rip off
      the band-aid and get it over and done with.  I don't want to see a
      number of unnecessary pull requests just to get rid of a flag that no
      longer has any meaning.
      
      This was mainly done with a couple of 'sed' scripts and then some manual
      cleanup of the end result.
      
      Link: https://lore.kernel.org/all/CAHk-=wji0u+OOtmAOD-5JV3SXcRJF___k_+8XNKmak0yd5vW1Q@mail.gmail.com/Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f88c3fb8
    • Linus Torvalds's avatar
      Merge tag 'slab-for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab · 0ea680ed
      Linus Torvalds authored
      Pull slab updates from Vlastimil Babka:
      
       - Freelist loading optimization (Chengming Zhou)
      
         When the per-cpu slab is depleted and a new one loaded from the cpu
         partial list, optimize the loading to avoid an irq enable/disable
         cycle. This results in a 3.5% performance improvement on the "perf
         bench sched messaging" test.
      
       - Kernel boot parameters cleanup after SLAB removal (Xiongwei Song)
      
         Due to two different main slab implementations we've had boot
         parameters prefixed either slab_ and slub_ with some later becoming
         an alias as both implementations gained the same functionality (i.e.
         slab_nomerge vs slub_nomerge). In order to eventually get rid of the
         implementation-specific names, the canonical and documented
         parameters are now all prefixed slab_ and the slub_ variants become
         deprecated but still working aliases.
      
       - SLAB_ kmem_cache creation flags cleanup (Vlastimil Babka)
      
         The flags had hardcoded #define values which became tedious and
         error-prone when adding new ones. Assign the values via an enum that
         takes care of providing unique bit numbers. Also deprecate
         SLAB_MEM_SPREAD which was only used by SLAB, so it's a no-op since
         SLAB removal. Assign it an explicit zero value. The removals of the
         flag usage are handled independently in the respective subsystems,
         with a final removal of any leftover usage planned for the next
         release.
      
       - Misc cleanups and fixes (Chengming Zhou, Xiaolei Wang, Zheng Yejian)
      
         Includes removal of unused code or function parameters and a fix of a
         memleak.
      
      * tag 'slab-for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab:
        slab: remove PARTIAL_NODE slab_state
        mm, slab: remove memcg_from_slab_obj()
        mm, slab: remove the corner case of inc_slabs_node()
        mm/slab: Fix a kmemleak in kmem_cache_destroy()
        mm, slab, kasan: replace kasan_never_merge() with SLAB_NO_MERGE
        mm, slab: use an enum to define SLAB_ cache creation flags
        mm, slab: deprecate SLAB_MEM_SPREAD flag
        mm, slab: fix the comment of cpu partial list
        mm, slab: remove unused object_size parameter in kmem_cache_flags()
        mm/slub: remove parameter 'flags' in create_kmalloc_caches()
        mm/slub: remove unused parameter in next_freelist_entry()
        mm/slub: remove full list manipulation for non-debug slab
        mm/slub: directly load freelist from cpu partial slab in the likely case
        mm/slub: make the description of slab_min_objects helpful in doc
        mm/slub: replace slub_$params with slab_$params in slub.rst
        mm/slub: unify all sl[au]b parameters with "slab_$param"
        Documentation: kernel-parameters: remove noaliencache
      0ea680ed
    • Linus Torvalds's avatar
      Merge tag 'lsm-pr-20240312' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm · cc4a875c
      Linus Torvalds authored
      Pull lsm updates from Paul Moore:
      
       - Promote IMA/EVM to a proper LSM
      
         This is the bulk of the diffstat, and the source of all the changes
         in the VFS code. Prior to the start of the LSM stacking work it was
         important that IMA/EVM were separate from the rest of the LSMs,
         complete with their own hooks, infrastructure, etc. as it was the
         only way to enable IMA/EVM at the same time as a LSM.
      
         However, now that the bulk of the LSM infrastructure supports
         multiple simultaneous LSMs, we can simplify things greatly by
         bringing IMA/EVM into the LSM infrastructure as proper LSMs. This is
         something I've wanted to see happen for quite some time and Roberto
         was kind enough to put in the work to make it happen.
      
       - Use the LSM hook default values to simplify the call_int_hook() macro
      
         Previously the call_int_hook() macro required callers to supply a
         default return value, despite a default value being specified when
         the LSM hook was defined.
      
         This simplifies the macro by using the defined default return value
         which makes life easier for callers and should also reduce the number
         of return value bugs in the future (we've had a few pop up recently,
         hence this work).
      
       - Use the KMEM_CACHE() macro instead of kmem_cache_create()
      
         The guidance appears to be to use the KMEM_CACHE() macro when
         possible and there is no reason why we can't use the macro, so let's
         use it.
      
       - Fix a number of comment typos in the LSM hook comment blocks
      
         Not much to say here, we fixed some questionable grammar decisions in
         the LSM hook comment blocks.
      
      * tag 'lsm-pr-20240312' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm: (28 commits)
        cred: Use KMEM_CACHE() instead of kmem_cache_create()
        lsm: use default hook return value in call_int_hook()
        lsm: fix typos in security/security.c comment headers
        integrity: Remove LSM
        ima: Make it independent from 'integrity' LSM
        evm: Make it independent from 'integrity' LSM
        evm: Move to LSM infrastructure
        ima: Move IMA-Appraisal to LSM infrastructure
        ima: Move to LSM infrastructure
        integrity: Move integrity_kernel_module_request() to IMA
        security: Introduce key_post_create_or_update hook
        security: Introduce inode_post_remove_acl hook
        security: Introduce inode_post_set_acl hook
        security: Introduce inode_post_create_tmpfile hook
        security: Introduce path_post_mknod hook
        security: Introduce file_release hook
        security: Introduce file_post_open hook
        security: Introduce inode_post_removexattr hook
        security: Introduce inode_post_setattr hook
        security: Align inode_setattr hook definition with EVM
        ...
      cc4a875c
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20240312' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · ca661c5e
      Linus Torvalds authored
      Pull selinux updates from Paul Moore:
       "Really only a few notable changes:
      
         - Continue the coding style/formatting fixup work
      
           This is the bulk of the diffstat in this pull request, with the
           focus this time around being the security/selinux/ss directory.
      
           We've only got a couple of files left to cleanup and once we're
           done with that we can start enabling some automatic style
           verfication and introduce tooling to help new folks format their
           code correctly.
      
         - Don't restrict xattr copy-up when SELinux policy is not loaded
      
           This helps systems that use overlayfs, or similar filesystems,
           preserve their SELinux labels during early boot when the SELinux
           policy has yet to be loaded.
      
         - Reduce the work we do during inode initialization time
      
           This isn't likely to show up in any benchmark results, but we
           removed an unnecessary SELinux object class lookup/calculation
           during inode initialization.
      
         - Correct the return values in selinux_socket_getpeersec_dgram()
      
           We had some inconsistencies with respect to our return values
           across selinux_socket_getpeersec_dgram() and
           selinux_socket_getpeersec_stream().
      
           This provides a more uniform set of error codes across the two
           functions and should help make it easier for users to identify
           the source of a failure"
      
      * tag 'selinux-pr-20240312' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux: (24 commits)
        selinux: fix style issues in security/selinux/ss/symtab.c
        selinux: fix style issues in security/selinux/ss/symtab.h
        selinux: fix style issues in security/selinux/ss/sidtab.c
        selinux: fix style issues in security/selinux/ss/sidtab.h
        selinux: fix style issues in security/selinux/ss/services.h
        selinux: fix style issues in security/selinux/ss/policydb.c
        selinux: fix style issues in security/selinux/ss/policydb.h
        selinux: fix style issues in security/selinux/ss/mls_types.h
        selinux: fix style issues in security/selinux/ss/mls.c
        selinux: fix style issues in security/selinux/ss/mls.h
        selinux: fix style issues in security/selinux/ss/hashtab.c
        selinux: fix style issues in security/selinux/ss/hashtab.h
        selinux: fix style issues in security/selinux/ss/ebitmap.c
        selinux: fix style issues in security/selinux/ss/ebitmap.h
        selinux: fix style issues in security/selinux/ss/context.h
        selinux: fix style issues in security/selinux/ss/context.h
        selinux: fix style issues in security/selinux/ss/constraint.h
        selinux: fix style issues in security/selinux/ss/conditional.c
        selinux: fix style issues in security/selinux/ss/conditional.h
        selinux: fix style issues in security/selinux/ss/avtab.c
        ...
      ca661c5e
    • Linus Torvalds's avatar
      Merge tag 'net-next-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · 9187210e
      Linus Torvalds authored
      Pull networking updates from Jakub Kicinski:
       "Core & protocols:
      
         - Large effort by Eric to lower rtnl_lock pressure and remove locks:
      
            - Make commonly used parts of rtnetlink (address, route dumps
              etc) lockless, protected by RCU instead of rtnl_lock.
      
            - Add a netns exit callback which already holds rtnl_lock,
              allowing netns exit to take rtnl_lock once in the core instead
              of once for each driver / callback.
      
            - Remove locks / serialization in the socket diag interface.
      
            - Remove 6 calls to synchronize_rcu() while holding rtnl_lock.
      
            - Remove the dev_base_lock, depend on RCU where necessary.
      
         - Support busy polling on a per-epoll context basis. Poll length and
           budget parameters can be set independently of system defaults.
      
         - Introduce struct net_hotdata, to make sure read-mostly global
           config variables fit in as few cache lines as possible.
      
         - Add optional per-nexthop statistics to ease monitoring / debug of
           ECMP imbalance problems.
      
         - Support TCP_NOTSENT_LOWAT in MPTCP.
      
         - Ensure that IPv6 temporary addresses' preferred lifetimes are long
           enough, compared to other configured lifetimes, and at least 2 sec.
      
         - Support forwarding of ICMP Error messages in IPSec, per RFC 4301.
      
         - Add support for the independent control state machine for bonding
           per IEEE 802.1AX-2008 5.4.15 in addition to the existing coupled
           control state machine.
      
         - Add "network ID" to MCTP socket APIs to support hosts with multiple
           disjoint MCTP networks.
      
         - Re-use the mono_delivery_time skbuff bit for packets which user
           space wants to be sent at a specified time. Maintain the timing
           information while traversing veth links, bridge etc.
      
         - Take advantage of MSG_SPLICE_PAGES for RxRPC DATA and ACK packets.
      
         - Simplify many places iterating over netdevs by using an xarray
           instead of a hash table walk (hash table remains in place, for use
           on fastpaths).
      
         - Speed up scanning for expired routes by keeping a dedicated list.
      
         - Speed up "generic" XDP by trying harder to avoid large allocations.
      
         - Support attaching arbitrary metadata to netconsole messages.
      
        Things we sprinkled into general kernel code:
      
         - Enforce VM_IOREMAP flag and range in ioremap_page_range and
           introduce VM_SPARSE kind and vm_area_[un]map_pages (used by
           bpf_arena).
      
         - Rework selftest harness to enable the use of the full range of ksft
           exit code (pass, fail, skip, xfail, xpass).
      
        Netfilter:
      
         - Allow userspace to define a table that is exclusively owned by a
           daemon (via netlink socket aliveness) without auto-removing this
           table when the userspace program exits. Such table gets marked as
           orphaned and a restarting management daemon can re-attach/regain
           ownership.
      
         - Speed up element insertions to nftables' concatenated-ranges set
           type. Compact a few related data structures.
      
        BPF:
      
         - Add BPF token support for delegating a subset of BPF subsystem
           functionality from privileged system-wide daemons such as systemd
           through special mount options for userns-bound BPF fs to a trusted
           & unprivileged application.
      
         - Introduce bpf_arena which is sparse shared memory region between
           BPF program and user space where structures inside the arena can
           have pointers to other areas of the arena, and pointers work
           seamlessly for both user-space programs and BPF programs.
      
         - Introduce may_goto instruction that is a contract between the
           verifier and the program. The verifier allows the program to loop
           assuming it's behaving well, but reserves the right to terminate
           it.
      
         - Extend the BPF verifier to enable static subprog calls in spin lock
           critical sections.
      
         - Support registration of struct_ops types from modules which helps
           projects like fuse-bpf that seeks to implement a new struct_ops
           type.
      
         - Add support for retrieval of cookies for perf/kprobe multi links.
      
         - Support arbitrary TCP SYN cookie generation / validation in the TC
           layer with BPF to allow creating SYN flood handling in BPF
           firewalls.
      
         - Add code generation to inline the bpf_kptr_xchg() helper which
           improves performance when stashing/popping the allocated BPF
           objects.
      
        Wireless:
      
         - Add SPP (signaling and payload protected) AMSDU support.
      
         - Support wider bandwidth OFDMA, as required for EHT operation.
      
        Driver API:
      
         - Major overhaul of the Energy Efficient Ethernet internals to
           support new link modes (2.5GE, 5GE), share more code between
           drivers (especially those using phylib), and encourage more
           uniform behavior. Convert and clean up drivers.
      
         - Define an API for querying per netdev queue statistics from
           drivers.
      
         - IPSec: account in global stats for fully offloaded sessions.
      
         - Create a concept of Ethernet PHY Packages at the Device Tree level,
           to allow parameterizing the existing PHY package code.
      
         - Enable Rx hashing (RSS) on GTP protocol fields.
      
        Misc:
      
         - Improvements and refactoring all over networking selftests.
      
         - Create uniform module aliases for TC classifiers, actions, and
           packet schedulers to simplify creating modprobe policies.
      
         - Address all missing MODULE_DESCRIPTION() warnings in networking.
      
         - Extend the Netlink descriptions in YAML to cover message
           encapsulation or "Netlink polymorphism", where interpretation of
           nested attributes depends on link type, classifier type or some
           other "class type".
      
        Drivers:
      
         - Ethernet high-speed NICs:
            - Add a new driver for Marvell's Octeon PCI Endpoint NIC VF.
            - Intel (100G, ice, idpf):
               - support E825-C devices
            - nVidia/Mellanox:
               - support devices with one port and multiple PCIe links
            - Broadcom (bnxt):
               - support n-tuple filters
               - support configuring the RSS key
            - Wangxun (ngbe/txgbe):
               - implement irq_domain for TXGBE's sub-interrupts
            - Pensando/AMD:
               - support XDP
               - optimize queue submission and wakeup handling (+17% bps)
               - optimize struct layout, saving 28% of memory on queues
      
         - Ethernet NICs embedded and virtual:
            - Google cloud vNIC:
               - refactor driver to perform memory allocations for new queue
                 config before stopping and freeing the old queue memory
            - Synopsys (stmmac):
               - obey queueMaxSDU and implement counters required by 802.1Qbv
            - Renesas (ravb):
               - support packet checksum offload
               - suspend to RAM and runtime PM support
      
         - Ethernet switches:
            - nVidia/Mellanox:
               - support for nexthop group statistics
            - Microchip:
               - ksz8: implement PHY loopback
               - add support for KSZ8567, a 7-port 10/100Mbps switch
      
         - PTP:
            - New driver for RENESAS FemtoClock3 Wireless clock generator.
            - Support OCP PTP cards designed and built by Adva.
      
         - CAN:
            - Support recvmsg() flags for own, local and remote traffic on CAN
              BCM sockets.
            - Support for esd GmbH PCIe/402 CAN device family.
            - m_can:
               - Rx/Tx submission coalescing
               - wake on frame Rx
      
         - WiFi:
            - Intel (iwlwifi):
               - enable signaling and payload protected A-MSDUs
               - support wider-bandwidth OFDMA
               - support for new devices
               - bump FW API to 89 for AX devices; 90 for BZ/SC devices
            - MediaTek (mt76):
               - mt7915: newer ADIE version support
               - mt7925: radio temperature sensor support
            - Qualcomm (ath11k):
               - support 6 GHz station power modes: Low Power Indoor (LPI),
                 Standard Power) SP and Very Low Power (VLP)
               - QCA6390 & WCN6855: support 2 concurrent station interfaces
               - QCA2066 support
            - Qualcomm (ath12k):
               - refactoring in preparation for Multi-Link Operation (MLO)
                 support
               - 1024 Block Ack window size support
               - firmware-2.bin support
               - support having multiple identical PCI devices (firmware needs
                 to have ATH12K_FW_FEATURE_MULTI_QRTR_ID)
               - QCN9274: support split-PHY devices
               - WCN7850: enable Power Save Mode in station mode
               - WCN7850: P2P support
            - RealTek:
               - rtw88: support for more rtw8811cu and rtw8821cu devices
               - rtw89: support SCAN_RANDOM_SN and SET_SCAN_DWELL
               - rtlwifi: speed up USB firmware initialization
               - rtwl8xxxu:
                   - RTL8188F: concurrent interface support
                   - Channel Switch Announcement (CSA) support in AP mode
            - Broadcom (brcmfmac):
               - per-vendor feature support
               - per-vendor SAE password setup
               - DMI nvram filename quirk for ACEPC W5 Pro"
      
      * tag 'net-next-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2255 commits)
        nexthop: Fix splat with CONFIG_DEBUG_PREEMPT=y
        nexthop: Fix out-of-bounds access during attribute validation
        nexthop: Only parse NHA_OP_FLAGS for dump messages that require it
        nexthop: Only parse NHA_OP_FLAGS for get messages that require it
        bpf: move sleepable flag from bpf_prog_aux to bpf_prog
        bpf: hardcode BPF_PROG_PACK_SIZE to 2MB * num_possible_nodes()
        selftests/bpf: Add kprobe multi triggering benchmarks
        ptp: Move from simple ida to xarray
        vxlan: Remove generic .ndo_get_stats64
        vxlan: Do not alloc tstats manually
        devlink: Add comments to use netlink gen tool
        nfp: flower: handle acti_netdevs allocation failure
        net/packet: Add getsockopt support for PACKET_COPY_THRESH
        net/netlink: Add getsockopt support for NETLINK_LISTEN_ALL_NSID
        selftests/bpf: Add bpf_arena_htab test.
        selftests/bpf: Add bpf_arena_list test.
        selftests/bpf: Add unit tests for bpf_arena_alloc/free_pages
        bpf: Add helper macro bpf_addr_space_cast()
        libbpf: Recognize __arena global variables.
        bpftool: Recognize arena map type
        ...
      9187210e