Skip to content
Snippets Groups Projects
  1. Jan 22, 2025
    • Sebastian Reichel's avatar
      clk: divider: Fix divisor masking on 64 bit platforms · 92950ec1
      Sebastian Reichel authored and Sebastian Reichel's avatar Sebastian Reichel committed
      
      The clock framework handles clock rates as "unsigned long", so u32 on
      32-bit architectures and u64 on 64-bit architectures.
      
      The current code casts the dividend to u64 on 32-bit to avoid a
      potential overflow. For example DIV_ROUND_UP(3000000000, 1500000000)
      = (3.0G + 1.5G - 1) / 1.5G = = OVERFLOW / 1.5G, which has been
      introduced in commit 9556f9da ("clk: divider: handle integer overflow
      when dividing large clock rates").
      
      On 64 bit platforms this masks the divisor, so that only the lower
      32 bit are used. Thus requesting a frequency >= 4.3GHz results
      in incorrect values. For example requesting 4300000000 (4.3 GHz) will
      effectively request ca. 5 MHz. Requesting clk_round_rate(clk, ULONG_MAX)
      is a bit of a special case, since that still returns correct values as
      long as the parent clock is below 8.5 GHz.
      
      Fix this by switching to DIV_ROUND_UP_NO_OVERFLOW, which cannot
      overflow. This avoids any requirements on the arguments (except
      that divisor should not be 0 obviously).
      
      Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
      92950ec1
    • Sebastian Reichel's avatar
      math.h: add DIV_ROUND_UP_NO_OVERFLOW · e94696eb
      Sebastian Reichel authored and Sebastian Reichel's avatar Sebastian Reichel committed
      
      Add a new DIV_ROUND_UP helper, which cannot overflow when
      big numbers are being used.
      
      Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
      e94696eb
    • Sebastian Reichel's avatar
      arm64: dts: rockchip: rk3588-rock5b: add USB-C support · 00c1de4d
      Sebastian Reichel authored and Sebastian Reichel's avatar Sebastian Reichel committed
      
      Add hardware description for the USB-C port in the Radxa Rock 5 Model B.
      This describes the OHCI, EHCI and XHCI USB parts, but not yet the
      DisplayPort AltMode (bindings are not yet upstream).
      
      For now the fusb302 node is marked with status "fail", since the board
      is usually powered through the USB-C port. Handling of errors can result
      in hard resets, which removed the bus power for some time resulting in
      a board reset.
      
      The main problem right now is that devices are supposed to interact with
      the power-supply within 5 seconds after the plug event according to the
      USB PD specification. This is more or less impossible to achieve when
      the kernel is the first software communicating with the power-supply.
      
      Currently the most likely workaround will be USB-PD handling added to
      U-Boot. In that case U-Boot can update the status to "okay". That way
      booting a kernel with the updated DT on an old U-Boot avoids a reset
      loop.
      
      Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
      00c1de4d
    • Christopher Obbard's avatar
      [NOUPSTREAM] Add GitLab CI support · 2cc17a4f
      Christopher Obbard authored and Sebastian Reichel's avatar Sebastian Reichel committed
      
      Add CI support. This will do the following:
      
      1. Run dt_binding_check to make sure no major flaws were introduced in
         the DT bindings
      2. Run dtbs_check, for Rock 5A, Rock 5B and EVB1. If warnings are
         generated the CI will report that as warning
      3. Build a Kernel .deb package
      4. Generate a test job for LAVA and run it
      
      Co-developed-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
      Co-developed-by: default avatarSjoerd Simons <sjoerd@collabora.com>
      Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
      Signed-off-by: default avatarSjoerd Simons <sjoerd@collabora.com>
      Signed-off-by: default avatarChristopher Obbard <chris.obbard@collabora.com>
      2cc17a4f
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.14-1' of https://github.com/cminyard/linux-ipmi · df60eac9
      Linus Torvalds authored
      Pull ipmi updates from Corey Minyard:
      
       - I'm switching to a new email address, so update that
      
       - Minor fixes for formats and return values and missing ifdefs
      
       - A fix for some error handling that causes a loss of messages
      
      * tag 'for-linus-6.14-1' of https://github.com/cminyard/linux-ipmi:
        MAINTAINERS: ipmi: update my email address
        ipmi: ssif_bmc: Fix new request loss when bmc ready for a response
        ipmi: make ipmi_destroy_user() return void
        char:ipmi: Fix a not-used variable on a non-ACPI system
        char:ipmi: Fix the wrong format specifier
        ipmi: ipmb: Add check devm_kasprintf() returned value
      df60eac9
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 641b0c64
      Linus Torvalds authored
      Pull clk updates from Stephen Boyd:
       "A pretty quiet cycle this time around. We have a bunch of new Qualcomm
        clk drivers, per usual, and then a handful of drivers for other SoCs.
        Then the usual pile of cleanups is fairly small data fixes or
        converting DT bindings to YAML so they can be validated.
      
        No changes to the core framework besides an OF node refcount bump that
        never got decremented.
      
        New Drivers:
      
         - 5L35023 variant of Versa 3 clock generator
      
         - Various Qualcomm clk controllers: IPQ CMN PLL, SM6115 LPASS, SM750
           global, tcsr, rpmh, and display. X Plus GPU and global. QCS615 rpmh
           and MSM8937 and MSM8940 RPM.
      
         - Qualcomm Pongo and Taycan Alpha PLLs
      
         - Qualcomm IPQ5424 NoC-related interconnect clks
      
         - Renesas RZ/G3E (R9A09G047) SoC clk driver
      
         - SAMA7D65 SoC clk driver
      
         - Samsung Exynos990 SoC clk driver"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (159 commits)
        clk: analogbits: Fix incorrect calculation of vco rate delta
        clk: bcm: rpi: Add disp clock
        clk: bcm: rpi: Create helper to retrieve private data
        clk: bcm: rpi: Enable minimize for all firmware clocks
        clk: bcm: rpi: Allow cpufreq driver to also adjust gpu clocks
        clk: bcm: rpi: Add ISP to exported clocks
        clk: stm32f4: support spread spectrum clock generation
        clk: stm32f4: use FIELD helpers to access the PLLCFGR fields
        dt-bindings: clock: st,stm32-rcc: support spread spectrum clocking
        dt-bindings: clock: convert stm32 rcc bindings to json-schema
        clk: Use str_enable_disable-like helpers
        clk: clk-loongson2: Fix the number count of clk provider
        clk: clk-loongson2: Switch to use devm_clk_hw_register_fixed_rate_parent_data()
        clk: starfive: Make _clk_get become a common helper function
        clk: en7523: Add clock for eMMC for EN7581
        dt-bindings: clock: add ID for eMMC for EN7581
        dt-bindings: clock: drop NUM_CLOCKS define for EN7581
        clk: en7523: Rework clock handling for different clock numbers
        clk: thead: Fix cpu2vp_clk for TH1520 AP_SUBSYS clocks
        clk: thead: Add CLK_IGNORE_UNUSED to fix TH1520 boot
        ...
      641b0c64
    • Linus Torvalds's avatar
      Merge tag 'i2c-for-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · abdebb28
      Linus Torvalds authored
      Pull i2c updates from Wolfram Sang:
       "Core:
      
         - list-based mechanisms for handling auto-detected and userspace
           created clients are replaced with a flag-based approach. The
           resulting code is much simpler as well as the locking.
      
         - i2c clients now get a default debugfs dir managed by the I2C core.
           Drivers don't have to maintain their own directory anymore.
      
        Driver updates:
      
         - xiic: atomic_transfer support
      
         - imx-lpi2c: DMA and target mode support
      
         - riic cleanups
      
         - npcm: better timeout handling and more precise frequency setups
      
         - davinci: remove unused platform_data
      
         - at24: add new compatibles for variants from Giantec and Puya
           Semiconductor (together with a new vendor prefix)"
      
      * tag 'i2c-for-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (52 commits)
        i2c: add kdoc for the new debugfs entry of clients
        i2c: designware: Actually make use of the I2C_DW_COMMON and I2C_DW symbol namespaces
        i2c: add core-managed per-client directory in debugfs
        i2c: Force ELAN06FA touchpad I2C bus freq to 100KHz
        i2c: riic: Add `riic_bus_barrier()` to check bus availability
        i2c: riic: Use predefined macro and simplify clock tick calculation
        i2c: riic: Mark riic_irqs array as const
        i2c: riic: Make use of devres helper to request deasserted reset line
        i2c: riic: Use GENMASK() macro for bitmask definitions
        i2c: riic: Use BIT macro consistently
        i2c: riic: Use local `dev` pointer in `dev_err_probe()`
        i2c: riic: Use dev_err_probe in probe and riic_init_hw functions
        i2c: riic: Introduce a separate variable for IRQ
        i2c: amd756: Remove superfluous TODO
        Revert "i2c: amd756: Fix endianness handling for word data"
        i2c: i801: Add lis3lv02d for Dell Precision M6800
        i2c: i801: Remove unnecessary PCI function call
        i2c: core: Allocate temp client on the stack in i2c_detect
        i2c: slave-eeprom: Constify 'struct bin_attribute'
        i2c: imx-lpi2c: make controller available until the system enters suspend_noirq() and from resume_noirq().
        ...
      abdebb28
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux · d12f68b5
      Linus Torvalds authored
      Pull pwm updates from Uwe Kleine-König:
       "This time there are very little changes for pwm. There is nothing new,
        just a few maintenance cleanups.
      
        The contributors this time around were Krzysztof Kozlowski, Mingwei
        Zheng, Philipp Stanner, and Stanislav Jakubek. Thanks!"
      
      * tag 'pwm/for-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux:
        pwm: stm32: Add check for clk_enable()
        dt-bindings: pwm: Correct indentation and style in DTS example
        pwm: stm32-lp: Add check for clk_enable()
        dt-bindings: pwm: marvell,berlin-pwm: Convert from txt to yaml
        dt-bindings: pwm: sprd,ums512-pwm: convert to YAML
        pwm: Replace deprecated PCI functions
      d12f68b5
    • Linus Torvalds's avatar
      Merge tag 'mmc-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 2bf717b0
      Linus Torvalds authored
      Pull MMC updates from Ulf Hansson:
       "MMC core:
         - Share a helper to convert from crypto_profile to mmc_host
         - Respect quirk_max_rate for non-UHS SDIO card too
      
        MMC host:
         - Add DT bindings for the mmc-slot
         - Clarify DT bindings for the mmc-controller
         - bcm2835: Add support for system-wide suspend/resume PM
         - dw_mmc-exynos: Add support for the exynos8895 variant
         - meson-mx-sdio: Convert DT bindings to dtschema
         - mtk-sd: Fixup use of two register ranges
         - mtk-sd: Add support for ignoring cmd response CRC
         - sdhci-esdhc-imx: enable 'SDHCI_QUIRK_NO_LED' quirk for S32G
         - sdhci-msm: Correctly set the load for the regulator
         - sdhci-msm: Convert to use custom crypto profile
         - sdhci-of-at91: Add support for the microchip sama7d65 variant"
      
      * tag 'mmc-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (25 commits)
        mmc: sdhci-msm: Correctly set the load for the regulator
        mmc: hi3798mv200: Use syscon_regmap_lookup_by_phandle_args
        mmc: Use of_property_present() for non-boolean properties
        dt-bindings: mmc: samsung,exynos-dw-mshc: add specific compatible for exynos8895
        mmc: sdhci-msm: convert to use custom crypto profile
        mmc: crypto: add mmc_from_crypto_profile()
        mmc: mtk-sd: Limit getting top_base to SoCs that require it
        dt-bindings: mmc: mtk-sd: Document compatibles that need two register ranges
        mmc: sdhci-acpi: Use devm_platform_ioremap_resource()
        mmc: sdhci-acpi: Remove not so useful error message
        dt-bindings: mmc: convert amlogic,meson-mx-sdio.txt to dtschema
        dt-bindings: mmc: document mmc-slot
        dt-bindings: mmc: controller: remove '|' when not needed
        dt-bindings: mmc: controller: move properties common with slot out to mmc-controller-common
        dt-bindings: mmc: controller: clarify the address-cells description
        mmc: bcm2835: add suspend/resume pm support
        dt-bindings: Drop Bhupesh Sharma from maintainers
        mmc: core: don't include 'pm_wakeup.h' directly
        mmc: mtk-sd: Add support for ignoring cmd response CRC
        mmc: core: Introduce the MMC_RSP_R1B_NO_CRC response
        ...
      2bf717b0
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v6.14-rc1' of... · a4910ed2
      Linus Torvalds authored
      Merge tag 'hwmon-for-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon updates from Guenter Roeck:
       "New drivers:
      
         - PMBus client driver for Intel CRPS185 power supply
      
         - PMBus client driver for Texas Instruments TPS25990
      
        Chip support added to existing drivers:
      
         - pmbus/max15301: Add support for MAX15303
      
         - pmbus/adm1275: Add adm1273 support
      
         - lm75: Add NXP P3T1755 support; with it, add I3C support to the
           driver
      
         - asus-ec-sensors: Add TUF GAMING X670E PLUS
      
        Other notable changes:
      
         - nct6683: Add customer IDs for several MSI and ASRock boards
      
         - tmp108: Add regulator support
      
         - Improve write protect support in PMBus core
      
         - pmbus/dps920ab: Add ability to instantiate through i2c
      
         - The hwmon core now accepts NULL as device name parameter to
           [devm_]hwmon_device_register_with_info ans uses the parent device
           name as fallback in that case
      
         - The PMBus core now provides the PMBUs revision in a debugfs file
      
         - asus-ec-sensors: Support for optional CPU fan on AMD 600
           motherboards
      
         - raspberrypi: Add PM suspend/resume support
      
         - dell-smm: Enable manual fan control support on Dell XPS 9370
      
         - pwm-fan: Default to maximum cooling level if provided
      
        And various other minor fixes and improvements"
      
      * tag 'hwmon-for-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (44 commits)
        hwmon: pmbus: dps920ab: Add ability to instantiate through i2c
        hwmon: (pwm-fan) Default to the Maximum cooling level if provided
        hwmon: (asus_atk0110) Use str_enabled_disabled() and str_enable_disable() helpers
        hwmon: Fix help text for aspeed-g6-pwm-tach
        hwmon: (dell-smm) Add Dell XPS 9370 to fan control whitelist
        hwmon: (acpi_power_meter) Fix update the power trip points on failure
        hwmon: (acpi_power_meter) Fix uninitialized variables
        hwmon: (core) Use device name as a fallback in devm_hwmon_device_register_with_info
        hwmon: (pmbus/max15301) Add support for MAX15303
        hwmon: (pmbus/adm1275) add adm1273 support
        dt-bindings: hwmon: adm1275: add adm1273
        hwmon: (nct6683) Add another customer ID for MSI
        hwmon: (pwm-fan): Make use of device properties everywhere
        hwmon: (lm75) add I3C support for P3T1755
        hwmon: (lm75) separate probe into common and I2C parts
        hwmon: (lm75) Remove superfluous 'client' member from private struct
        hwmon: (lm75) simplify regulator handling
        hwmon: (lm75) simplify lm75_write_config()
        hwmon: (lm75) Hide register size differences in regmap access functions
        hwmon: (pmbus/crps) Add Intel CRPS185 power supply
        ...
      a4910ed2
    • Linus Torvalds's avatar
      Merge tag 'leds-next-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds · 11a7b033
      Linus Torvalds authored
      Pull LED updates from Lee Jones:
      
       - Allow struct bin_attribute instances to be placed in read-only memory
         for enhanced protection
      
       - Fix a memory leak in the cht-wcove driver by using
         devm_led_classdev_register()
      
       - Fix an OF node reference leak in the netxbig driver
      
       - Ensure PWM is disabled properly in pwm-multicolor suspend
      
       - Add support for Texas Instruments LP8864, LP8864S, LP8866
         LED-backlight drivers
      
       - Add support for STMicroelectronics's LED1202 12-channel LED driver
      
       - Convert LP8860 bindings to YAML format
      
       - Add bindings for the TI LP8864/LP8866 LED drivers
      
       - Add LED1202 LED controller bindings
      
       - Fix path to color definitions in leds-class-multicolor.yaml
      
       - Add pm660l compatible to qcom,spmi-flash-led bindings
      
       - Extend cznic,turris-omnia-leds binding with interrupts property
      
       - Add documentation for the STMicroelectronics LED1202 driver
      
       - Add entry for AAEON UP board FPGA drivers in MAINTAINERS
      
       - Fix a wrong format specifier in the ledtrig-activity driver
      
       - Fix a bug in the lp8860 driver where only half of the EEPROM was
         written
      
      * tag 'leds-next-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds: (28 commits)
        leds: triggers: Constify 'struct bin_attribute'
        leds: cht-wcove: Use devm_led_classdev_register() to avoid memory leak
        leds: lp8864: Add support for Texas Instruments LP8864, LP8864S, LP8866 LED-backlights
        dt-bindings: leds: Convert LP8860 into YAML format
        leds: Add LED1202 I2C driver
        dt-bindings: leds: Add LED1202 LED Controller
        Documentation:leds: Add leds-st1202.rst
        leds: pwm-multicolor: Disable PWM when going to suspend
        leds: netxbig: Fix an OF node reference leak in netxbig_leds_get_of_pdata()
        turris-omnia-mcu-interface.h: Move macro definitions outside of enums
        MAINTAINERS: Add entry for AAEON UP board FPGA drivers
        leds: Add AAEON UP board LED driver
        leds: trigger: netdev: Check offload ability on interface up
        leds: turris-omnia: Use uppercase first letter in all comments
        leds: turris-omnia: Use dev_err_probe() where appropriate
        leds: turris-omnia: Inform about missing LED gamma correction feature in the MCU driver
        platform: cznic: turris-omnia-mcu: Inform about missing LED panel brightness change interrupt feature
        leds: turris-omnia: Notify sysfs on MCU global LEDs brightness change
        leds: turris-omnia: Document driver private structures
        dt-bindings: leds: cznic,turris-omnia-leds: Allow interrupts property
        ...
      11a7b033
    • Linus Torvalds's avatar
      Merge tag 'mfd-next-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · 909fd2b8
      Linus Torvalds authored
      Pull mfd updates from Lee Jones:
      
       - Fix race in device_node_get_regmap() using more extensive locking
      
       - Remove unused platform driver support for syscon
      
       - Allow syscon nodes to be registered without a "syscon" compatible
         string
      
       - Make `platform_data` pointer const in struct mfd_cell
      
       - Revert support for multiple AXP PMICs to avoid regressions
      
       - Increase SoundWire attach timeout and use gpiod_set_raw() for GPIO
         operation
      
       - Store the result from fault_log() for use by other sub-components
      
       - Fix an invalid regmap-config max_register value
      
       - Add another Gemini Lake ISA bridge PCI device ID
      
       - Use devm_register_power_off_handler() to simplify code
      
       - Add support for QNAP microcontroller units, including LEDs, input,
         and hwmon
      
       - Use MFD_CELL macros and remove unused code
      
       - Add support for AAEON UP board FPGA
      
       - Remove unused includes
      
       - Fix various typos and compatibility issues in multiple bindings
      
       - Add new bindings for rk3562 QoS, LED1202, and qcom,tcsr-ipq5424
      
       - Convert several bindings to YAML schema
      
       - Update sprd,sc2731 bindings to reference sprd,sc2731-efuse bindings
         directly
      
       - Fix rohm,bd71815 bindings by correcting resistor values and typos
      
       - Documentation improvements:
          - Add documentation for LED1202 and qnap-mcu-hwmon
          - Adjust the file entry for the qnap-mcu header in MAINTAINERS
      
      * tag 'mfd-next-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (35 commits)
        MAINTAINERS: Adjust the file entry for the qnap-mcu header
        dt-bindings: mfd: syscon: Fix ti,j784s4-acspcie-proxy-ctrl compatible
        dt-bindings: mfd: syscon: Fix al,alpine-sysfabric-service compatible
        Revert "mfd: axp20x: Allow multiple regulators"
        dt-bindings: mfd: syscon: Add rk3562 QoS register compatible
        mfd: syscon: Allow syscon nodes without a "syscon" compatible
        mfd: syscon: Remove the platform driver support
        mfd: syscon: Fix race in device_node_get_regmap()
        dt-bindings: mfd: atmel: Convert to YAML schema
        dt-bindings: mfd: atmel,at91sam9260: Convert to YAML schema
        dt-bindings: mfd: sprd,sc2731: Reference sprd,sc2731-efuse bindings
        mfd: tps65219: Remove unused macros & add regmap.h
        mfd: tps65219: Use MFD_CELL macros
        leds: Add LED1202 I2C driver
        dt-bindings: leds: Add LED1202 LED Controller
        Documentation:leds: Add leds-st1202.rst
        mfd: Add support for AAEON UP board FPGA
        mfd: da9052: Store result from fault_log
        mfd: intel_soc_pmic_chtdc_ti: Fix invalid regmap-config max_register value
        mfd: cs42l43: Use devres for remove as well
        ...
      909fd2b8
    • Linus Torvalds's avatar
      Merge tag 'spi-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 38f5265e
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "This is a fairly quiet release for the most part, though we do have
        one really nice improvement in the spi-mem framework which will
        improve performance for flash devices especially when built on by
        changes in the MTD subsystem which are also due to be sent this merge
        window.
      
        There's also been some substantial work on some of the drivers,
        highlights include:
      
         - Support for per-operation bus frequency in the spi-mem framework,
           meaning speeds are no longer limited by the slowest operation
      
         - ACPI support and improved power management for Rockchip SFC
           controllers
      
         - Support for Atmel SAM7G5 QuadSPI and KEBA SPI controllers"
      
      * tag 'spi-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (49 commits)
        spi: pxa2xx: Introduce __lpss_ssp_update_priv() helper
        spi: ti-qspi: Use syscon_regmap_lookup_by_phandle_args
        spi: amd: Fix -Wuninitialized in amd_spi_exec_mem_op()
        spi: spi-mem: Estimate the time taken by operations
        spi: spi-mem: Create macros for DTR operation
        spi: spi-mem: Reorder spi-mem macro assignments
        spi: zynqmp-gqspi: Support per spi-mem operation frequency switches
        spi: zynq-qspi: Support per spi-mem operation frequency switches
        spi: spi-ti-qspi: Support per spi-mem operation frequency switches
        spi: spi-sn-f-ospi: Support per spi-mem operation frequency switches
        spi: rockchip-sfc: Support per spi-mem operation frequency switches
        spi: nxp-fspi: Support per spi-mem operation frequency switches
        spi: mxic: Support per spi-mem operation frequency switches
        spi: mt65xx: Support per spi-mem operation frequency switches
        spi: microchip-core-qspi: Support per spi-mem operation frequency switches
        spi: fsl-qspi: Support per spi-mem operation frequency switches
        spi: dw: Support per spi-mem operation frequency switches
        spi: cadence-qspi: Support per spi-mem operation frequency switches
        spi: amlogic-spifc-a1: Support per spi-mem operation frequency switches
        spi: amd: Drop redundant check
        ...
      38f5265e
    • Linus Torvalds's avatar
      Merge tag 'regulator-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 7b081a74
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "This was a very quiet release, aside from some smaller improvements we
        have:
      
         - Support for power budgeting on regulators, initially targeted at
           some still in review support for PSE controllers but generally
           useful
      
         - Support for error interrupts from ROHM BD96801 devices
      
         - Support for NXP PCA9452"
      
      * tag 'regulator-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: dt-bindings: Add regulator-power-budget-milliwatt property
        regulator: Add support for power budget
        regulator: core: Resolve supply using of_node from regulator_config
        regulator: of: Implement the unwind path of of_regulator_match()
        regulator: tps65219: Remove debugging helper function
        regulator: tps65219: Remove MODULE_ALIAS
        regulator: tps65219: Update driver name
        regulator: tps65219: Use dev_err_probe() instead of dev_err()
        regulator: dt-bindings: mt6315: Drop regulator-compatible property
        regulator: pca9450: Add PMIC pca9452 support
        regulator: dt-bindings: pca9450: Add pca9452 support
        regulator: pca9450: Use dev_err_probe() to simplify code
        regulator: pca9450: add enable_value for all bucks
        regulator: bd96801: Add ERRB IRQ
      7b081a74
    • Linus Torvalds's avatar
      Merge tag 'regmap-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 6f10810c
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "There's one big bit of work this time around, the addition of support
        for a greater range of MBQ access sizes to SoundWire devices together
        with support for deferred read/write.
      
        The MBQ register maps generally have variable register sizes, the
        variable regiseter size support allows them to be handled much more
        naturally within regmap with less open coding in drivers.
      
        The deferred read/write support avoids spurious errors when devices
        make use of a bus feature allowing them to indicate they're busy.
        These changes pull in a supporting SoundWire change, and there's an
        ASoC change building off the new code.
      
        The remainder of the changes are code cleanups"
      
      * tag 'regmap-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: sdw-mbq: Add support for SDCA deferred controls
        regmap: sdw-mbq: Add support for further MBQ register sizes
        ASoC: SDCA: Update list of entity_0 controls
        soundwire: SDCA: Add additional SDCA address macros
        regmap: regmap_multi_reg_read(): make register list const
        regmap: cache: rbtree: use krealloc_array() to replace krealloc()
        regmap: cache: mapple: use kmalloc_array() to replace kmalloc()
        regmap: place foo / 8 and foo % 8 closer to each other
        regmap: Use BITS_TO_BYTES()
        regmap: cache: Use BITS_TO_BYTES()
      6f10810c
    • Linus Torvalds's avatar
      Merge tag 'pwrseq-updates-for-v6.14-rc1' of... · 0c934315
      Linus Torvalds authored
      Merge tag 'pwrseq-updates-for-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
      
      Pull power sequencing updates from Bartosz Golaszewski:
       "We added support for another Qualcomm WCN model and a FIXME comment
        that explains why we still need to keep a GPIO workaround for now
        despite having merged a set of changes to the PCI code that seemingly
        fixed the underlying problem:
      
         - support a new model in the qcom-wcn pwrseq driver
      
         - explain the need to keep the WLAN_EN GPIO workaround for now with a
           FIXME comment"
      
      * tag 'pwrseq-updates-for-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        power: sequencing: qcom-wcn: explain why we need the WLAN_EN GPIO hack
        power: sequencing: qcom-wcn: add support for the WCN6750 PMU
      0c934315
    • Linus Torvalds's avatar
      Merge tag 'gpio-updates-for-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · 4abae5b6
      Linus Torvalds authored
      Pull gpio updates from Bartosz Golaszewski:
       "Thanks to little activity in December, this is really tiny. Just a few
        updates to drivers and device-tree bindings.
      
        Driver improvements:
         - support a new model in gpio-mpc8xxx
         - refactor gpio-tqmx86 and add support for direction setting
         - allow building gpio-omap with COMPILE_TEST=y
         - use gpiochip_get_data() instead of dev_get_drvdata() in
           gpio-twl6040
         - drop unued field from driver data in gpio-altera
         - use generic request/free callbacks in gpio-regmap for better
           integration with pinctrl
         - use dev_err_probe() where applicable in gpio-pca953x
         - use existing dedicated GPIO defines in gpio-tps65219 instead of
           custom ones
      
        DT bindings:
         - document a new model in fsl,qoriq-gpio
         - explain the chip's latch clock pin and how it works like
           chip-select in fairchild,74hc595
         - enable the gpio-line-names property for gpio-brcmstb"
      
      * tag 'gpio-updates-for-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpio: regmap: Use generic request/free ops
        gpio: altera: Drop .mapped_irq from driver data
        gpio: mpc8xxx: Add MPC8314 support
        dt-bindings: gpio: fsl,qoriq-gpio: Add compatible string fsl,mpc8314-gpio
        dt-bindings: gpio: fairchild,74hc595: Document chip select vs. latch clock
        gpio: tps65219: Use existing kernel gpio macros
        gpio: pca953x: log an error when failing to get the reset GPIO
        dt-bindings: gpio: brcmstb: permit gpio-line-names property
        gpio: tqmx86: add support for changing GPIO directions
        gpio: tqmx86: introduce tqmx86_gpio_clrsetbits() helper
        gpio: tqmx86: use cleanup guards for spinlock
        gpio: tqmx86: consistently refer to IRQs by hwirq numbers
        gpio: tqmx86: add macros for interrupt configuration
        gpio: omap: allow building the module with COMPILE_TEST=y
        gpio: twl4030: use gpiochip_get_data
      4abae5b6
    • Linus Torvalds's avatar
      Merge tag 'net-next-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · 0ad9617c
      Linus Torvalds authored
      Pull networking updates from Paolo Abeni:
       "This is slightly smaller than usual, with the most interesting work
        being still around RTNL scope reduction.
      
        Core:
      
         - More core refactoring to reduce the RTNL lock contention, including
           preparatory work for the per-network namespace RTNL lock, replacing
           RTNL lock with a per device-one to protect NAPI-related net device
           data and moving synchronize_net() calls outside such lock.
      
         - Extend drop reasons usage, adding net scheduler, AF_UNIX, bridge
           and more specific TCP coverage.
      
         - Reduce network namespace tear-down time by removing per-subsystems
           synchronize_net() in tipc and sched.
      
         - Add flow label selector support for fib rules, allowing traffic
           redirection based on such header field.
      
        Netfilter:
      
         - Do not remove netdev basechain when last device is gone, allowing
           netdev basechains without devices.
      
         - Revisit the flowtable teardown strategy, dealing better with fin,
           reset and re-open events.
      
         - Scale-up IP-vs connection dumping by avoiding linear search on each
           restart.
      
        Protocols:
      
         - A significant XDP socket refactor, consolidating and optimizing
           several helpers into the core
      
         - Better scaling of ICMP rate-limiting, by removing false-sharing in
           inet peers handling.
      
         - Introduces netlink notifications for multicast IPv4 and IPv6
           address changes.
      
         - Add ipsec support for IP-TFS/AggFrag encapsulation, allowing
           aggregation and fragmentation of the inner IP.
      
         - Add sysctl to configure TIME-WAIT reuse delay for TCP sockets, to
           avoid local port exhaustion issues when the average connection
           lifetime is very short.
      
         - Support updating keys (re-keying) for connections using kernel TLS
           (for TLS 1.3 only).
      
         - Support ipv4-mapped ipv6 address clients in smc-r v2.
      
         - Add support for jumbo data packet transmission in RxRPC sockets,
           gluing multiple data packets in a single UDP packet.
      
         - Support RxRPC RACK-TLP to manage packet loss and retransmission in
           conjunction with the congestion control algorithm.
      
        Driver API:
      
         - Introduce a unified and structured interface for reporting PHY
           statistics, exposing consistent data across different H/W via
           ethtool.
      
         - Make timestamping selectable, allow the user to select the desired
           hwtstamp provider (PHY or MAC) administratively.
      
         - Add support for configuring a header-data-split threshold (HDS)
           value via ethtool, to deal with partial or buggy H/W
           implementation.
      
         - Consolidate DSA drivers Energy Efficiency Ethernet support.
      
         - Add EEE management to phylink, making use of the phylib
           implementation.
      
         - Add phylib support for in-band capabilities negotiation.
      
         - Simplify how phylib-enabled mac drivers expose the supported
           interfaces.
      
        Tests and tooling:
      
         - Make the YNL tool package-friendly to make it easier to deploy it
           separately from the kernel.
      
         - Increase TCP selftest coverage importing several packetdrill
           test-cases.
      
         - Regenerate the ethtool uapi header from the YNL spec, to ease
           maintenance and future development.
      
         - Add YNL support for decoding the link types used in net self-tests,
           allowing a single build to run both net and drivers/net.
      
        Drivers:
      
         - Ethernet high-speed NICs:
            - nVidia/Mellanox (mlx5):
               - add cross E-Switch QoS support
               - add SW Steering support for ConnectX-8
               - implement support for HW-Managed Flow Steering, improving the
                 rule deletion/insertion rate
               - support for multi-host LAG
            - Intel (ixgbe, ice, igb):
               - ice: add support for devlink health events
               - ixgbe: add initial support for E610 chipset variant
               - igb: add support for AF_XDP zero-copy
            - Meta:
               - add support for basic RSS config
               - allow changing the number of channels
               - add hardware monitoring support
            - Broadcom (bnxt):
               - implement TCP data split and HDS threshold ethtool support,
                 enabling Device Memory TCP.
            - Marvell Octeon:
               - implement egress ipsec offload support for the cn10k family
            - Hisilicon (HIBMC):
               - implement unicast MAC filtering
      
         - Ethernet NICs embedded and virtual:
            - Convert UDP tunnel drivers to NETDEV_PCPU_STAT_DSTATS, avoiding
              contented atomic operations for drop counters
            - Freescale:
               - quicc: phylink conversion
               - enetc: support Tx and Rx checksum offload and improve TSO
                 performances
            - MediaTek:
               - airoha: introduce support for ETS and HTB Qdisc offload
            - Microchip:
               - lan78XX USB: preparation work for phylink conversion
            - Synopsys (stmmac):
               - support DWMAC IP on NXP Automotive SoCs S32G2xx/S32G3xx/S32R45
               - refactor EEE support to leverage the new driver API
               - optimize DMA and cache access to increase raw RX performances
                 by 40%
            - TI:
               - icssg-prueth: add multicast filtering support for VLAN
                 interface
            - netkit:
               - add ability to configure head/tailroom
            - VXLAN:
               - accepts packets with user-defined reserved bit
      
         - Ethernet switches:
            - Microchip:
               - lan969x: add RGMII support
               - lan969x: improve TX and RX performance using the FDMA engine
            - nVidia/Mellanox:
               - move Tx header handling to PCI driver, to ease XDP support
      
         - Ethernet PHYs:
            - Texas Instruments DP83822:
               - add support for GPIO2 clock output
            - Realtek:
               - 8169: add support for RTL8125D rev.b
               - rtl822x: add hwmon support for the temperature sensor
            - Microchip:
               - add support for RDS PTP hardware
               - consolidate periodic output signal generation
      
         - CAN:
            - several DT-bindings to DT schema conversions
            - tcan4x5x:
               - add HW standby support
               - support nWKRQ voltage selection
            - kvaser:
               - allowing Bus Error Reporting runtime configuration
      
         - WiFi:
            - the on-going Multi-Link Operation (MLO) effort continues,
              affecting both the stack and in drivers
            - mac80211/cfg80211:
               - Emergency Preparedness Communication Services (EPCS) station
                 mode support
               - support for adding and removing station links for MLO
               - add support for WiFi 7/EHT mesh over 320 MHz channels
               - report Tx power info for each link
            - RealTek (rtw88):
               - enable USB Rx aggregation and USB 3 to improve performance
               - LED support
            - RealTek (rtw89):
               - refactor power save to support Multi-Link Operations
               - add support for RTL8922AE-VS variant
            - MediaTek (mt76):
               - single wiphy multiband support (preparation for MLO)
               - p2p device support
               - add TP-Link TXE50UH USB adapter support
            - Qualcomm (ath10k):
               - support for the QCA6698AQ IP core
            - Qualcomm (ath12k):
               - enable MLO for QCN9274
      
         - Bluetooth:
            - Allow sysfs to trigger hdev reset, to allow recovering devices
              not responsive from user-space
            - MediaTek: add support for MT7922, MT7925, MT7921e devices
            - Realtek: add support for RTL8851BE devices
            - Qualcomm: add support for WCN785x devices
            - ISO: allow BIG re-sync"
      
      * tag 'net-next-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1386 commits)
        net/rose: prevent integer overflows in rose_setsockopt()
        net: phylink: fix regression when binding a PHY
        net: ethernet: ti: am65-cpsw: streamline TX queue creation and cleanup
        net: ethernet: ti: am65-cpsw: streamline RX queue creation and cleanup
        net: ethernet: ti: am65-cpsw: ensure proper channel cleanup in error path
        ipv6: Convert inet6_rtm_deladdr() to per-netns RTNL.
        ipv6: Convert inet6_rtm_newaddr() to per-netns RTNL.
        ipv6: Move lifetime validation to inet6_rtm_newaddr().
        ipv6: Set cfg.ifa_flags before device lookup in inet6_rtm_newaddr().
        ipv6: Pass dev to inet6_addr_add().
        ipv6: Convert inet6_ioctl() to per-netns RTNL.
        ipv6: Hold rtnl_net_lock() in addrconf_init() and addrconf_cleanup().
        ipv6: Hold rtnl_net_lock() in addrconf_dad_work().
        ipv6: Hold rtnl_net_lock() in addrconf_verify_work().
        ipv6: Convert net.ipv6.conf.${DEV}.XXX sysctl to per-netns RTNL.
        ipv6: Add __in6_dev_get_rtnl_net().
        net: stmmac: Drop redundant skb_mark_for_recycle() for SKB frags
        net: mii: Fix the Speed display when the network cable is not connected
        sysctl net: Remove macro checks for CONFIG_SYSCTL
        eth: bnxt: update header sizing defaults
        ...
      0ad9617c
    • Linus Torvalds's avatar
      cachestat: fix page cache statistics permission checking · 5f537664
      Linus Torvalds authored
      
      When the 'cachestat()' system call was added in commit cf264e13
      ("cachestat: implement cachestat syscall"), it was meant to be a much
      more convenient (and performant) version of mincore() that didn't need
      mapping things into the user virtual address space in order to work.
      
      But it ended up missing the "check for writability or ownership" fix for
      mincore(), done in commit 134fca90 ("mm/mincore.c: make mincore()
      more conservative").
      
      This just adds equivalent logic to 'cachestat()', modified for the file
      context (rather than vma).
      
      Reported-by: default avatarSudheendra Raghav Neela <sneela@tugraz.at>
      Fixes: cf264e13 ("cachestat: implement cachestat syscall")
      Tested-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: default avatarNhat Pham <nphamcs@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5f537664
    • Linus Torvalds's avatar
      Merge tag 'audit-pr-20250121' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit · c4b9570c
      Linus Torvalds authored
      Pull audit update from Paul Moore:
       "A single audit patch that fixes a problem when collecting pathnames
        for audit PATH records that was caused by some faulty pathname
        matching logic"
      
      * tag 'audit-pr-20250121' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
        audit: fix suffixed '/' filename matching
      c4b9570c
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20250121' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · 690ffcd8
      Linus Torvalds authored
      Pull selinux updates from Paul Moore:
      
       - Extended permissions supported in conditional policy
      
         The SELinux extended permissions, aka "xperms", allow security admins
         to target individuals ioctls, and recently netlink messages, with
         their SELinux policy. Adding support for conditional policies allows
         admins to toggle the granular xperms using SELinux booleans, helping
         pave the way for greater use of xperms in general purpose SELinux
         policies. This change bumps the maximum SELinux policy version to 34.
      
       - Fix a SCTP/SELinux error return code inconsistency
      
         Depending on the loaded SELinux policy, specifically it's
         EXTSOCKCLASS support, the bind(2) LSM/SELinux hook could return
         different error codes due to the SELinux code checking the socket's
         SELinux object class (which can vary depending on EXTSOCKCLASS) and
         not the socket's sk_protocol field. We fix this by doing the obvious,
         and looking at the sock->sk_protocol field instead of the object
         class.
      
       - Makefile fixes to properly cleanup av_permissions.h
      
         Add av_permissions.h to "targets" so that it is properly cleaned up
         using the kbuild infrastructure.
      
       - A number of smaller improvements by Christian Göttsche
      
         A variety of straightforward changes to reduce code duplication,
         reduce pointer lookups, migrate void pointers to defined types,
         simplify code, constify function parameters, and correct iterator
         types.
      
      * tag 'selinux-pr-20250121' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        selinux: make more use of str_read() when loading the policy
        selinux: avoid unnecessary indirection in struct level_datum
        selinux: use known type instead of void pointer
        selinux: rename comparison functions for clarity
        selinux: rework match_ipv6_addrmask()
        selinux: constify and reconcile function parameter names
        selinux: avoid using types indicating user space interaction
        selinux: supply missing field initializers
        selinux: add netlink nlmsg_type audit message
        selinux: add support for xperms in conditional policies
        selinux: Fix SCTP error inconsistency in selinux_socket_bind()
        selinux: use native iterator types
        selinux: add generated av_permissions.h to targets
      690ffcd8
    • Linus Torvalds's avatar
      Merge tag 'lsm-pr-20250121' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm · f96a9741
      Linus Torvalds authored
      Pull lsm updates from Paul Moore:
      
       - Improved handling of LSM "secctx" strings through lsm_context struct
      
         The LSM secctx string interface is from an older time when only one
         LSM was supported, migrate over to the lsm_context struct to better
         support the different LSMs we now have and make it easier to support
         new LSMs in the future.
      
         These changes explain the Rust, VFS, and networking changes in the
         diffstat.
      
       - Only build lsm_audit.c if CONFIG_SECURITY and CONFIG_AUDIT are
         enabled
      
         Small tweak to be a bit smarter about when we build the LSM's common
         audit helpers.
      
       - Check for absurdly large policies from userspace in SafeSetID
      
         SafeSetID policies rules are fairly small, basically just "UID:UID",
         it easy to impose a limit of KMALLOC_MAX_SIZE on policy writes which
         helps quiet a number of syzbot related issues. While work is being
         done to address the syzbot issues through other mechanisms, this is a
         trivial and relatively safe fix that we can do now.
      
       - Various minor improvements and cleanups
      
         A collection of improvements to the kernel selftests, constification
         of some function parameters, removing redundant assignments, and
         local variable renames to improve readability.
      
      * tag 'lsm-pr-20250121' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/lsm:
        lockdown: initialize local array before use to quiet static analysis
        safesetid: check size of policy writes
        net: corrections for security_secid_to_secctx returns
        lsm: rename variable to avoid shadowing
        lsm: constify function parameters
        security: remove redundant assignment to return variable
        lsm: Only build lsm_audit.c if CONFIG_SECURITY and CONFIG_AUDIT are set
        selftests: refactor the lsm `flags_overset_lsm_set_self_attr` test
        binder: initialize lsm_context structure
        rust: replace lsm context+len with lsm_context
        lsm: secctx provider check on release
        lsm: lsm_context in security_dentry_init_security
        lsm: use lsm_context in security_inode_getsecctx
        lsm: replace context+len with lsm_context
        lsm: ensure the correct LSM context releaser
      f96a9741
    • Linus Torvalds's avatar
      Merge tag 'Smack-for-6.14' of https://github.com/cschaufler/smack-next · 678ca9f7
      Linus Torvalds authored
      Pull smack update from Casey Schaufler:
       "One minor code improvement for v6.14"
      
      * tag 'Smack-for-6.14' of https://github.com/cschaufler/smack-next:
        smack: deduplicate access to string conversion
      678ca9f7
    • Linus Torvalds's avatar
      Merge tag 'integrity-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity · 0ca0cf9f
      Linus Torvalds authored
      Pull integrity updates from Mimi Zohar:
       "There's just a couple of changes: two kernel messages addressed, a
        measurement policy collision addressed, and one policy cleanup.
      
        Please note that the contents of the IMA measurement list is
        potentially affected. The builtin tmpfs IMA policy rule change might
        introduce additional measurements, while detecting a reboot might
        eliminate some measurements"
      
      * tag 'integrity-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity:
        ima: ignore suffixed policy rule comments
        ima: limit the builtin 'tcb' dont_measure tmpfs policy rule
        ima: kexec: silence RCU list traversal warning
        ima: Suspend PCR extends and log appends when rebooting
      0ca0cf9f
    • Linus Torvalds's avatar
      Merge tag 'chrome-platform-firmware-v6.14' of... · 7dd457a2
      Linus Torvalds authored
      Merge tag 'chrome-platform-firmware-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform firmware updates from Tzung-Bi Shih:
      
       - Constify 'struct bin_attribute'.
      
      * tag 'chrome-platform-firmware-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
        firmware: google: vpd: Use const 'struct bin_attribute' callback
        firmware: google: memconsole: Use const 'struct bin_attribute' callback
        firmware: google: gsmi: Constify 'struct bin_attribute'
        firmware: google: cbmem: Constify 'struct bin_attribute'
      7dd457a2
    • Linus Torvalds's avatar
      Merge tag 'chrome-platform-v6.14' of... · b394eabd
      Linus Torvalds authored
      Merge tag 'chrome-platform-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform updates from Tzung-Bi Shih:
       "New:
         - Support new EC if the memory region information comes from the CRS
           ACPI resource descriptor in cros_ec_lpc
      
        Improvements:
         - Make sure EC is in RW before probing
         - Only check events on MKBP notifies to reduce the number of query
           commands in cros_ec_lpc
      
        Cleanups:
         - Remove unused code and DT bindings for cros-kbd-led-backlight
         - Constify 'struct bin_attribute' in cros_ec_vbc
         - Use str_enabled_disabled() in cros_usbpd_logger"
      
      * tag 'chrome-platform-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
        platform/chrome: cros_ec_lpc: Handle EC without CRS section
        platform/chrome: cros_usbpd_logger: Use str_enabled_disabled() helper
        platform/chrome: cros_ec_lpc: Support direct EC register memory access
        platform/chrome: cros_ec_lpc: Merge lpc_driver_ops into ec private structure
        platform/chrome: Update ChromeOS EC command tracing
        platform/chrome: cros_ec_lpc: Only check for events on MKBP notifies
        platform/chrome: cros_ec_vbc: Constify 'struct bin_attribute'
        dt-bindings: cros-ec: Remove google,cros-kbd-led-backlight
        platform/chrome: cros_kbd_led_backlight: Remove OF match
        platform/chrome: cros_ec_proto: remove unnecessary retries
        platform/chrome: cros_ec: jump to RW before probing
        platform/chrome: cros_kbd_led_backlight: remove unneeded if-statement
      b394eabd
    • Linus Torvalds's avatar
      Merge tag 'docs-6.14' of git://git.lwn.net/linux · d0f93ac2
      Linus Torvalds authored
      Pull Documentation updates from Jonathan Corbet:
      
       - Quite a bit of Chinese and Spanish translation work
      
       - Clarifying that Git commit IDs >12chars are OK
      
       - A new nvme-multipath document
      
       - A reorganization of the admin-guide top-level page to make it
         readable
      
       - Clarification of the role of Acked-by and maintainer discretion on
         their acceptance
      
       - Some reorganization of debugging-oriented docs
      
      ... and typo fixes, documentation updates, etc as usual
      
      * tag 'docs-6.14' of git://git.lwn.net/linux: (50 commits)
        Documentation: Fix x86_64 UEFI outdated references to elilo
        Documentation/sysctl: Add timer_migration to kernel.rst
        docs/mm: Physical memory: Remove zone_t
        docs: submitting-patches: clarify that signers may use their discretion on tags
        docs: submitting-patches: clarify difference between Acked-by and Reviewed-by
        docs: submitting-patches: clarify Acked-by and introduce "# Suffix"
        Documentation: bug-hunting.rst: remove odd contact information
        docs/zh_CN: Add sak index Chinese translation
        doc: module: DEFAULT_SYMBOL_NAMESPACE must be defined before #includes
        doc: module: Fix documented type of namespace
        Documentation/kernel-parameters: Fix a reference to vga-softcursor.rst
        docs/zh_CN: Add landlock index Chinese translation
        Documentation: Fix typo localmodonfig -> localmodconfig
        overlayfs.rst: Fix and improve grammar
        docs/zh_CN: Add siphash index Chinese translation
        docs/zh_CN: Add security IMA-templates Chinese translation
        docs/zh_CN: Add security digsig Chinese translation
        Align git commit ID abbreviation guidelines and checks
        docs: process: submitting-patches: split canonical patch format section
        docs/zh_CN: Add security lsm Chinese translation
        ...
      d0f93ac2
    • Linus Torvalds's avatar
      Merge tag 'rust-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux · e3610441
      Linus Torvalds authored
      Pull rust updates from Miguel Ojeda:
       "Toolchain and infrastructure:
      
         - Finish the move to custom FFI integer types started in the previous
           cycle and finally map 'long' to 'isize' and 'char' to 'u8'. Do a
           few cleanups on top thanks to that.
      
         - Start to use 'derive(CoercePointee)' on Rust >= 1.84.0.
      
           This is a major milestone on the path to build the kernel using
           only stable Rust features. In particular, previously we were using
           the unstable features 'coerce_unsized', 'dispatch_from_dyn' and
           'unsize', and now we will use the new 'derive_coerce_pointee' one,
           which is on track to stabilization. This new feature is a macro
           that essentially expands into code that internally uses the
           unstable features that we were using before, without having to
           expose those.
      
           With it, stable Rust users, including the kernel, will be able to
           build custom smart pointers that work with trait objects, e.g.:
      
               fn f(p: &Arc<dyn Display>) {
                   pr_info!("{p}\n");
               }
      
               let a: Arc<dyn Display> = Arc::new(42i32, GFP_KERNEL)?;
               let b: Arc<dyn Display> = Arc::new("hello there", GFP_KERNEL)?;
      
               f(&a); // Prints "42".
               f(&b); // Prints "hello there".
      
           Together with the 'arbitrary_self_types' feature that we started
           using in the previous cycle, using our custom smart pointers like
           'Arc' will eventually only rely in stable Rust.
      
         - Introduce 'PROCMACROLDFLAGS' environment variable to allow to link
           Rust proc macros using different flags than those used for linking
           Rust host programs (e.g. when 'rustc' uses a different C library
           than the host programs' one), which Android needs.
      
         - Help kernel builds under macOS with Rust enabled by accomodating
           other naming conventions for dynamic libraries (i.e. '.so' vs.
           '.dylib') which are used for Rust procedural macros. The actual
           support for macOS (i.e. the rest of the pieces needed) is provided
           out-of-tree by others, following the policy used for other parts of
           the kernel by Kbuild.
      
         - Run Clippy for 'rusttest' code too and clean the bits it spotted.
      
         - Provide Clippy with the minimum supported Rust version to improve
           the suggestions it gives.
      
         - Document 'bindgen' 0.71.0 regression.
      
        'kernel' crate:
      
         - 'build_error!': move users of the hidden function to the documented
           macro, prevent such uses in the future by moving the function
           elsewhere and add the macro to the prelude.
      
         - 'types' module: add improved version of 'ForeignOwnable::borrow_mut'
           (which was removed in the past since it was problematic); change
           'ForeignOwnable' pointer type to '*mut'.
      
         - 'alloc' module: implement 'Display' for 'Box' and align the 'Debug'
           implementation to it; add example (doctest) for 'ArrayLayout::new()'
      
         - 'sync' module: document 'PhantomData' in 'Arc'; use
           'NonNull::new_unchecked' in 'ForeignOwnable for Arc' impl.
      
         - 'uaccess' module: accept 'Vec's with different allocators in
           'UserSliceReader::read_all'.
      
         - 'workqueue' module: enable run-testing a couple more doctests.
      
         - 'error' module: simplify 'from_errno()'.
      
         - 'block' module: fix formatting in code documentation (a lint to catch
           these is being implemented).
      
         - Avoid 'unwrap()'s in doctests, which also improves the examples by
           showing how kernel code is supposed to be written.
      
         - Avoid 'as' casts with 'cast{,_mut}' calls which are a bit safer.
      
        And a few other cleanups"
      
      * tag 'rust-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux: (32 commits)
        kbuild: rust: add PROCMACROLDFLAGS
        rust: uaccess: generalize userSliceReader to support any Vec
        rust: kernel: add improved version of `ForeignOwnable::borrow_mut`
        rust: kernel: reorder `ForeignOwnable` items
        rust: kernel: change `ForeignOwnable` pointer to mut
        rust: arc: split unsafe block, add missing comment
        rust: types: avoid `as` casts
        rust: arc: use `NonNull::new_unchecked`
        rust: use derive(CoercePointee) on rustc >= 1.84.0
        rust: alloc: add doctest for `ArrayLayout::new()`
        rust: init: update `stack_try_pin_init` examples
        rust: error: import `kernel`'s `LayoutError` instead of `core`'s
        rust: str: replace unwraps with question mark operators
        rust: page: remove unnecessary helper function from doctest
        rust: rbtree: remove unwrap in asserts
        rust: init: replace unwraps with question mark operators
        rust: use host dylib naming convention to support macOS
        rust: add `build_error!` to the prelude
        rust: kernel: move `build_error` hidden function to prevent mistakes
        rust: use the `build_error!` macro, not the hidden function
        ...
      e3610441
    • Linus Torvalds's avatar
      Merge tag 'kthread-for-6.14-rc1' of... · 1d6d3992
      Linus Torvalds authored
      Merge tag 'kthread-for-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks
      
      Pull kthread updates from Frederic Weisbecker:
       "Kthreads affinity follow either of 4 existing different patterns:
      
         1) Per-CPU kthreads must stay affine to a single CPU and never
            execute relevant code on any other CPU. This is currently handled
            by smpboot code which takes care of CPU-hotplug operations.
            Affinity here is a correctness constraint.
      
         2) Some kthreads _have_ to be affine to a specific set of CPUs and
            can't run anywhere else. The affinity is set through
            kthread_bind_mask() and the subsystem takes care by itself to
            handle CPU-hotplug operations. Affinity here is assumed to be a
            correctness constraint.
      
         3) Per-node kthreads _prefer_ to be affine to a specific NUMA node.
            This is not a correctness constraint but merely a preference in
            terms of memory locality. kswapd and kcompactd both fall into this
            category. The affinity is set manually like for any other task and
            CPU-hotplug is supposed to be handled by the relevant subsystem so
            that the task is properly reaffined whenever a given CPU from the
            node comes up. Also care should be taken so that the node affinity
            doesn't cross isolated (nohz_full) cpumask boundaries.
      
         4) Similar to the previous point except kthreads have a _preferred_
            affinity different than a node. Both RCU boost kthreads and RCU
            exp kworkers fall into this category as they refer to "RCU nodes"
            from a distinctly distributed tree.
      
        Currently the preferred affinity patterns (3 and 4) have at least 4
        identified users, with more or less success when it comes to handle
        CPU-hotplug operations and CPU isolation. Each of which do it in its
        own ad-hoc way.
      
        This is an infrastructure proposal to handle this with the following
        API changes:
      
         - kthread_create_on_node() automatically affines the created kthread
           to its target node unless it has been set as per-cpu or bound with
           kthread_bind[_mask]() before the first wake-up.
      
         - kthread_affine_preferred() is a new function that can be called
           right after kthread_create_on_node() to specify a preferred
           affinity different than the specified node.
      
        When the preferred affinity can't be applied because the possible
        targets are offline or isolated (nohz_full), the kthread is affine to
        the housekeeping CPUs (which means to all online CPUs most of the time
        or only the non-nohz_full CPUs when nohz_full= is set).
      
        kswapd, kcompactd, RCU boost kthreads and RCU exp kworkers have been
        converted, along with a few old drivers.
      
        Summary of the changes:
      
         - Consolidate a bunch of ad-hoc implementations of
           kthread_run_on_cpu()
      
         - Introduce task_cpu_fallback_mask() that defines the default last
           resort affinity of a task to become nohz_full aware
      
         - Add some correctness check to ensure kthread_bind() is always
           called before the first kthread wake up.
      
         - Default affine kthread to its preferred node.
      
         - Convert kswapd / kcompactd and remove their halfway working ad-hoc
           affinity implementation
      
         - Implement kthreads preferred affinity
      
         - Unify kthread worker and kthread API's style
      
         - Convert RCU kthreads to the new API and remove the ad-hoc affinity
           implementation"
      
      * tag 'kthread-for-6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks:
        kthread: modify kernel-doc function name to match code
        rcu: Use kthread preferred affinity for RCU exp kworkers
        treewide: Introduce kthread_run_worker[_on_cpu]()
        kthread: Unify kthread_create_on_cpu() and kthread_create_worker_on_cpu() automatic format
        rcu: Use kthread preferred affinity for RCU boost
        kthread: Implement preferred affinity
        mm: Create/affine kswapd to its preferred node
        mm: Create/affine kcompactd to its preferred node
        kthread: Default affine kthread to its preferred NUMA node
        kthread: Make sure kthread hasn't started while binding it
        sched,arm64: Handle CPU isolation on last resort fallback rq selection
        arm64: Exclude nohz_full CPUs from 32bits el0 support
        lib: test_objpool: Use kthread_run_on_cpu()
        kallsyms: Use kthread_run_on_cpu()
        soc/qman: test: Use kthread_run_on_cpu()
        arm/bL_switcher: Use kthread_run_on_cpu()
      1d6d3992
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2025-01-17' of https://gitlab.freedesktop.org/drm/kernel · 96c84703
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "There are two external interactions of note, the msm tree pull in some
        opp tree, hopefully the opp tree arrives from the same git tree
        however it normally does.
      
        There is also a new cgroup controller for device memory, that is used
        by drm, so is merging through my tree. This will hopefully help open
        up gpu cgroup usage a bit more and move us forward.
      
        There is a new accelerator driver for the AMD XDNA Ryzen AI NPUs.
      
        Then the usual xe/amdgpu/i915/msm leaders and lots of changes and
        refactors across the board:
      
        core:
         - device memory cgroup controller added
         - Remove driver date from drm_driver
         - Add drm_printer based hex dumper
         - drm memory stats docs update
         - scheduler documentation improvements
      
        new driver:
         - amdxdna - Ryzen AI NPU support
      
        connector:
         - add a mutex to protect ELD
         - make connector setup two-step
      
        panels:
         - Introduce backlight quirks infrastructure
         - New panels: KDB KD116N2130B12, Tianma TM070JDHG34-00,
         - Multi-Inno Technology MI1010Z1T-1CP11
      
        bridge:
         - ti-sn65dsi83: Add ti,lvds-vod-swing optional properties
         - Provide default implementation of atomic_check for HDMI bridges
         - it605: HDCP improvements, MCCS Support
      
        xe:
         - make OA buffer size configurable
         - GuC capture fixes
         - add ufence and g2h flushes
         - restore system memory GGTT mappings
         - ioctl fixes
         - SRIOV PF scheduling priority
         - allow fault injection
         - lots of improvements/refactors
         - Enable GuC's WA_DUAL_QUEUE for newer platforms
         - IRQ related fixes and improvements
      
        i915:
         - More accurate engine busyness metrics with GuC submission
         - Ensure partial BO segment offset never exceeds allowed max
         - Flush GuC CT receive tasklet during reset preparation
         - Some DG2 refactor to fix DG2 bugs when operating with certain CPUs
         - Fix DG1 power gate sequence
         - Enabling uncompressed 128b/132b UHBR SST
         - Handle hdmi connector init failures, and no HDMI/DP cases
         - More robust engine resets on Haswell and older
      
        i915/xe display:
         - HDCP fixes for Xe3Lpd
         - New GSC FW ARL-H/ARL-U
         - support 3 VDSC engines 12 slices
         - MBUS joining sanitisation
         - reconcile i915/xe display power mgmt
         - Xe3Lpd fixes
         - UHBR rates for Thunderbolt
      
        amdgpu:
         - DRM panic support
         - track BO memory stats at runtime
         - Fix max surface handling in DC
         - Cleaner shader support for gfx10.3 dGPUs
         - fix drm buddy trim handling
         - SDMA engine reset updates
         - Fix doorbell ttm cleanup
         - RAS updates
         - ISP updates
         - SDMA queue reset support
         - Rework DPM powergating interfaces
         - Documentation updates and cleanups
         - DCN 3.5 updates
         - Use a pm notifier to more gracefully handle VRAM eviction on
           suspend or hibernate
         - Add debugfs interfaces for forcing scheduling to specific engine
           instances
         - GG 9.5 updates
         - IH 4.4 updates
         - Make missing optional firmware less noisy
         - PSP 13.x updates
         - SMU 13.x updates
         - VCN 5.x updates
         - JPEG 5.x updates
         - GC 12.x updates
         - DC FAMS updates
      
        amdkfd:
         - GG 9.5 updates
         - Logging improvements
         - Shader debugger fixes
         - Trap handler cleanup
         - Cleanup includes
         - Eviction fence wq fix
      
        msm:
         - MDSS:
            - properly described UBWC registers
            - added SM6150 (aka QCS615) support
         - DPU:
            - added SM6150 (aka QCS615) support
            - enabled wide planes if virtual planes are enabled (by using two
              SSPPs for a single plane)
            - added CWB hardware blocks support
         - DSI:
            - added SM6150 (aka QCS615) support
         - GPU:
            - Print GMU core fw version
            - GMU bandwidth voting for a740 and a750
            - Expose uche trap base via uapi
            - UAPI error reporting
      
        rcar-du:
         - Add r8a779h0 Support
      
        ivpu:
         - Fix qemu crash when using passthrough
      
        nouveau:
         - expose GSP-RM logging buffers via debugfs
      
        panfrost:
         - Add MT8188 Mali-G57 MC3 support
      
        rockchip:
         - Gamma LUT support
      
        hisilicon:
         - new HIBMC support
      
        virtio-gpu:
         - convert to helpers
         - add prime support for scanout buffers
      
        v3d:
         - Add DRM_IOCTL_V3D_PERFMON_SET_GLOBAL
      
        vc4:
         - Add support for BCM2712
      
        vkms:
         - line-per-line compositing algorithm to improve performance
      
        zynqmp:
         - Add DP audio support
      
        mediatek:
         - dp: Add sdp path reset
         - dp: Support flexible length of DP calibration data
      
        etnaviv:
         - add fdinfo memory support
         - add explicit reset handling"
      
      * tag 'drm-next-2025-01-17' of https://gitlab.freedesktop.org/drm/kernel: (1070 commits)
        drm/bridge: fix documentation for the hdmi_audio_prepare() callback
        doc/cgroup: Fix title underline length
        drm/doc: Include new drm-compute documentation
        cgroup/dmem: Fix parameters documentation
        cgroup/dmem: Select PAGE_COUNTER
        kernel/cgroup: Remove the unused variable climit
        drm/display: hdmi: Do not read EDID on disconnected connectors
        drm/tests: hdmi: Add connector disablement test
        drm/connector: hdmi: Do atomic check when necessary
        drm/amd/display: 3.2.316
        drm/amd/display: avoid reset DTBCLK at clock init
        drm/amd/display: improve dpia pre-train
        drm/amd/display: Apply DML21 Patches
        drm/amd/display: Use HW lock mgr for PSR1
        drm/amd/display: Revised for Replay Pseudo vblank control
        drm/amd/display: Add a new flag for replay low hz
        drm/amd/display: Remove unused read_ono_state function from Hwss module
        drm/amd/display: Do not elevate mem_type change to full update
        drm/amd/display: Do not wait for PSR disable on vbl enable
        drm/amd/display: Remove unnecessary eDP power down
        ...
      96c84703
  2. Jan 21, 2025
    • Linus Torvalds's avatar
      Merge tag 'trace-sorttable-v6.14' of... · c0e75905
      Linus Torvalds authored
      Merge tag 'trace-sorttable-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
      
      Pull scipts/sorttable updates from Steven Rostedt:
       "The sorttable.c was a copy from recordmcount.c which is very hard to
        maintain. That's because it uses macro helpers and places the code in
        a header file sorttable.h to handle both the 64 bit and 32 bit version
        of the Elf structures. It also uses _r()/r()/r2() wrappers around
        accessing the data which will read the 64 bit or 32 bit version of the
        data as well as handle endianess. If the wrong wrapper is used, an
        invalid value will result, and this has been a cause for bugs in the
        past. In fact the new ORC code doesn't even use it. That's fine
        because ORC is only for 64 bit x86 which is the default parsing.
      
        Instead of having a bunch of macros defined and then include the code
        twice from a header, the Elf structures are each wrapped in a union.
        The union holds the 64 bit and 32 bit version of the needed structure.
        Then a structure of function pointers is used, along with helper
        macros to access the ELF types appropriately for their byte size and
        endianess. How to reference the data fields is moved from the code
        that implements the sorting to the helper functions where all accesses
        to a field will use he same helper function. As long as the helper
        functions access the fields correctly, the code will also access the
        fields. This is an improvement over having to code implementing the
        sorting having to make sure it always uses the right accessor function
        when reading an ELF field.
      
        This is a clean up only, the functionality of the scripts/sorttable.c
        does not change"
      
      * tag 'trace-sorttable-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        scripts/sorttable: Use a structure of function pointers for elf helpers
        scripts/sorttable: Get start/stop_mcount_loc from ELF file directly
        scripts/sorttable: Move code from sorttable.h into sorttable.c
        scripts/sorttable: Use uint64_t for mcount sorting
        scripts/sorttable: Add helper functions for Elf_Sym
        scripts/sorttable: Add helper functions for Elf_Shdr
        scripts/sorttable: Add helper functions for Elf_Ehdr
        scripts/sorttable: Convert Elf_Sym MACRO over to a union
        scripts/sorttable: Replace Elf_Shdr Macro with a union
        scripts/sorttable: Convert Elf_Ehdr to union
        scripts/sorttable: Make compare_extable() into two functions
        scripts/sorttable: Have the ORC code use the _r() functions to read
        scripts/sorttable: Remove unneeded Elf_Rel
        scripts/sorttable: Remove unused write functions
        scripts/sorttable: Remove unused macro defines
      c0e75905
    • Linus Torvalds's avatar
      Merge tag 'ftrace-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 2e04247f
      Linus Torvalds authored
      Pull ftrace updates from Steven Rostedt:
      
       - Have fprobes built on top of function graph infrastructure
      
         The fprobe logic is an optimized kprobe that uses ftrace to attach to
         functions when a probe is needed at the start or end of the function.
         The fprobe and kretprobe logic implements a similar method as the
         function graph tracer to trace the end of the function. That is to
         hijack the return address and jump to a trampoline to do the trace
         when the function exits. To do this, a shadow stack needs to be
         created to store the original return address. Fprobes and function
         graph do this slightly differently. Fprobes (and kretprobes) has
         slots per callsite that are reserved to save the return address. This
         is fine when just a few points are traced. But users of fprobes, such
         as BPF programs, are starting to add many more locations, and this
         method does not scale.
      
         The function graph tracer was created to trace all functions in the
         kernel. In order to do this, when function graph tracing is started,
         every task gets its own shadow stack to hold the return address that
         is going to be traced. The function graph tracer has been updated to
         allow multiple users to use its infrastructure. Now have fprobes be
         one of those users. This will also allow for the fprobe and kretprobe
         methods to trace the return address to become obsolete. With new
         technologies like CFI that need to know about these methods of
         hijacking the return address, going toward a solution that has only
         one method of doing this will make the kernel less complex.
      
       - Cleanup with guard() and free() helpers
      
         There were several places in the code that had a lot of "goto out" in
         the error paths to either unlock a lock or free some memory that was
         allocated. But this is error prone. Convert the code over to use the
         guard() and free() helpers that let the compiler unlock locks or free
         memory when the function exits.
      
       - Remove disabling of interrupts in the function graph tracer
      
         When function graph tracer was first introduced, it could race with
         interrupts and NMIs. To prevent that race, it would disable
         interrupts and not trace NMIs. But the code has changed to allow NMIs
         and also interrupts. This change was done a long time ago, but the
         disabling of interrupts was never removed. Remove the disabling of
         interrupts in the function graph tracer is it is not needed. This
         greatly improves its performance.
      
       - Allow the :mod: command to enable tracing module functions on the
         kernel command line.
      
         The function tracer already has a way to enable functions to be
         traced in modules by writing ":mod:<module>" into set_ftrace_filter.
         That will enable either all the functions for the module if it is
         loaded, or if it is not, it will cache that command, and when the
         module is loaded that matches <module>, its functions will be
         enabled. This also allows init functions to be traced. But currently
         events do not have that feature.
      
         Because enabling function tracing can be done very early at boot up
         (before scheduling is enabled), the commands that can be done when
         function tracing is started is limited. Having the ":mod:" command to
         trace module functions as they are loaded is very useful. Update the
         kernel command line function filtering to allow it.
      
      * tag 'ftrace-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: (26 commits)
        ftrace: Implement :mod: cache filtering on kernel command line
        tracing: Adopt __free() and guard() for trace_fprobe.c
        bpf: Use ftrace_get_symaddr() for kprobe_multi probes
        ftrace: Add ftrace_get_symaddr to convert fentry_ip to symaddr
        Documentation: probes: Update fprobe on function-graph tracer
        selftests/ftrace: Add a test case for repeating register/unregister fprobe
        selftests: ftrace: Remove obsolate maxactive syntax check
        tracing/fprobe: Remove nr_maxactive from fprobe
        fprobe: Add fprobe_header encoding feature
        fprobe: Rewrite fprobe on function-graph tracer
        s390/tracing: Enable HAVE_FTRACE_GRAPH_FUNC
        ftrace: Add CONFIG_HAVE_FTRACE_GRAPH_FUNC
        bpf: Enable kprobe_multi feature if CONFIG_FPROBE is enabled
        tracing/fprobe: Enable fprobe events with CONFIG_DYNAMIC_FTRACE_WITH_ARGS
        tracing: Add ftrace_fill_perf_regs() for perf event
        tracing: Add ftrace_partial_regs() for converting ftrace_regs to pt_regs
        fprobe: Use ftrace_regs in fprobe exit handler
        fprobe: Use ftrace_regs in fprobe entry handler
        fgraph: Pass ftrace_regs to retfunc
        fgraph: Replace fgraph_ret_regs with ftrace_regs
        ...
      2e04247f
    • Linus Torvalds's avatar
      Merge tag 'trace-ringbuffer-v6.14' of... · 0074adea
      Linus Torvalds authored
      Merge tag 'trace-ringbuffer-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
      
      Pull trace ring-buffer updates from Steven Rostedt:
      
       - Clean up the __rb_map_vma() logic
      
         The logic of __rb_map_vma() has a error check with WARN_ON() that
         makes sure that the index does not go past the end of the array of
         buffers. The test in the loop pretty much guarantees that it will
         never happen, but since the relation of the variables used is a
         little complex, the WARN_ON() check was added. It was noticed that
         the array was dereferenced before this check and if the logic does
         break and for some reason the logic goes past the array, there will
         be an out of bounds access here. Move the access to after the
         WARN_ON().
      
       - Consolidate how the ring buffer is determined to be empty
      
         Currently there's two ways that are used to determine if the ring
         buffer is empty. One relies on the status of the commit and reader
         pages and what was read, and the other is on what was written vs what
         was read. By using the number of entries (written) method, it can be
         used for reading events that are out of the kernel's control (what
         pKVM will use). Move to this method to make it easier to implement a
         pKVM ring buffer that the kernel can read.
      
      * tag 'trace-ringbuffer-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        ring-buffer: Make reading page consistent with the code logic
        ring-buffer: Check for empty ring-buffer with rb_num_of_entries()
      0074adea
    • Linus Torvalds's avatar
      Merge tag 'rcu.release.v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux · 9f3ee94e
      Linus Torvalds authored
      Pull RCU updates from Uladzislau Rezki:
       "Misc fixes:
         - check if IRQs are disabled in rcu_exp_need_qs()
         - instrument KCSAN exclusive-writer assertions
         - add extra WARN_ON_ONCE() check
         - set the cpu_no_qs.b.exp under lock
         - warn if callback enqueued on offline CPU
      
        Torture-test updates:
         - add rcutorture.preempt_duration kernel module parameter
         - make the TREE03 scenario do preemption
         - improve pooling timeouts for rcu_torture_writer()
         - improve output of "Failure/close-call rcutorture reader segments"
         - add some reader-state debugging checks
         - update doc of polled APIs
         - add extra diagnostics for per-reader-segment preemption
         - add an extra test for sched_clock()
         - improve testing on unresponsive systems
      
        SRCU updates:
         - improve doc for srcu_read_lock() in terms of return value
         - fix typo in comments
         - remove redundant GP sequence checks in the srcu_funnel_gp_start"
      
      * tag 'rcu.release.v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux: (31 commits)
        srcu: Remove redundant GP sequence checks in srcu_funnel_gp_start
        srcu: Fix typo s/srcu_check_read_flavor()/__srcu_check_read_flavor()/
        srcu: Guarantee non-negative return value from srcu_read_lock()
        MAINTAINERS: Update RCU git tree
        rcu: Add lockdep_assert_irqs_disabled() to rcu_exp_need_qs()
        rcu: Add KCSAN exclusive-writer assertions for rdp->cpu_no_qs.b.exp
        rcu: Make preemptible rcu_exp_handler() check idempotency
        rcu: Replace open-coded rcu_exp_need_qs() from rcu_exp_handler() with call
        rcu: Move rcu_report_exp_rdp() setting of ->cpu_no_qs.b.exp under lock
        rcu: Make rcu_report_exp_cpu_mult() caller acquire lock
        rcu: Report callbacks enqueued on offline CPU blind spot
        rcutorture: Use symbols for SRCU reader flavors
        rcutorture: Add per-reader-segment preemption diagnostics
        rcutorture: Read CPU ID for decoration protected by both reader types
        rcutorture: Add preempt_count() to rcutorture_one_extend_check() diagnostics
        rcutorture: Add parameters to control polled/conditional wait interval
        rcutorture: Add documentation for recent conditional and polled APIs
        rcutorture: Ignore attempts to test preemption and forward progress
        rcutorture: Make rcutorture_one_extend() check reader state
        rcutorture: Pretty-print rcutorture reader segments
        ...
      9f3ee94e
    • Linus Torvalds's avatar
      Merge tag 'slab-for-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab · ad37df3b
      Linus Torvalds authored
      Pull slab updates from Vlastimil Babka:
      
       - Move the kfree_rcu() implementation from RCU to SLAB subsystem
         (Uladzislau Rezki)
      
         The kfree_rcu() implementation has been historically maintained in
         the RCU subsystem. At LSF/MM we agreed to move it to SLAB, where it
         more logically belongs. The batching is planned be more integrated
         with SLUB internals in the future, while using the RCU APIs like any
         other subsystem.
      
       - Fix for kernel-doc warning (Randy Dunlap)
      
      * tag 'slab-for-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab:
        mm/slab: fix kernel-doc func param names
        mm/slab: Move kvfree_rcu() into SLAB
        rcu/kvfree: Adjust a shrinker name
        rcu/kvfree: Adjust names passed into trace functions
        rcu/kvfree: Move some functions under CONFIG_TINY_RCU
        rcu/kvfree: Initialize kvfree_rcu() separately
      ad37df3b
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2025-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4c551165
      Linus Torvalds authored
      Pull interrupt subsystem updates from Thomas Gleixner:
      
       - Consolidate the machine_kexec_mask_interrupts() by providing a
         generic implementation and replacing the copy & pasta orgy in the
         relevant architectures.
      
       - Prevent unconditional operations on interrupt chips during kexec
         shutdown, which can trigger warnings in certain cases when the
         underlying interrupt has been shut down before.
      
       - Make the enforcement of interrupt handling in interrupt context
         unconditionally available, so that it actually works for non x86
         related interrupt chips. The earlier enablement for ARM GIC chips set
         the required chip flag, but did not notice that the check was hidden
         behind a config switch which is not selected by ARM[64].
      
       - Decrapify the handling of deferred interrupt affinity setting.
      
         Some interrupt chips require that affinity changes are made from the
         context of handling an interrupt to avoid certain race conditions.
         For x86 this was the default, but with interrupt remapping this
         requirement was lifted and a flag was introduced which tells the core
         code that affinity changes can be done in any context. Unrestricted
         affinity changes are the default for the majority of interrupt chips.
      
         RISCV has the requirement to add the deferred mode to one of it's
         interrupt controllers, but with the original implementation this
         would require to add the any context flag to all other RISC-V
         interrupt chips. That's backwards, so reverse the logic and require
         that chips, which need the deferred mode have to be marked
         accordingly. That avoids chasing the 'sane' chips and marking them.
      
       - Add multi-node support to the Loongarch AVEC interrupt controller
         driver.
      
       - The usual tiny cleanups, fixes and improvements all over the place.
      
      * tag 'irq-core-2025-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq/generic_chip: Export irq_gc_mask_disable_and_ack_set()
        genirq/timings: Add kernel-doc for a function parameter
        genirq: Remove IRQ_MOVE_PCNTXT and related code
        x86/apic: Convert to IRQCHIP_MOVE_DEFERRED
        genirq: Provide IRQCHIP_MOVE_DEFERRED
        hexagon: Remove GENERIC_PENDING_IRQ leftover
        ARC: Remove GENERIC_PENDING_IRQ
        genirq: Remove handle_enforce_irqctx() wrapper
        genirq: Make handle_enforce_irqctx() unconditionally available
        irqchip/loongarch-avec: Add multi-nodes topology support
        irqchip/ts4800: Replace seq_printf() by seq_puts()
        irqchip/ti-sci-inta : Add module build support
        irqchip/ti-sci-intr: Add module build support
        irqchip/irq-brcmstb-l2: Replace brcmstb_l2_mask_and_ack() by generic function
        irqchip: keystone: Use syscon_regmap_lookup_by_phandle_args
        genirq/kexec: Prevent redundant IRQ masking by checking state before shutdown
        kexec: Consolidate machine_kexec_mask_interrupts() implementation
        genirq: Reuse irq_thread_fn() for forced thread case
        genirq: Move irq_thread_fn() further up in the code
      4c551165
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2025-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f200c315
      Linus Torvalds authored
      Pull timer and timekeeping updates from Thomas Gleixner:
      
       - Just boring cleanups, typo and comment fixes and trivial optimizations
      
      * tag 'timers-core-2025-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        timers/migration: Simplify top level detection on group setup
        timers: Optimize get_timer_[this_]cpu_base()
        timekeeping: Remove unused ktime_get_fast_timestamps()
        timer/migration: Fix kernel-doc warnings for union tmigr_state
        tick/broadcast: Add kernel-doc for function parameters
        hrtimers: Update the return type of enqueue_hrtimer()
        clocksource/wdtest: Print time values for short udelay(1)
        posix-timers: Fix typo in __lock_timer()
        vdso: Correct typo in PAGE_SHIFT comment
      f200c315
    • Linus Torvalds's avatar
      Merge tag 'livepatching-for-6.14' of... · 33608823
      Linus Torvalds authored
      Merge tag 'livepatching-for-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching
      
      Pull livepatching updates from Petr Mladek:
      
       - Add a sysfs attribute showing the livepatch ordering
      
       - Some code clean up
      
      * tag 'livepatching-for-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
        selftests: livepatch: add test cases of stack_order sysfs interface
        livepatch: Add stack_order sysfs attribute
        selftests/livepatch: Replace hardcoded module name with variable in test-callbacks.sh
      33608823
    • Linus Torvalds's avatar
      Merge tag 'printk-for-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux · 4ca6c022
      Linus Torvalds authored
      Pull printk updates from Petr Mladek:
      
       - Prevent possible deadlocks, caused by the lock serializing per-CPU
         backtraces, by entering the deferred printk context
      
       - Enforce the right casting in LOG_BUF_LEN_MAX definition
      
      * tag 'printk-for-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux:
        printk: Defer legacy printing when holding printk_cpu_sync
        printk: Remove redundant deferred check in vprintk()
        printk: Fix signed integer overflow when defining LOG_BUF_LEN_MAX
      4ca6c022
    • Linus Torvalds's avatar
      Merge tag 'sched-core-2025-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 62de6e16
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
       "Fair scheduler (SCHED_FAIR) enhancements:
      
         - Behavioral improvements:
            - Untangle NEXT_BUDDY and pick_next_task() (Peter Zijlstra)
      
         - Delayed-dequeue enhancements & fixes: (Vincent Guittot)
            - Rename h_nr_running into h_nr_queued
            - Add new cfs_rq.h_nr_runnable
            - Use the new cfs_rq.h_nr_runnable
            - Removed unsued cfs_rq.h_nr_delayed
            - Rename cfs_rq.idle_h_nr_running into h_nr_idle
            - Remove unused cfs_rq.idle_nr_running
            - Rename cfs_rq.nr_running into nr_queued
            - Do not try to migrate delayed dequeue task
            - Fix variable declaration position
            - Encapsulate set custom slice in a __setparam_fair() function
      
         - Fixes:
            - Fix race between yield_to() and try_to_wake_up() (Tianchen Ding)
            - Fix CPU bandwidth limit bypass during CPU hotplug (Vishal
              Chourasia)
      
         - Cleanups:
            - Clean up in migrate_degrades_locality() to improve readability
              (Peter Zijlstra)
            - Mark m*_vruntime() with __maybe_unused (Andy Shevchenko)
            - Update comments after sched_tick() rename (Sebastian Andrzej
              Siewior)
            - Remove CONFIG_CFS_BANDWIDTH=n definition of cfs_bandwidth_used()
              (Valentin Schneider)
      
        Deadline scheduler (SCHED_DL) enhancements:
      
         - Restore dl_server bandwidth on non-destructive root domain changes
           (Juri Lelli)
      
         - Correctly account for allocated bandwidth during hotplug (Juri
           Lelli)
      
         - Check bandwidth overflow earlier for hotplug (Juri Lelli)
      
         - Clean up goto label in pick_earliest_pushable_dl_task() (John
           Stultz)
      
         - Consolidate timer cancellation (Wander Lairson Costa)
      
        Load-balancer enhancements:
      
         - Improve performance by prioritizing migrating eligible tasks in
           sched_balance_rq() (Hao Jia)
      
         - Do not compute NUMA Balancing stats unnecessarily during
           load-balancing (K Prateek Nayak)
      
         - Do not compute overloaded status unnecessarily during
           load-balancing (K Prateek Nayak)
      
        Generic scheduling code enhancements:
      
         - Use READ_ONCE() in task_on_rq_queued(), to consistently use the
           WRITE_ONCE() updated ->on_rq field (Harshit Agarwal)
      
        Isolated CPUs support enhancements: (Waiman Long)
      
         - Make "isolcpus=nohz" equivalent to "nohz_full"
         - Consolidate housekeeping cpumasks that are always identical
         - Remove HK_TYPE_SCHED
         - Unify HK_TYPE_{TIMER|TICK|MISC} to HK_TYPE_KERNEL_NOISE
      
        RSEQ enhancements:
      
         - Validate read-only fields under DEBUG_RSEQ config (Mathieu
           Desnoyers)
      
        PSI enhancements:
      
         - Fix race when task wakes up before psi_sched_switch() adjusts flags
           (Chengming Zhou)
      
        IRQ time accounting performance enhancements: (Yafang Shao)
      
         - Define sched_clock_irqtime as static key
         - Don't account irq time if sched_clock_irqtime is disabled
      
        Virtual machine scheduling enhancements:
      
         - Don't try to catch up excess steal time (Suleiman Souhlal)
      
        Heterogenous x86 CPU scheduling enhancements: (K Prateek Nayak)
      
         - Convert "sysctl_sched_itmt_enabled" to boolean
         - Use guard() for itmt_update_mutex
         - Move the "sched_itmt_enabled" sysctl to debugfs
         - Remove x86_smt_flags and use cpu_smt_flags directly
         - Use x86_sched_itmt_flags for PKG domain unconditionally
      
        Debugging code & instrumentation enhancements:
      
         - Change need_resched warnings to pr_err() (David Rientjes)
         - Print domain name in /proc/schedstat (K Prateek Nayak)
         - Fix value reported by hot tasks pulled in /proc/schedstat (Peter
           Zijlstra)
         - Report the different kinds of imbalances in /proc/schedstat
           (Swapnil Sapkal)
         - Move sched domain name out of CONFIG_SCHED_DEBUG (Swapnil Sapkal)
         - Update Schedstat version to 17 (Swapnil Sapkal)"
      
      * tag 'sched-core-2025-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (48 commits)
        rseq: Fix rseq unregistration regression
        psi: Fix race when task wakes up before psi_sched_switch() adjusts flags
        sched, psi: Don't account irq time if sched_clock_irqtime is disabled
        sched: Don't account irq time if sched_clock_irqtime is disabled
        sched: Define sched_clock_irqtime as static key
        sched/fair: Do not compute overloaded status unnecessarily during lb
        sched/fair: Do not compute NUMA Balancing stats unnecessarily during lb
        x86/topology: Use x86_sched_itmt_flags for PKG domain unconditionally
        x86/topology: Remove x86_smt_flags and use cpu_smt_flags directly
        x86/itmt: Move the "sched_itmt_enabled" sysctl to debugfs
        x86/itmt: Use guard() for itmt_update_mutex
        x86/itmt: Convert "sysctl_sched_itmt_enabled" to boolean
        sched/core: Prioritize migrating eligible tasks in sched_balance_rq()
        sched/debug: Change need_resched warnings to pr_err
        sched/fair: Encapsulate set custom slice in a __setparam_fair() function
        sched: Fix race between yield_to() and try_to_wake_up()
        docs: Update Schedstat version to 17
        sched/stats: Print domain name in /proc/schedstat
        sched: Move sched domain name out of CONFIG_SCHED_DEBUG
        sched: Report the different kinds of imbalances in /proc/schedstat
        ...
      62de6e16
Loading