1. 21 Feb, 2023 28 commits
    • Dave Hansen's avatar
      uaccess: Add speculation barrier to copy_from_user() · 74e19ef0
      Dave Hansen authored
      The results of "access_ok()" can be mis-speculated.  The result is that
      you can end speculatively:
      
      	if (access_ok(from, size))
      		// Right here
      
      even for bad from/size combinations.  On first glance, it would be ideal
      to just add a speculation barrier to "access_ok()" so that its results
      can never be mis-speculated.
      
      But there are lots of system calls just doing access_ok() via
      "copy_to_user()" and friends (example: fstat() and friends).  Those are
      generally not problematic because they do not _consume_ data from
      userspace other than the pointer.  They are also very quick and common
      system calls that should not be needlessly slowed down.
      
      "copy_from_user()" on the other hand uses a user-controller pointer and
      is frequently followed up with code that might affect caches.  Take
      something like this:
      
      	if (!copy_from_user(&kernelvar, uptr, size))
      		do_something_with(kernelvar);
      
      If userspace passes in an evil 'uptr' that *actually* points to a kernel
      addresses, and then do_something_with() has cache (or other)
      side-effects, it could allow userspace to infer kernel data values.
      
      Add a barrier to the common copy_from_user() code to prevent
      mis-speculated values which happen after the copy.
      
      Also add a stub for architectures that do not define barrier_nospec().
      This makes the macro usable in generic code.
      
      Since the barrier is now usable in generic code, the x86 #ifdef in the
      BPF code can also go away.
      Reported-by: default avatarJordy Zomer <jordyzomer@google.com>
      Suggested-by: default avatarLinus Torvalds <torvalds@linuxfoundation.org>
      Signed-off-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
      Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Acked-by: Daniel Borkmann <daniel@iogearbox.net>   # BPF bits
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      74e19ef0
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 1b72607d
      Linus Torvalds authored
      Pull thermal control updates from Rafael Wysocki:
       "The majority of changes here are related to the general switch-over to
        using arrays of generic trip point structures registered along with a
        thermal zone instead of trip point callbacks (this has been done
        mostly by Daniel Lezcano with some help from yours truly on the Intel
        drivers front).
      
        Apart from that and the related reorganization of code, there are some
        enhancements of the existing driver and a new Mediatek Low Voltage
        Thermal Sensor (LVTS) driver. The Intel powerclamp undergoes a major
        rework so it will use the generic idle_inject facility for CPU idle
        time injection going forward and it will take additional module
        parameters for specifying the subset of CPUs to be affected by it
        (work done by Srinivas Pandruvada).
      
        Also included are assorted fixes and a whole bunch of cleanups.
      
        Specifics:
      
         - Rework a large bunch of drivers to use the generic thermal trip
           structure and use the opportunity to do more cleanups by removing
           unused functions from the OF code (Daniel Lezcano)
      
         - Remove core header inclusion from drivers (Daniel Lezcano)
      
         - Fix some locking issues related to the generic thermal trip rework
           (Johan Hovold)
      
         - Fix a crash when requesting the critical temperature on tegra,
           which is related to the generic trip point work (Jon Hunter)
      
         - Clean up thermal device unregistration code (Viresh Kumar)
      
         - Fix and clean up thermal control core initialization error code
           paths (Daniel Lezcano)
      
         - Relocate the trip points handling code into a separate file (Daniel
           Lezcano)
      
         - Make the thermal core fail registration of thermal zones and
           cooling devices if the thermal class has not been registered
           (Rafael Wysocki)
      
         - Add trip point initialization helper functions for ACPI-defined
           trip points and modify two thermal drivers to use them (Rafael
           Wysocki, Daniel Lezcano)
      
         - Make the core thermal control code use sysfs_emit_at() instead of
           scnprintf() where applicable (ye xingchen)
      
         - Consolidate code accessing the Intel TCC (Thermal Control
           Circuitry) MSRs by introducing library functions for that and
           making the TCC-related code in thermal drivers use them (Zhang Rui)
      
         - Enhance the x86_pkg_temp_thermal driver to support dynamic tjmax
           changes (Zhang Rui)
      
         - Address an "unsigned expression compared with zero" warning in the
           intel_soc_dts_iosf thermal driver (Yang Li)
      
         - Update comments regarding two functions in the Intel Menlow thermal
           driver (Deming Wang)
      
         - Use sysfs_emit_at() instead of scnprintf() in the int340x thermal
           driver (ye xingchen)
      
         - Make the intel_pch thermal driver support the Wellsburg PCH (Tim
           Zimmermann)
      
         - Modify the intel_pch and processor_thermal_device_pci thermal
           drivers use generic trip point tables instead of thermal zone trip
           point callbacks (Daniel Lezcano)
      
         - Add production mode attribute sysfs attribute to the int340x
           thermal driver (Srinivas Pandruvada)
      
         - Rework dynamic trip point updates handling and locking in the
           int340x thermal driver (Rafael Wysocki)
      
         - Make the int340x thermal driver use a generic trip points table
           instead of thermal zone trip point callbacks (Rafael Wysocki,
           Daniel Lezcano)
      
         - Clean up and improve the int340x thermal driver (Rafael Wysocki)
      
         - Simplify and clean up the intel_pch thermal driver (Rafael Wysocki)
      
         - Fix the Intel powerclamp thermal driver and make it use the common
           idle injection framework (Srinivas Pandruvada)
      
         - Add two module parameters, cpumask and max_idle, to the Intel
           powerclamp thermal driver to allow it to affect only a specific
           subset of CPUs instead of all of them (Srinivas Pandruvada)
      
         - Make the Intel quark_dts thermal driver Use generic trip point
           objects instead of its own trip point representation (Daniel
           Lezcano)
      
         - Add toctree entry for thermal documents and fix two issues in the
           Intel powerclamp driver documentation (Bagas Sanjaya)
      
         - Use strscpy() to instead of strncpy() in the thermal core (Xu
           Panda)
      
         - Fix thermal_sampling_exit() (Vincent Guittot)
      
         - Add Mediatek Low Voltage Thermal Sensor (LVTS) driver (Balsam
           Chihi)
      
         - Add r8a779g0 RCar support to the rcar_gen3 thermal driver (Geert
           Uytterhoeven)
      
         - Fix useless call to set_trips() when resuming in the rcar_gen3
           thermal control driver and add interrupt support detection at init
           time to it (Niklas Söderlund)
      
         - Fix memory corruption in the hi3660 thermal driver (Yongqin Liu)
      
         - Fix include path for libnl3 in pkg-config file for libthermal
           (Vibhav Pant)
      
         - Remove syscfg-based driver for st as the platform is not supported
           any more (Alain Volmat)"
      
      * tag 'thermal-6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (135 commits)
        thermal/drivers/st: Remove syscfg based driver
        thermal: Remove core header inclusion from drivers
        tools/lib/thermal: Fix include path for libnl3 in pkg-config file.
        thermal/drivers/hisi: Drop second sensor hi3660
        thermal/drivers/rcar_gen3_thermal: Fix device initialization
        thermal/drivers/rcar_gen3_thermal: Create device local ops struct
        thermal/drivers/rcar_gen3_thermal: Do not call set_trips() when resuming
        thermal/drivers/rcar_gen3: Add support for R-Car V4H
        dt-bindings: thermal: rcar-gen3-thermal: Add r8a779g0 support
        thermal/drivers/mediatek: Add the Low Voltage Thermal Sensor driver
        dt-bindings: thermal: mediatek: Add LVTS thermal controllers
        thermal/drivers/mediatek: Relocate driver to mediatek folder
        tools/lib/thermal: Fix thermal_sampling_exit()
        Documentation: powerclamp: Fix numbered lists formatting
        Documentation: powerclamp: Escape wildcard in cpumask description
        Documentation: admin-guide: Add toctree entry for thermal docs
        thermal: intel: powerclamp: Add two module parameters
        Documentation: admin-guide: Move intel_powerclamp documentation
        thermal: core: Use sysfs_emit_at() instead of scnprintf()
        thermal: intel: powerclamp: Fix duration module parameter
        ...
      1b72607d
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 88af9b16
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "These fix a frequency limit issue in the ACPI processor performance
        library code, fix a few issues in the ACPICA code, improve Crystal
        Cove support in the ACPI PMIC driver, fix string handling in the ACPI
        battery driver, add IRQ override quirks for a few machines more, fix
        other assorted problems and clean up code and documentation.
      
        Specifics:
      
         - Drop port I/O validation for some regions to avoid AML failures due
           to rejections of legitimate port I/O writes (Mario Limonciello)
      
         - Constify acpi_get_handle() pathname argument to allow its callers
           to pass const pathnames to it (Sakari Ailus)
      
         - Prevent acpi_ns_simple_repair() from crashing in some cases when
           AE_AML_NO_RETURN_VALUE should be returned (Daniil Tatianin)
      
         - Fix typo in CDAT DSMAS struct definition (Lukas Wunner)
      
         - Drop an unnecessary (void *) conversion from the ACPI processor
           driver (Zhou jie)
      
         - Modify the ACPI processor performance library code to use the "no
           limit" frequency QoS as appropriate and adjust the intel_pstate
           driver accordingly (Rafael Wysocki)
      
         - Add support for NBFT to the ACPI table parser (Stuart Hayes)
      
         - Introduce list of known non-PNP devices to avoid enumerating some
           of them as PNP devices (Rafael Wysocki)
      
         - Add x86 ACPI paths to the ACPI entry in MAINTAINERS to allow
           scripts to report the actual maintainers information (Rafael
           Wysocki)
      
         - Add two more entries to the ACPI IRQ override quirk list (Adam
           Niederer, Werner Sembach)
      
         - Add a pmic_i2c_address entry for Intel Bay Trail Crystal Cove to
           allow intel_soc_pmic_exec_mipi_pmic_seq_element() to be used with
           the Bay Trail Crystal Cove PMIC OpRegion driver (Hans de Goede)
      
         - Add comments with DSDT power OpRegion field names to the ACPI PMIC
           driver (Hans de Goede)
      
         - Fix string termination handling in the ACPI battery driver (Armin
           Wolf)
      
         - Limit error type to 32-bit width in the ACPI APEI error injection
           code (Shuai Xue)
      
         - Fix Lenovo Ideapad Z570 DMI match in the ACPI backlight driver
           (Hans de Goede)
      
         - Silence missing prototype warnings in some places in the
           ACPI-related code (Ammar Faizi)
      
         - Make kobj_type structures used in the ACPI code constant (Thomas
           Weißschuh)
      
         - Correct spelling in firmware-guide/ACPI (Randy Dunlap)
      
         - Clarify the meaning of Explicit and Implicit in the _DSD GPIO
           properties documentation (Andy Shevchenko)
      
         - Fix some kernel-doc comments in the ACPI CPPC library code (Yang
           Li)"
      
      * tag 'acpi-6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (25 commits)
        ACPI: make kobj_type structures constant
        Documentation: firmware-guide: gpio-properties: Clarify Explicit and Implicit
        ACPICA: Fix typo in CDAT DSMAS struct definition
        ACPI: resource: Do IRQ override on all TongFang GMxRGxx
        ACPI: resource: Add IRQ overrides for MAINGEAR Vector Pro 2 models
        ACPI: CPPC: Fix some kernel-doc comments
        ACPI: video: Fix Lenovo Ideapad Z570 DMI match
        Documentation: firmware-guide/ACPI: correct spelling
        ACPI: PMIC: Add comments with DSDT power opregion field names
        ACPI: battery: Increase maximum string length
        ACPI: battery: Fix buffer overread if not NUL-terminated
        ACPI: APEI: EINJ: Limit error type to 32-bit width
        MAINTAINERS: Add x86 ACPI paths to the ACPI entry
        ACPI: battery: Fix missing NUL-termination with large strings
        ACPI: PNP: Introduce list of known non-PNP devices
        ACPICA: nsrepair: handle cases without a return value correctly
        ACPI: Silence missing prototype warnings
        cpufreq: intel_pstate: Drop ACPI _PSS states table patching
        ACPI: processor: perflib: Avoid updating frequency QoS unnecessarily
        ACPI: processor: perflib: Use the "no limit" frequency QoS
        ...
      88af9b16
    • Linus Torvalds's avatar
      Merge tag 'pm-6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 2504ba8b
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These add EPP support to the AMD P-state cpufreq driver, add support
        for new platforms to the Intel RAPL power capping driver, intel_idle
        and the Qualcomm cpufreq driver, enable thermal cooling for Tegra194,
        drop the custom cpufreq driver for loongson1 that is not necessary any
        more (and the corresponding cpufreq platform device), fix assorted
        issues and clean up code.
      
        Specifics:
      
         - Add EPP support to the AMD P-state cpufreq driver (Perry Yuan, Wyes
           Karny, Arnd Bergmann, Bagas Sanjaya)
      
         - Drop the custom cpufreq driver for loongson1 that is not necessary
           any more and the corresponding cpufreq platform device (Keguang
           Zhang)
      
         - Remove "select SRCU" from system sleep, cpufreq and OPP Kconfig
           entries (Paul E. McKenney)
      
         - Enable thermal cooling for Tegra194 (Yi-Wei Wang)
      
         - Register module device table and add missing compatibles for
           cpufreq-qcom-hw (Nícolas F. R. A. Prado, Abel Vesa and Luca Weiss)
      
         - Various dt binding updates for qcom-cpufreq-nvmem and
           opp-v2-kryo-cpu (Christian Marangi)
      
         - Make kobj_type structure in the cpufreq core constant (Thomas
           Weißschuh)
      
         - Make cpufreq_unregister_driver() return void (Uwe Kleine-König)
      
         - Make the TEO cpuidle governor check CPU utilization in order to
           refine idle state selection (Kajetan Puchalski)
      
         - Make Kconfig select the haltpoll cpuidle governor when the haltpoll
           cpuidle driver is selected and replace a default_idle() call in
           that driver with arch_cpu_idle() to allow MWAIT to be used (Li
           RongQing)
      
         - Add Emerald Rapids Xeon support to the intel_idle driver (Artem
           Bityutskiy)
      
         - Add ARCH_SUSPEND_POSSIBLE dependencies for ARMv4 cpuidle drivers to
           avoid randconfig build failures (Arnd Bergmann)
      
         - Make kobj_type structures used in the cpuidle sysfs interface
           constant (Thomas Weißschuh)
      
         - Make the cpuidle driver registration code update microsecond values
           of idle state parameters in accordance with their nanosecond values
           if they are provided (Rafael Wysocki)
      
         - Make the PSCI cpuidle driver prevent topology CPUs from being
           suspended on PREEMPT_RT (Krzysztof Kozlowski)
      
         - Document that pm_runtime_force_suspend() cannot be used with
           DPM_FLAG_SMART_SUSPEND (Richard Fitzgerald)
      
         - Add EXPORT macros for exporting PM functions from drivers (Richard
           Fitzgerald)
      
         - Remove /** from non-kernel-doc comments in hibernation code (Randy
           Dunlap)
      
         - Fix possible name leak in powercap_register_zone() (Yang Yingliang)
      
         - Add Meteor Lake and Emerald Rapids support to the intel_rapl power
           capping driver (Zhang Rui)
      
         - Modify the idle_inject power capping facility to support 100% idle
           injection (Srinivas Pandruvada)
      
         - Fix large time windows handling in the intel_rapl power capping
           driver (Zhang Rui)
      
         - Fix memory leaks with using debugfs_lookup() in the generic PM
           domains and Energy Model code (Greg Kroah-Hartman)
      
         - Add missing 'cache-unified' property in the example for kryo OPP
           bindings (Rob Herring)
      
         - Fix error checking in opp_migrate_dentry() (Qi Zheng)
      
         - Let qcom,opp-fuse-level be a 2-long array for qcom SoCs (Konrad
           Dybcio)
      
         - Modify some power management utilities to use the canonical ftrace
           path (Ross Zwisler)
      
         - Correct spelling problems for Documentation/power/ as reported by
           codespell (Randy Dunlap)"
      
      * tag 'pm-6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (53 commits)
        Documentation: amd-pstate: disambiguate user space sections
        cpufreq: amd-pstate: Fix invalid write to MSR_AMD_CPPC_REQ
        dt-bindings: opp: opp-v2-kryo-cpu: enlarge opp-supported-hw maximum
        dt-bindings: cpufreq: qcom-cpufreq-nvmem: make cpr bindings optional
        dt-bindings: cpufreq: qcom-cpufreq-nvmem: specify supported opp tables
        PM: Add EXPORT macros for exporting PM functions
        cpuidle: psci: Do not suspend topology CPUs on PREEMPT_RT
        MIPS: loongson32: Drop obsolete cpufreq platform device
        powercap: intel_rapl: Fix handling for large time window
        cpuidle: driver: Update microsecond values of state parameters as needed
        cpuidle: sysfs: make kobj_type structures constant
        cpuidle: add ARCH_SUSPEND_POSSIBLE dependencies
        PM: EM: fix memory leak with using debugfs_lookup()
        PM: domains: fix memory leak with using debugfs_lookup()
        cpufreq: Make kobj_type structure constant
        cpufreq: davinci: Fix clk use after free
        cpufreq: amd-pstate: avoid uninitialized variable use
        cpufreq: Make cpufreq_unregister_driver() return void
        OPP: fix error checking in opp_migrate_dentry()
        dt-bindings: cpufreq: cpufreq-qcom-hw: Add SM8550 compatible
        ...
      2504ba8b
    • Linus Torvalds's avatar
      Merge tag 'hardening-v6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 4a7d37e8
      Linus Torvalds authored
      Pull hardening updates from Kees Cook:
       "Beyond some specific LoadPin, UBSAN, and fortify features, there are
        other fixes scattered around in various subsystems where maintainers
        were okay with me carrying them in my tree or were non-responsive but
        the patches were reviewed by others:
      
         - Replace 0-length and 1-element arrays with flexible arrays in
           various subsystems (Paulo Miguel Almeida, Stephen Rothwell, Kees
           Cook)
      
         - randstruct: Disable Clang 15 support (Eric Biggers)
      
         - GCC plugins: Drop -std=gnu++11 flag (Sam James)
      
         - strpbrk(): Refactor to use strchr() (Andy Shevchenko)
      
         - LoadPin LSM: Allow root filesystem switching when non-enforcing
      
         - fortify: Use dynamic object size hints when available
      
         - ext4: Fix CFI function prototype mismatch
      
         - Nouveau: Fix DP buffer size arguments
      
         - hisilicon: Wipe entire crypto DMA pool on error
      
         - coda: Fully allocate sig_inputArgs
      
         - UBSAN: Improve arm64 trap code reporting
      
         - copy_struct_from_user(): Add minimum bounds check on kernel buffer
           size"
      
      * tag 'hardening-v6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        randstruct: disable Clang 15 support
        uaccess: Add minimum bounds check on kernel buffer size
        arm64: Support Clang UBSAN trap codes for better reporting
        coda: Avoid partial allocation of sig_inputArgs
        gcc-plugins: drop -std=gnu++11 to fix GCC 13 build
        lib/string: Use strchr() in strpbrk()
        crypto: hisilicon: Wipe entire pool on error
        net/i40e: Replace 0-length array with flexible array
        io_uring: Replace 0-length array with flexible array
        ext4: Fix function prototype mismatch for ext4_feat_ktype
        i915/gvt: Replace one-element array with flexible-array member
        drm/nouveau/disp: Fix nvif_outp_acquire_dp() argument size
        LoadPin: Allow filesystem switch when not enforcing
        LoadPin: Move pin reporting cleanly out of locking
        LoadPin: Refactor sysctl initialization
        LoadPin: Refactor read-only check into a helper
        ARM: ixp4xx: Replace 0-length arrays with flexible arrays
        fortify: Use __builtin_dynamic_object_size() when available
        rxrpc: replace zero-lenth array with DECLARE_FLEX_ARRAY() helper
      4a7d37e8
    • Linus Torvalds's avatar
      Merge tag 'seccomp-v6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 902d9fcd
      Linus Torvalds authored
      Pull seccomp update from Kees Cook:
      
       - Fix kernel-doc function name ordering to avoid warning (Randy Dunlap)
      
      * tag 'seccomp-v6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        seccomp: fix kernel-doc function name warning
      902d9fcd
    • Linus Torvalds's avatar
      Merge tag 'rcu.2023.02.10a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · 8cc01d43
      Linus Torvalds authored
      Pull RCU updates from Paul McKenney:
      
       - Documentation updates
      
       - Miscellaneous fixes, perhaps most notably:
      
            - Throttling callback invocation based on the number of callbacks
              that are now ready to invoke instead of on the total number of
              callbacks
      
            - Several patches that suppress false-positive boot-time
              diagnostics, for example, due to lockdep not yet being
              initialized
      
            - Make expedited RCU CPU stall warnings dump stacks of any tasks
              that are blocking the stalled grace period. (Normal RCU CPU
              stall warnings have done this for many years)
      
            - Lazy-callback fixes to avoid delays during boot, suspend, and
              resume. (Note that lazy callbacks must be explicitly enabled, so
              this should not (yet) affect production use cases)
      
       - Make kfree_rcu() and friends take advantage of polled grace periods,
         thus reducing memory footprint by almost two orders of magnitude,
         admittedly on a microbenchmark
      
         This also begins the transition from kfree_rcu(p) to
         kfree_rcu_mightsleep(p). This transition was motivated by bugs where
         kfree_rcu(p), which can block, was typed instead of the intended
         kfree_rcu(p, rh)
      
       - SRCU updates, perhaps most notably fixing a bug that causes SRCU to
         fail when booted on a system with a non-zero boot CPU. This
         surprising situation actually happens for kdump kernels on the
         powerpc architecture
      
         This also adds an srcu_down_read() and srcu_up_read(), which act like
         srcu_read_lock() and srcu_read_unlock(), but allow an SRCU read-side
         critical section to be handed off from one task to another
      
       - Clean up the now-useless SRCU Kconfig option
      
         There are a few more commits that are not yet acked or pulled into
         maintainer trees, and these will be in a pull request for a later
         merge window
      
       - RCU-tasks updates, perhaps most notably these fixes:
      
            - A strange interaction between PID-namespace unshare and the
              RCU-tasks grace period that results in a low-probability but
              very real hang
      
            - A race between an RCU tasks rude grace period on a single-CPU
              system and CPU-hotplug addition of the second CPU that can
              result in a too-short grace period
      
            - A race between shrinking RCU tasks down to a single callback
              list and queuing a new callback to some other CPU, but where
              that queuing is delayed for more than an RCU grace period. This
              can result in that callback being stranded on the non-boot CPU
      
       - Torture-test updates and fixes
      
       - Torture-test scripting updates and fixes
      
       - Provide additional RCU CPU stall-warning information in kernels built
         with CONFIG_RCU_CPU_STALL_CPUTIME=y, and restore the full five-minute
         timeout limit for expedited RCU CPU stall warnings
      
      * tag 'rcu.2023.02.10a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu: (80 commits)
        rcu/kvfree: Add kvfree_rcu_mightsleep() and kfree_rcu_mightsleep()
        kernel/notifier: Remove CONFIG_SRCU
        init: Remove "select SRCU"
        fs/quota: Remove "select SRCU"
        fs/notify: Remove "select SRCU"
        fs/btrfs: Remove "select SRCU"
        fs: Remove CONFIG_SRCU
        drivers/pci/controller: Remove "select SRCU"
        drivers/net: Remove "select SRCU"
        drivers/md: Remove "select SRCU"
        drivers/hwtracing/stm: Remove "select SRCU"
        drivers/dax: Remove "select SRCU"
        drivers/base: Remove CONFIG_SRCU
        rcu: Disable laziness if lazy-tracking says so
        rcu: Track laziness during boot and suspend
        rcu: Remove redundant call to rcu_boost_kthread_setaffinity()
        rcu: Allow up to five minutes expedited RCU CPU stall-warning timeouts
        rcu: Align the output of RCU CPU stall warning messages
        rcu: Add RCU stall diagnosis information
        sched: Add helper nr_context_switches_cpu()
        ...
      8cc01d43
    • Linus Torvalds's avatar
      Merge tag 'cgroup-for-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 8ca8d89b
      Linus Torvalds authored
      Pull cgroup updates from Tejun Heo:
       "All the changes are trivial: documentation updates and a trivial code
        cleanup"
      
      * tag 'cgroup-for-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup/cpuset: fix a few kernel-doc warnings & coding style
        docs: cgroup-v1: use numbered lists for user interface setup
        docs: cgroup-v1: add internal cross-references
        docs: cgroup-v1: make swap extension subsections subsections
        docs: cgroup-v1: use bullet lists for list of stat file tables
        docs: cgroup-v1: move hierarchy of accounting caption
        docs: cgroup-v1: fix footnotes
        docs: cgroup-v1: use code block for locking order schema
        docs: cgroup-v1: wrap remaining admonitions in admonition blocks
        docs: cgroup-v1: replace custom note constructs with appropriate admonition blocks
        cgroup/cpuset: no need to explicitly init a global static variable
      8ca8d89b
    • Linus Torvalds's avatar
      Merge tag 'wq-for-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · 3e82b41e
      Linus Torvalds authored
      Pull workqueue updates from Tejun Heo:
      
       - When per-cpu workqueue workers expire after sitting idle for too
         long, they used to wake up to the CPU that they're bound to in order
         to exit. This unfortunately could cause unwanted disturbances on CPUs
         isolated for e.g. RT applications.
      
         The worker exit path is restructured so that an existing worker is
         unbound from its CPU before being woken up for the last time,
         allowing it to migrate away from an isolated CPU for exiting.
      
       - A couple debug improvements. Watchdog dump is made more compact and
         workqueue now warns if used-after-free during the RCU grace period
         after destroy_workqueue().
      
      * tag 'wq-for-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: Fold rebind_worker() within rebind_workers()
        workqueue: Unbind kworkers before sending them to exit()
        workqueue: Don't hold any lock while rcuwait'ing for !POOL_MANAGER_ACTIVE
        workqueue: Convert the idle_timer to a timer + work_struct
        workqueue: Factorize unbind/rebind_workers() logic
        workqueue: Protects wq_unbound_cpumask with wq_pool_attach_mutex
        workqueue: Make show_pwq() use run-length encoding
        workqueue: Add a new flag to spot the potential UAF error
      3e82b41e
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9e58df97
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "Updates for the interrupt subsystem:
      
        Core:
      
         - Move the interrupt affinity spreading mechanism into lib/group_cpus
           so it can be used for similar spreading requirements, e.g. in the
           block multi-queue code
      
           This also contains a first usecase in the block multi-queue code
           which Jens asked to take along with the librarization
      
         - Improve irqdomain locking to close a number race conditions which
           can be observed with massive parallel device driver probing
      
         - Enforce and document the semantics of disable_irq() which cannot be
           invoked safely from non-sleepable context
      
         - Move the IPI multiplexing code from the Apple AIC driver into the
           core, so it can be reused by RISCV
      
        Drivers:
      
         - Plug OF node refcounting leaks in various drivers
      
         - Correctly mark level triggered interrupts in the Broadcom L2
           drivers
      
         - The usual small fixes and improvements
      
         - No new drivers for the record!"
      
      * tag 'irq-core-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (42 commits)
        irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts
        irqchip/irq-brcmstb-l2: Set IRQ_LEVEL for level triggered interrupts
        irqdomain: Switch to per-domain locking
        irqchip/mvebu-odmi: Use irq_domain_create_hierarchy()
        irqchip/loongson-pch-msi: Use irq_domain_create_hierarchy()
        irqchip/gic-v3-mbi: Use irq_domain_create_hierarchy()
        irqchip/gic-v3-its: Use irq_domain_create_hierarchy()
        irqchip/gic-v2m: Use irq_domain_create_hierarchy()
        irqchip/alpine-msi: Use irq_domain_add_hierarchy()
        x86/uv: Use irq_domain_create_hierarchy()
        x86/ioapic: Use irq_domain_create_hierarchy()
        irqdomain: Clean up irq_domain_push/pop_irq()
        irqdomain: Drop leftover brackets
        irqdomain: Drop dead domain-name assignment
        irqdomain: Drop revmap mutex
        irqdomain: Fix domain registration race
        irqdomain: Fix mapping-creation race
        irqdomain: Refactor __irq_domain_alloc_irqs()
        irqdomain: Look for existing mapping only once
        irqdomain: Drop bogus fwspec-mapping error handling
        ...
      9e58df97
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 560b8030
      Linus Torvalds authored
      Pull timer updates from Thomas Gleixner:
       "Updates for timekeeping, timers and clockevent/source drivers:
      
        Core:
      
         - Yet another round of improvements to make the clocksource watchdog
           more robust:
      
             - Relax the clocksource-watchdog skew criteria to match the NTP
               criteria.
      
             - Temporarily skip the watchdog when high memory latencies are
               detected which can lead to false-positives.
      
             - Provide an option to enable TSC skew detection even on systems
               where TSC is marked as reliable.
      
           Sigh!
      
         - Initialize the restart block in the nanosleep syscalls to be
           directed to the no restart function instead of doing a partial
           setup on entry.
      
           This prevents an erroneous restart_syscall() invocation from
           corrupting user space data. While such a situation is clearly a
           user space bug, preventing this is a correctness issue and caters
           to the least suprise principle.
      
         - Ignore the hrtimer slack for realtime tasks in schedule_hrtimeout()
           to align it with the nanosleep semantics.
      
        Drivers:
      
         - The obligatory new driver bindings for Mediatek, Rockchip and
           RISC-V variants.
      
         - Add support for the C3STOP misfeature to the RISC-V timer to handle
           the case where the timer stops in deeper idle state.
      
         - Set up a static key in the RISC-V timer correctly before first use.
      
         - The usual small improvements and fixes all over the place"
      
      * tag 'timers-core-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (30 commits)
        clocksource/drivers/timer-sun4i: Add CLOCK_EVT_FEAT_DYNIRQ
        clocksource/drivers/em_sti: Mark driver as non-removable
        clocksource/drivers/sh_tmu: Mark driver as non-removable
        clocksource/drivers/riscv: Patch riscv_clock_next_event() jump before first use
        clocksource/drivers/timer-microchip-pit64b: Add delay timer
        clocksource/drivers/timer-microchip-pit64b: Select driver only on ARM
        dt-bindings: timer: sifive,clint: add comaptibles for T-Head's C9xx
        dt-bindings: timer: mediatek,mtk-timer: add MT8365
        clocksource/drivers/riscv: Get rid of clocksource_arch_init() callback
        clocksource/drivers/sh_cmt: Mark driver as non-removable
        clocksource/drivers/timer-microchip-pit64b: Drop obsolete dependency on COMPILE_TEST
        clocksource/drivers/riscv: Increase the clock source rating
        clocksource/drivers/timer-riscv: Set CLOCK_EVT_FEAT_C3STOP based on DT
        dt-bindings: timer: Add bindings for the RISC-V timer device
        RISC-V: time: initialize hrtimer based broadcast clock event device
        dt-bindings: timer: rk-timer: Add rktimer for rv1126
        time/debug: Fix memory leak with using debugfs_lookup()
        clocksource: Enable TSC watchdog checking of HPET and PMTMR only when requested
        posix-timers: Use atomic64_try_cmpxchg() in __update_gt_cputime()
        clocksource: Verify HPET and PMTMR when TSC unverified
        ...
      560b8030
    • Linus Torvalds's avatar
      Merge tag 'x86-cleanups-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 056612fd
      Linus Torvalds authored
      Pull miscellaneous x86 cleanups from Thomas Gleixner:
      
       - Correct the common copy and pasted mishandling of kstrtobool() in the
         strict_sas_size() setup function
      
       - Make recalibrate_cpu_khz() an GPL only export
      
       - Check TSC feature before doing anything else which avoids pointless
         code execution if TSC is not available
      
       - Remove or fixup stale and misleading comments
      
       - Remove unused or pointelessly duplicated variables
      
       - Spelling and typo fixes
      
      * tag 'x86-cleanups-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/hotplug: Remove incorrect comment about mwait_play_dead()
        x86/tsc: Do feature check as the very first thing
        x86/tsc: Make recalibrate_cpu_khz() export GPL only
        x86/cacheinfo: Remove unused trace variable
        x86/Kconfig: Fix spellos & punctuation
        x86/signal: Fix the value returned by strict_sas_size()
        x86/cpu: Remove misleading comment
        x86/setup: Move duplicate boot_cpu_data definition out of the ifdeffery
        x86/boot/e820: Fix typo in e820.c comment
      056612fd
    • Linus Torvalds's avatar
      Merge tag 'x86_vdso_for_v6.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3f0b0903
      Linus Torvalds authored
      Pull x86 vdso updates from Borislav Petkov:
      
       - Add getcpu support for the 32-bit version of the vDSO
      
       - Some smaller fixes
      
      * tag 'x86_vdso_for_v6.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/vdso: Fix -Wmissing-prototypes warnings
        x86/vdso: Fake 32bit VDSO build on 64bit compile for vgetcpu
        selftests: Emit a warning if getcpu() is missing on 32bit
        x86/vdso: Provide getcpu for x86-32.
        x86/cpu: Provide the full setup for getcpu() on x86-32
        x86/vdso: Move VDSO image init to vdso2c generated code
      3f0b0903
    • Linus Torvalds's avatar
      Merge tag 'x86_microcode_for_v6.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · efebca0b
      Linus Torvalds authored
      Pull x86 microcode loader updates from Borislav Petkov:
      
       - Fix mixed steppings support on AMD which got broken somewhere along
         the way
      
       - Improve revision reporting
      
       - Properly check CPUID capabilities after late microcode upgrade to
         avoid false positives
      
       - A garden variety of other small fixes
      
      * tag 'x86_microcode_for_v6.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/microcode/core: Return an error only when necessary
        x86/microcode/AMD: Fix mixed steppings support
        x86/microcode/AMD: Add a @cpu parameter to the reloading functions
        x86/microcode/amd: Remove load_microcode_amd()'s bsp parameter
        x86/microcode: Allow only "1" as a late reload trigger value
        x86/microcode/intel: Print old and new revision during early boot
        x86/microcode/intel: Pass the microcode revision to print_ucode_info() directly
        x86/microcode: Adjust late loading result reporting message
        x86/microcode: Check CPU capabilities after late microcode update correctly
        x86/microcode: Add a parameter to microcode_check() to store CPU capabilities
        x86/microcode: Use the DEVICE_ATTR_RO() macro
        x86/microcode/AMD: Handle multiple glued containers properly
        x86/microcode/AMD: Rename a couple of functions
      efebca0b
    • Linus Torvalds's avatar
      Merge tag 'x86_cache_for_v6.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · aa8c3db4
      Linus Torvalds authored
      Pull x86 resource control updates from Borislav Petkov:
      
       - Add support for a new AMD feature called slow memory bandwidth
         allocation. Its goal is to control resource allocation in external
         slow memory which is connected to the machine like for example
         through CXL devices, accelerators etc
      
      * tag 'x86_cache_for_v6.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/resctrl: Fix a silly -Wunused-but-set-variable warning
        Documentation/x86: Update resctrl.rst for new features
        x86/resctrl: Add interface to write mbm_local_bytes_config
        x86/resctrl: Add interface to write mbm_total_bytes_config
        x86/resctrl: Add interface to read mbm_local_bytes_config
        x86/resctrl: Add interface to read mbm_total_bytes_config
        x86/resctrl: Support monitor configuration
        x86/resctrl: Add __init attribute to rdt_get_mon_l3_config()
        x86/resctrl: Detect and configure Slow Memory Bandwidth Allocation
        x86/resctrl: Include new features in command line options
        x86/cpufeatures: Add Bandwidth Monitoring Event Configuration feature flag
        x86/resctrl: Add a new resource type RDT_RESOURCE_SMBA
        x86/cpufeatures: Add Slow Memory Bandwidth Allocation feature flag
        x86/resctrl: Replace smp_call_function_many() with on_each_cpu_mask()
      aa8c3db4
    • Linus Torvalds's avatar
      Merge tag 'x86_alternatives_for_v6.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1adce1b9
      Linus Torvalds authored
      Pull x86 asm alternatives updates from Borislav Petkov:
      
       - Teach the static_call patching infrastructure to handle conditional
         tall calls properly which can be static calls too
      
       - Add proper struct alt_instr.flags which controls different aspects of
         insn patching behavior
      
      * tag 'x86_alternatives_for_v6.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/static_call: Add support for Jcc tail-calls
        x86/alternatives: Teach text_poke_bp() to patch Jcc.d32 instructions
        x86/alternatives: Introduce int3_emulate_jcc()
        x86/alternatives: Add alt_instr.flags
      1adce1b9
    • Linus Torvalds's avatar
      Merge tag 'edac_updates_for_v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · d9de5ce8
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
      
       - Add a driver for the RAS functionality on Xilinx's on chip memory
         controller
      
       - Add support for decoding errors from the first and second level
         memory on SKL-based hardware
      
       - Add support for the memory controllers in Intel Granite Rapids and
         Emerald Rapids machines
      
       - First round of amd64_edac driver simplification and removal of
         unneeded functionality
      
       - The usual cleanups and fixes
      
      * tag 'edac_updates_for_v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC/amd64: Shut up an -Werror,-Wsometimes-uninitialized clang false positive
        EDAC/amd64: Remove early_channel_count()
        EDAC/amd64: Remove PCI Function 0
        EDAC/amd64: Remove PCI Function 6
        EDAC/amd64: Remove scrub rate control for Family 17h and later
        EDAC/amd64: Don't set up EDAC PCI control on Family 17h+
        EDAC/i10nm: Add driver decoder for Sapphire Rapids server
        EDAC/i10nm: Add Intel Granite Rapids server support
        EDAC/i10nm: Make more configurations CPU model specific
        EDAC/i10nm: Add Intel Emerald Rapids server support
        EDAC/skx_common: Delete duplicated and unreachable code
        EDAC/skx_common: Enable EDAC support for the "near" memory
        EDAC/qcom: Add platform_device_id table for module autoloading
        EDAC/zynqmp: Add EDAC support for Xilinx ZynqMP OCM
        dt-bindings: edac: Add bindings for Xilinx ZynqMP OCM
      d9de5ce8
    • Linus Torvalds's avatar
      Merge tag 'ras_core_for_v6.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0246725d
      Linus Torvalds authored
      Pull RAS updates from Borislav Petkov:
      
       - Add support for reporting more bits of the physical address on error,
         on newer AMD CPUs
      
       - Mask out bits which don't belong to the address of the error being
         reported
      
      * tag 'ras_core_for_v6.3_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce: Mask out non-address bits from machine check bank
        x86/mce: Add support for Extended Physical Address MCA changes
        x86/mce: Define a function to extract ErrorAddr from MCA_ADDR
      0246725d
    • Linus Torvalds's avatar
      Merge tag 'x86-platform-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 89f5349e
      Linus Torvalds authored
      Pull x86 platform update from Ingo Molnar:
      
       - Simplify add_rtc_cmos()
      
       - Use strscpy() in the mcelog code
      
      * tag 'x86-platform-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce/dev-mcelog: use strscpy() to instead of strncpy()
        x86/rtc: Simplify PNP ids check
      89f5349e
    • Linus Torvalds's avatar
      Merge tag 'x86-mm-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 238b05ec
      Linus Torvalds authored
      Pull x86 mm update from Ingo Molnar:
       "Micro-optimize __flush_tlb_all()"
      
      * tag 'x86-mm-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpu: Use cpu_feature_enabled() when checking global pages support
      238b05ec
    • Linus Torvalds's avatar
      Merge tag 'x86-fpu-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2e0ddb34
      Linus Torvalds authored
      Pull x86 fpu updates from Ingo Molnar:
      
       - Replace zero-length array in struct xregs_state with flexible-array
         member, to help the enabling of stricter compiler checks.
      
       - Don't set TIF_NEED_FPU_LOAD for PF_IO_WORKER threads.
      
      * tag 'x86-fpu-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/fpu: Don't set TIF_NEED_FPU_LOAD for PF_IO_WORKER threads
        x86/fpu: Replace zero-length array in struct xregs_state with flexible-array member
      2e0ddb34
    • Linus Torvalds's avatar
      Merge tag 'x86-core-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8a68bd3e
      Linus Torvalds authored
      Pull x86 core updates from Ingo Molnar:
      
       - Clean up the signal frame layout tests
      
       - Suppress KMSAN false positive reports in arch_within_stack_frames()
      
      * tag 'x86-core-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Suppress KMSAN reports in arch_within_stack_frames()
        x86/signal/compat: Move sigaction_compat_abi() to signal_64.c
        x86/signal: Move siginfo field tests
      8a68bd3e
    • Linus Torvalds's avatar
      Merge tag 'x86-build-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 572640f0
      Linus Torvalds authored
      Pull x86 build update from Ingo Molnar:
       "Make the 64-bit defconfig the x86 default for all builds, unless
        x86-32 is requested explicitly"
      
      * tag 'x86-build-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/build: Make 64-bit defconfig the default
      572640f0
    • Linus Torvalds's avatar
      Merge tag 'x86-boot-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 35011c67
      Linus Torvalds authored
      Pull x86 boot updates from Ingo Molnar:
      
       - Robustify/fix calling startup_{32,64}() from the decompressor code,
         and removing x86 quirk from scripts/head-object-list.txt as a result.
      
       - Do not register processors that cannot be onlined for x2APIC
      
      * tag 'x86-boot-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/acpi/boot: Do not register processors that cannot be onlined for x2APIC
        scripts/head-object-list: Remove x86 from the list
        x86/boot: Robustify calling startup_{32,64}() from the decompressor code
      35011c67
    • Linus Torvalds's avatar
      Merge tag 'x86-asm-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6be3dafc
      Linus Torvalds authored
      Pull x86 asm updates from Ingo Molnar:
       "Header fixes and a DocBook fix"
      
      * tag 'x86-asm-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/lib: Fix compiler and kernel-doc warnings
        x86/lib: Include <asm/misc.h> to fix a missing prototypes warning at build time
      6be3dafc
    • Linus Torvalds's avatar
      Merge tag 'sched-core-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1f2d9ffc
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
      
       - Improve the scalability of the CFS bandwidth unthrottling logic with
         large number of CPUs.
      
       - Fix & rework various cpuidle routines, simplify interaction with the
         generic scheduler code. Add __cpuidle methods as noinstr to objtool's
         noinstr detection and fix boatloads of cpuidle bugs & quirks.
      
       - Add new ABI: introduce MEMBARRIER_CMD_GET_REGISTRATIONS, to query
         previously issued registrations.
      
       - Limit scheduler slice duration to the sysctl_sched_latency period, to
         improve scheduling granularity with a large number of SCHED_IDLE
         tasks.
      
       - Debuggability enhancement on sys_exit(): warn about disabled IRQs,
         but also enable them to prevent a cascade of followup problems and
         repeat warnings.
      
       - Fix the rescheduling logic in prio_changed_dl().
      
       - Micro-optimize cpufreq and sched-util methods.
      
       - Micro-optimize ttwu_runnable()
      
       - Micro-optimize the idle-scanning in update_numa_stats(),
         select_idle_capacity() and steal_cookie_task().
      
       - Update the RSEQ code & self-tests
      
       - Constify various scheduler methods
      
       - Remove unused methods
      
       - Refine __init tags
      
       - Documentation updates
      
       - Misc other cleanups, fixes
      
      * tag 'sched-core-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (110 commits)
        sched/rt: pick_next_rt_entity(): check list_entry
        sched/deadline: Add more reschedule cases to prio_changed_dl()
        sched/fair: sanitize vruntime of entity being placed
        sched/fair: Remove capacity inversion detection
        sched/fair: unlink misfit task from cpu overutilized
        objtool: mem*() are not uaccess safe
        cpuidle: Fix poll_idle() noinstr annotation
        sched/clock: Make local_clock() noinstr
        sched/clock/x86: Mark sched_clock() noinstr
        x86/pvclock: Improve atomic update of last_value in pvclock_clocksource_read()
        x86/atomics: Always inline arch_atomic64*()
        cpuidle: tracing, preempt: Squash _rcuidle tracing
        cpuidle: tracing: Warn about !rcu_is_watching()
        cpuidle: lib/bug: Disable rcu_is_watching() during WARN/BUG
        cpuidle: drivers: firmware: psci: Dont instrument suspend code
        KVM: selftests: Fix build of rseq test
        exit: Detect and fix irq disabled state in oops
        cpuidle, arm64: Fix the ARM64 cpuidle logic
        cpuidle: mvebu: Fix duplicate flags assignment
        sched/fair: Limit sched slice duration
        ...
      1f2d9ffc
    • Linus Torvalds's avatar
      Merge tag 'perf-core-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a2f0e7ee
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
      
       - Optimize perf_sample_data layout
      
       - Prepare sample data handling for BPF integration
      
       - Update the x86 PMU driver for Intel Meteor Lake
      
       - Restructure the x86 uncore code to fix a SPR (Sapphire Rapids)
         discovery breakage
      
       - Fix the x86 Zhaoxin PMU driver
      
       - Cleanups
      
      * tag 'perf-core-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)
        perf/x86/intel/uncore: Add Meteor Lake support
        x86/perf/zhaoxin: Add stepping check for ZXC
        perf/x86/intel/ds: Fix the conversion from TSC to perf time
        perf/x86/uncore: Don't WARN_ON_ONCE() for a broken discovery table
        perf/x86/uncore: Add a quirk for UPI on SPR
        perf/x86/uncore: Ignore broken units in discovery table
        perf/x86/uncore: Fix potential NULL pointer in uncore_get_alias_name
        perf/x86/uncore: Factor out uncore_device_to_die()
        perf/core: Call perf_prepare_sample() before running BPF
        perf/core: Introduce perf_prepare_header()
        perf/core: Do not pass header for sample ID init
        perf/core: Set data->sample_flags in perf_prepare_sample()
        perf/core: Add perf_sample_save_brstack() helper
        perf/core: Add perf_sample_save_raw_data() helper
        perf/core: Add perf_sample_save_callchain() helper
        perf/core: Save the dynamic parts of sample data size
        x86/kprobes: Use switch-case for 0xFF opcodes in prepare_emulation
        perf/core: Change the layout of perf_sample_data
        perf/x86/msr: Add Meteor Lake support
        perf/x86/cstate: Add Meteor Lake support
        ...
      a2f0e7ee
    • Linus Torvalds's avatar
      Merge tag 'locking-core-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6e649d08
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
      
       - rwsem micro-optimizations
      
       - spinlock micro-optimizations
      
       - cleanups, simplifications
      
      * tag 'locking-core-2023-02-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        vduse: Remove include of rwlock.h
        locking/lockdep: Remove lockdep_init_map_crosslock.
        x86/ACPI/boot: Use try_cmpxchg() in __acpi_{acquire,release}_global_lock()
        x86/PAT: Use try_cmpxchg() in set_page_memtype()
        locking/rwsem: Disable preemption in all down_write*() and up_write() code paths
        locking/rwsem: Disable preemption in all down_read*() and up_read() code paths
        locking/rwsem: Prevent non-first waiter from spinning in down_write() slowpath
        locking/qspinlock: Micro-optimize pending state waiting for unlock
      6e649d08
  2. 20 Feb, 2023 12 commits
    • Linus Torvalds's avatar
      Merge tag 'asm-generic-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic · db77b850
      Linus Torvalds authored
      Pull asm-generic cleanups from Arnd Bergmann:
       "Only three minor changes: a cross-platform series from Mike Rapoport
        to consolidate asm/agp.h between architectures, and a correctness
        change for __generic_cmpxchg_local() from Matt Evans"
      
      * tag 'asm-generic-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
        char/agp: introduce asm-generic/agp.h
        char/agp: consolidate {alloc,free}_gatt_pages()
        locking/atomic: cmpxchg: Make __generic_cmpxchg_local compare against zero-extended 'old' value
      db77b850
    • Linus Torvalds's avatar
      Merge tag 'soc-dt-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 950b6662
      Linus Torvalds authored
      Pull SoC DT updates from Arnd Bergmann:
       "About a quarter of the changes are for 32-bit arm, mostly filling in
        device support for existing machines and adding minor cleanups, mostly
        for Qualcomm and Samsung based machines.
      
        Two new 32-bit SoCs are added, both are quad-core Cortex-A7 chips from
        Rockchips that have been around for a while but were lacking kernel
        support so far: RV1126 is a Vision SoC with an NPU and is used in the
        Edgeble Neural Compute Module 2(Neu2) board, while RK3128 is design
        for TV boxes and so far only comes with a dts for its refernece
        design.
      
        The other 32-bit boards that were added are two ASpeed AST2600 based
        BMC boards, the Microchip sam9x60_curiosity development board (Armv5
        based!), the Enclustra PE1 FPGA-SoM baseboard, and a few more boards
        for i.MX53 and i.MX6ULL.
      
        On the RISC-V side, there are fewer patches, but a total of ten new
        single-board computers based on variations of the Allwinner D1/T113
        chip, plus one more board based on Microchip Polarfire.
      
        As usual, arm64 has by far the most changes here, with over 700
        non-merge changesets, among them over 400 alone for Qualcomm. The
        newly added SoCs this time are all recent high-end embedded SoCs for
        various markets, each on comes with support for its reference board:
      
         - Qualcomm SM8550 (Snapdragon 8 Gen 2) for mobile phones
         - Qualcomm QDU1000/QRU1000 5G RAN platform
         - Rockchips RK3588/RK3588s for tablets, chromebooks and SBCs
         - TI J784S4 for industrial and automotive applications
      
        In total, there are 46 new arm64 machines:
         - Reference platforms for each of the five new SoCs
         - Three Amlogic based development boards
         - Six embedded machines based on NXP i.MX8MM and i.MX8MP
         - The Mediatek mt7986a based Banana Pi R3 router
         - Six tablets based on Qualcomm MSM8916 (Snapdragon 410), SM6115
           (Snapdragon 662) and SM8250 (Snapdragon 865)
         - Two LTE dongles, also based on MSM8916
         - Seven mobile phones, based on Qualcomm MSM8953 (Snapdragon 610),
           SDM450 and SDM632
         - Three chromebooks based on Qualcomm SC7280 (Snapdragon 7c)
         - Nine development boards based on Rockchips RK3588, RK3568, RK3566
           and RK3328.
         - Five development machines based on TI K3 (AM642/AM654/AM68/AM69)
      
        The cleanup of dtc warnings continues across all platforms, adding to
        the total number of changes"
      
      * tag 'soc-dt-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (1035 commits)
        dt-bindings: riscv: correct starfive visionfive 2 compatibles
        ARM: dts: socfpga: Add enclustra PE1 devicetree
        dt-bindings: altera: Add enclustra mercury PE1
        arm64: dts: qcom: msm8996: align RPM G-Link clock-controller node with bindings
        arm64: dts: qcom: qcs404: align RPM G-Link node with bindings
        arm64: dts: qcom: ipq6018: align RPM G-Link node with bindings
        arm64: dts: qcom: sm8550: remove invalid interconnect property from cryptobam
        arm64: dts: qcom: sc7280: Adjust zombie PWM frequency
        arm64: dts: qcom: sc8280xp-pmics: Specify interrupt parent explicitly
        arm64: dts: qcom: sm7225-fairphone-fp4: enable remaining i2c busses
        arm64: dts: qcom: sm7225-fairphone-fp4: move status property down
        arm64: dts: qcom: pmk8350: Use the correct PON compatible
        arm64: dts: qcom: sc8280xp-x13s: Enable external display
        arm64: dts: qcom: sc8280xp-crd: Introduce pmic_glink
        arm64: dts: qcom: sc8280xp: Add USB-C-related DP blocks
        arm64: dts: qcom: sm8350-hdk: enable GPU
        arm64: dts: qcom: sm8350: add GPU, GMU, GPU CC and SMMU nodes
        arm64: dts: qcom: sm8350: finish reordering nodes
        arm64: dts: qcom: sm8350: move more nodes to correct place
        arm64: dts: qcom: sm8350: reorder device nodes
        ...
      950b6662
    • Linus Torvalds's avatar
      Merge tag 'soc-defconfig-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · c72e04c2
      Linus Torvalds authored
      Pull ARM defconfigs updates from Arnd Bergmann:
       "As usual, this contains all the patches to enable options for newly
        added device drivers in the 32-bit and 64-bit defconfig files.
      
        I have sorted the files according to the changes to Kconfig files,
        to make it easier to check what has changed compared to the 'make
        savedefconfig' output.
      
        The most notable change this time is a series from Mark Brown to add
        a 'virtconfig' target for arm64, which is for the moment the same as
        the 'defconfig' target but disables all the top-level SoC specific
        options in order to have a smaller and faster kernel build"
      
      * tag 'soc-defconfig-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (39 commits)
        arm64: defconfig: enable drivers required by the Qualcomm SA8775P platform
        arm64: defconfig: Enable DisplayPort on SC8280XP laptops
        arm64: configs: Add virtconfig
        kbuild: Provide a version of merge_into_defconfig without override warnings
        scripts: merge_config: Add option to suppress warning on overrides
        ARM: reorder defconfig files
        arm64: reorder defconfig
        arm64: defconfig: enable Qualcomm SDAM nvmem driver
        arm64: defconfig: enable SM8450 DISPCC clock driver
        ARM: defconfig: Add IOSCHED_BFQ to the default configs
        ARM: configs: multi_v7: enable NVMEM driver for STM32
        ARM: Add wpcm450_defconfig for Nuvoton WPCM450
        arm64: defconfig: Enable DMA_RESTRICTED_POOL
        arm64: defconfig: Enable missing configs for mt8192-asurada
        riscv: defconfig: Enable the Allwinner D1 platform and drivers
        ARM: imx_v6_v7_defconfig: Don't enable PROVE_LOCKING
        ARM: multi_v7_defconfig: Add GXP Fan and SPI support
        ARM: add multi_v7_lpae_defconfig
        kbuild: Add config fragment merge functionality
        ARM: multi_v7_defconfig: Add options to support TQMLS102xA series
        ...
      c72e04c2
    • Linus Torvalds's avatar
      Merge tag 'arm-soc-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · b32c6e02
      Linus Torvalds authored
      Pull ARM SoC updates from Arnd Bergmann:
       "The majority of the changes are for the OMAP2 platform, mostly
        removing some dead code that got left behind from previous cleanups.
      
        Aside from that, there are very minor updates and correctness fixes
        for Zynq, i.MX, Samsung, Broadcom, AT91, ep93xx, and OMAP1"
      
      * tag 'arm-soc-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (26 commits)
        dt-bindings: soc: samsung: exynos-pmu: allow phys as child
        ARM: imx: mach-imx6ul: add imx6ulz support
        ARM: imx: Call ida_simple_remove() for ida_simple_get
        arm64: drop redundant "ARMv8" from Kconfig option title
        ARM: ep93xx: Convert to use descriptors for GPIO LEDs
        ARM: s3c: fix s3c64xx_set_timer_source prototype
        ARM: OMAP2+: Fix spelling typos in comment
        ARM: OMAP2+: Remove unneeded #include <linux/pinctrl/machine.h>
        ARM: OMAP2+: Remove unneeded #include <linux/pinctrl/pinmux.h>
        ARM: OMAP1: call platform_device_put() in error case in omap1_dm_timer_init()
        ARM: BCM63xx: remove useless goto statement
        ARM: omap2: make functions static
        ARM: omap2: remove unused omap2_pm_init
        ARM: omap2: remove unused declarations
        ARM: omap2: remove unused functions
        ARM: omap2: smartreflex: remove on_init control
        ARM: omap2: remove APLL control
        ARM: omap2: simplify clock2xxx header
        ARM: omap2: remove unused omap_hwmod_reset.c
        ARM: omap2: remove unused headers
        ...
      b32c6e02
    • Linus Torvalds's avatar
      Merge tag 'arm-boardfile-remove-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · ff0c7e18
      Linus Torvalds authored
      Pull ARM SoC boardfile updates from Arnd Bergmann
       "Unused boardfile removal for 6.3
      
        This is a follow-up to the deprecation of most of the old-style board
        files that was merged in linux-6.0, removing them for good.
      
        This branch is almost exclusively dead code removal based on those
        annotations. Some device driver removals went through separate
        subsystem trees, but the majority is in the same branch, in order to
        better handle dependencies between the patches and avoid breaking
        bisection.
      
        Unfortunately that leads to merge conflicts against other changes in
        the subsystem trees, but they should all be trivial to resolve by
        removing the files.
      
        See commit 7d0d3fa7 ("Merge tag 'arm-boardfiles-6.0' of
        git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc") for the
        description of which machines were marked unused and are now removed.
      
        The only removals that got postponed are Terastation WXL (mv78xx0) and
        Jornada720 (StrongARM1100), which turned out to still have potential
        users"
      
      * tag 'arm-boardfile-remove-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (91 commits)
        mmc: omap: drop TPS65010 dependency
        ARM: pxa: restore mfp-pxa320.h
        usb: ohci-omap: avoid unused-variable warning
        ARM: debug: remove references in DEBUG_UART_8250_SHIFT to removed configs
        ARM: s3c: remove obsolete s3c-cpu-freq header
        MAINTAINERS: adjust SAMSUNG SOC CLOCK DRIVERS after s3c24xx support removal
        MAINTAINERS: update file entries after arm multi-platform rework and mach-pxa removal
        ARM: remove CONFIG_UNUSED_BOARD_FILES
        mfd: remove htc-pasic3 driver
        w1: remove ds1wm driver
        usb: remove ohci-tmio driver
        fbdev: remove w100fb driver
        fbdev: remove tmiofb driver
        mmc: remove tmio_mmc driver
        mfd: remove ucb1400 support
        mfd: remove toshiba tmio drivers
        rtc: remove v3020 driver
        power: remove pda_power supply driver
        ASoC: pxa: remove unused board support
        pcmcia: remove unused pxa/sa1100 drivers
        ...
      ff0c7e18
    • Linus Torvalds's avatar
      Merge tag 'for-6.3/block-2023-02-16' of git://git.kernel.dk/linux · 5b0ed596
      Linus Torvalds authored
      Pull block updates from Jens Axboe:
      
       - NVMe updates via Christoph:
            - Small improvements to the logging functionality (Amit Engel)
            - Authentication cleanups (Hannes Reinecke)
            - Cleanup and optimize the DMA mapping cod in the PCIe driver
              (Keith Busch)
            - Work around the command effects for Format NVM (Keith Busch)
            - Misc cleanups (Keith Busch, Christoph Hellwig)
            - Fix and cleanup freeing single sgl (Keith Busch)
      
       - MD updates via Song:
            - Fix a rare crash during the takeover process
            - Don't update recovery_cp when curr_resync is ACTIVE
            - Free writes_pending in md_stop
            - Change active_io to percpu
      
       - Updates to drbd, inching us closer to unifying the out-of-tree driver
         with the in-tree one (Andreas, Christoph, Lars, Robert)
      
       - BFQ update adding support for multi-actuator drives (Paolo, Federico,
         Davide)
      
       - Make brd compliant with REQ_NOWAIT (me)
      
       - Fix for IOPOLL and queue entering, fixing stalled IO waiting on
         timeouts (me)
      
       - Fix for REQ_NOWAIT with multiple bios (me)
      
       - Fix memory leak in blktrace cleanup (Greg)
      
       - Clean up sbitmap and fix a potential hang (Kemeng)
      
       - Clean up some bits in BFQ, and fix a bug in the request injection
         (Kemeng)
      
       - Clean up the request allocation and issue code, and fix some bugs
         related to that (Kemeng)
      
       - ublk updates and fixes:
            - Add support for unprivileged ublk (Ming)
            - Improve device deletion handling (Ming)
            - Misc (Liu, Ziyang)
      
       - s390 dasd fixes (Alexander, Qiheng)
      
       - Improve utility of request caching and fixes (Anuj, Xiao)
      
       - zoned cleanups (Pankaj)
      
       - More constification for kobjs (Thomas)
      
       - blk-iocost cleanups (Yu)
      
       - Remove bio splitting from drivers that don't need it (Christoph)
      
       - Switch blk-cgroups to use struct gendisk. Some of this is now
         incomplete as select late reverts were done. (Christoph)
      
       - Add bvec initialization helpers, and convert callers to use that
         rather than open-coding it (Christoph)
      
       - Misc fixes and cleanups (Jinke, Keith, Arnd, Bart, Li, Martin,
         Matthew, Ulf, Zhong)
      
      * tag 'for-6.3/block-2023-02-16' of git://git.kernel.dk/linux: (169 commits)
        brd: use radix_tree_maybe_preload instead of radix_tree_preload
        block: use proper return value from bio_failfast()
        block: bio-integrity: Copy flags when bio_integrity_payload is cloned
        block: Fix io statistics for cgroup in throttle path
        brd: mark as nowait compatible
        brd: check for REQ_NOWAIT and set correct page allocation mask
        brd: return 0/-error from brd_insert_page()
        block: sync mixed merged request's failfast with 1st bio's
        Revert "blk-cgroup: pin the gendisk in struct blkcg_gq"
        Revert "blk-cgroup: pass a gendisk to blkg_lookup"
        Revert "blk-cgroup: delay blk-cgroup initialization until add_disk"
        Revert "blk-cgroup: delay calling blkcg_exit_disk until disk_release"
        Revert "blk-cgroup: move the cgroup information to struct gendisk"
        nvme-pci: remove iod use_sgls
        nvme-pci: fix freeing single sgl
        block: ublk: check IO buffer based on flag need_get_data
        s390/dasd: Fix potential memleak in dasd_eckd_init()
        s390/dasd: sort out physical vs virtual pointers usage
        block: Remove the ALLOC_CACHE_SLACK constant
        block: make kobj_type structures constant
        ...
      5b0ed596
    • Linus Torvalds's avatar
      Merge tag 'for-6.3/dio-2023-02-16' of git://git.kernel.dk/linux · 553637f7
      Linus Torvalds authored
      Pull legacy dio update from Jens Axboe:
       "We only have a few file systems that use the old dio code, make them
        select it rather than build it unconditionally"
      
      * tag 'for-6.3/dio-2023-02-16' of git://git.kernel.dk/linux:
        fs: build the legacy direct I/O code conditionally
        fs: move sb_init_dio_done_wq out of direct-io.c
      553637f7
    • Linus Torvalds's avatar
      Merge tag 'for-6.3/iter-ubuf-2023-02-16' of git://git.kernel.dk/linux · c1ef5003
      Linus Torvalds authored
      Pull io_uring ITER_UBUF conversion from Jens Axboe:
       "Since we now have ITER_UBUF available, switch to using it for single
        ranges as it's more efficient than ITER_IOVEC for that"
      
      * tag 'for-6.3/iter-ubuf-2023-02-16' of git://git.kernel.dk/linux:
        block: use iter_ubuf for single range
        iov_iter: move iter_ubuf check inside restore WARN
        io_uring: use iter_ubuf for single range imports
        io_uring: switch network send/recv to ITER_UBUF
        iov: add import_ubuf()
      c1ef5003
    • Linus Torvalds's avatar
      Merge tag 'for-6.3/io_uring-2023-02-16' of git://git.kernel.dk/linux · cce5fe5e
      Linus Torvalds authored
      Pull io_uring updates from Jens Axboe:
      
       - Cleanup series making the async prep and handling of
         REQ_F_FORCE_ASYNC easier to follow and verify (Dylan)
      
       - Enable specifying specific flags for OP_MSG_RING (Breno)
      
       - Enable use of KASAN with the internal request cache (Breno)
      
       - Split the opcode definition structs into a hot and cold part (Breno)
      
       - OP_MSG_RING fixes (Pavel, me)
      
       - Fix an issue with IOPOLL cancelation and PREEMPT_NONE (me)
      
       - Handle TIF_NOTIFY_RESUME for the io-wq threads that never return to
         userspace (me)
      
       - Add support for using io_uring_register() with a registered ring fd
         (Josh)
      
       - Improve handling of poll on the ring fd (Pavel)
      
       - Series improving the task_work handling (Pavel)
      
       - Misc cleanups, fixes, improvements (Dmitrii, Quanfa, Richard, Pavel,
         me)
      
      * tag 'for-6.3/io_uring-2023-02-16' of git://git.kernel.dk/linux: (51 commits)
        io_uring: Support calling io_uring_register with a registered ring fd
        io_uring,audit: don't log IORING_OP_MADVISE
        io_uring: mark task TASK_RUNNING before handling resume/task work
        io_uring: always go async for unsupported open flags
        io_uring: always go async for unsupported fadvise flags
        io_uring: for requests that require async, force it
        io_uring: if a linked request has REQ_F_FORCE_ASYNC then run it async
        io_uring: add reschedule point to handle_tw_list()
        io_uring: add a conditional reschedule to the IOPOLL cancelation loop
        io_uring: return normal tw run linking optimisation
        io_uring: refactor tctx_task_work
        io_uring: refactor io_put_task helpers
        io_uring: refactor req allocation
        io_uring: improve io_get_sqe
        io_uring: kill outdated comment about overflow flush
        io_uring: use user visible tail in io_uring_poll()
        io_uring: pass in io_issue_def to io_assign_file()
        io_uring: Enable KASAN for request cache
        io_uring: handle TIF_NOTIFY_RESUME when checking for task_work
        io_uring/msg-ring: ensure flags passing works for task_work completions
        ...
      cce5fe5e
    • Linus Torvalds's avatar
      Merge tag 'dlm-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · eca3a04f
      Linus Torvalds authored
      Pull dlm updates from David Teigland:
       "This fixes some races in the lowcomms startup and shutdown code that
        were found by targeted stress testing that quickly and repeatedly
        joins and leaves lockspaces"
      
      * tag 'dlm-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
        fs: dlm: remove unnecessary waker_up() calls
        fs: dlm: move state change into else branch
        fs: dlm: remove newline in log_print
        fs: dlm: reduce the shutdown timeout to 5 secs
        fs: dlm: make dlm sequence id more robust
        fs: dlm: wait until all midcomms nodes detect version
        fs: dlm: ignore unexpected non dlm opts msgs
        fs: dlm: bring back previous shutdown handling
        fs: dlm: send FIN ack back in right cases
        fs: dlm: move sending fin message into state change handling
        fs: dlm: don't set stop rx flag after node reset
        fs: dlm: fix race setting stop tx flag
        fs: dlm: be sure to call dlm_send_queue_flush()
        fs: dlm: fix use after free in midcomms commit
        fs: dlm: start midcomms before scand
        fs/dlm: Remove "select SRCU"
        fs: dlm: fix return value check in dlm_memory_init()
      eca3a04f
    • Linus Torvalds's avatar
      Merge tag 'for-6.3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 885ce487
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "The usual mix of performance improvements and new features.
      
        The core change is reworking how checksums are processed, with
        followup cleanups and simplifications. There are two minor changes in
        block layer and iomap code.
      
        Features:
      
         - block group allocation class heuristics:
            - pack files by size (up to 128k, up to 8M, more) to avoid
              fragmentation in block groups, assuming that file size and life
              time is correlated, in particular this may help during balance
            - with tracepoints and extensible in the future
      
        Performance:
      
         - send: cache directory utimes and only emit the command when
           necessary
            - speedup up to 10x
            - smaller final stream produced (no redundant utimes commands
              issued)
            - compatibility not affected
      
         - fiemap: skip backref checks for shared leaves
            - speedup 3x on sample filesystem with all leaves shared (e.g. on
              snapshots)
      
         - micro optimized b-tree key lookup, speedup in metadata operations
           (sample benchmark: fs_mark +10% of files/sec)
      
        Core changes:
      
         - change where checksumming is done in the io path:
            - checksum and read repair does verification at lower layer
            - cascaded cleanups and simplifications
      
         - raid56 refactoring and cleanups
      
        Fixes:
      
         - sysfs: make sure that a run-time change of a feature is correctly
           tracked by the feature files
      
         - scrub: better reporting of tree block errors
      
        Other:
      
         - locally enable -Wmaybe-uninitialized after fixing all warnings
      
         - misc cleanups, spelling fixes
      
        Other code:
      
         - block: export bio_split_rw
      
         - iomap: remove IOMAP_F_ZONE_APPEND"
      
      * tag 'for-6.3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (109 commits)
        btrfs: make kobj_type structures constant
        btrfs: remove the bdev argument to btrfs_rmap_block
        btrfs: don't rely on unchanging ->bi_bdev for zone append remaps
        btrfs: never return true for reads in btrfs_use_zone_append
        btrfs: pass a btrfs_bio to btrfs_use_append
        btrfs: set bbio->file_offset in alloc_new_bio
        btrfs: use file_offset to limit bios size in calc_bio_boundaries
        btrfs: do unsigned integer division in the extent buffer binary search loop
        btrfs: eliminate extra call when doing binary search on extent buffer
        btrfs: raid56: handle endio in scrub_rbio
        btrfs: raid56: handle endio in recover_rbio
        btrfs: raid56: handle endio in rmw_rbio
        btrfs: raid56: submit the read bios from scrub_assemble_read_bios
        btrfs: raid56: fold rmw_read_wait_recover into rmw_read_bios
        btrfs: raid56: fold recover_assemble_read_bios into recover_rbio
        btrfs: raid56: add a bio_list_put helper
        btrfs: raid56: wait for I/O completion in submit_read_bios
        btrfs: raid56: simplify code flow in rmw_rbio
        btrfs: raid56: simplify error handling and code flow in raid56_parity_write
        btrfs: replace btrfs_wait_tree_block_writeback by wait_on_extent_buffer_writeback
        ...
      885ce487
    • Linus Torvalds's avatar
      Merge tag 'fixes_for_v6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 274978f1
      Linus Torvalds authored
      Pull UDF and ext2 fixes from Jan Kara:
      
       - Rewrite of udf directory iteration code to address multiple syzbot
         reports
      
       - Fixes to udf extent handling and block mapping code to address
         several syzbot reports and filesystem corruption issues uncovered by
         fsx & fsstress
      
       - Convert udf to kmap_local()
      
       - Add sanity checks when loading udf bitmaps
      
       - Drop old VARCONV support which I've never seen used and which was
         broken for quite some years without anybody noticing
      
       - Finish conversion of ext2 to kmap_local()
      
       - One fix to mpage_writepages() on which other udf fixes depend
      
      * tag 'fixes_for_v6.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: (78 commits)
        udf: Avoid directory type conversion failure due to ENOMEM
        udf: Use unsigned variables for size calculations
        udf: remove reporting loc in debug output
        udf: Check consistency of Space Bitmap Descriptor
        udf: Fix file counting in LVID
        udf: Limit file size to 4TB
        udf: Don't return bh from udf_expand_dir_adinicb()
        udf: Convert udf_expand_file_adinicb() to avoid kmap_atomic()
        udf: Convert udf_adinicb_writepage() to memcpy_to_page()
        udf: Switch udf_adinicb_readpage() to kmap_local_page()
        udf: Move udf_adinicb_readpage() to inode.c
        udf: Mark aops implementation static
        udf: Switch to single address_space_operations
        udf: Add handling of in-ICB files to udf_bmap()
        udf: Convert all file types to use udf_write_end()
        udf: Convert in-ICB files to use udf_write_begin()
        udf: Convert in-ICB files to use udf_direct_IO()
        udf: Convert in-ICB files to use udf_writepages()
        udf: Unify .read_folio for normal and in-ICB files
        udf: Fix off-by-one error when discarding preallocation
        ...
      274978f1