Latest Linux kernel releases

  19.01 6.13 (merge, pull), 6.1.126
  17.01 6.12.10, 6.6.72
  09.01 5.15.176, 5.10.233, 5.4.289

Significant pull requests for mainline kernel

 
20 Jan 2025: bcachefs changes for 6.14-rc1 [+ + +]
bcachefs updates for 6.14-rc1

Lots of scalability work, another big on disk format change. On disk
format version goes from 1.13 to 1.20.

Like 6.11, this is another big and expensive automatic/required on disk
format upgrade. This is planned to be the last big on disk format
upgrade before the experimental label comes off. There will be one more
minor on disk format update for a few things that couldn't make this
release.

Headline improvements:
- Fix mount time regression that some users encountered post the 6.11
  disk accounting rewrite.

  Accounting keys were encoded little endian (typetag in the low bits) -
  which didn't anticipate adding accounting keys for every inode, which
  aren't stored in memory and we don't want to scan at mount time.

- fsck time on large filesystems is improved by multiple orders of
  magnitude. Previously, 100TB was about the practical max filesystem
  size, where users were reporting fsck times of a day+. With the new
  changes (which nearly eliminate backpointers fsck overhead), we fsck'd
  a filesystem with 10PB of data in 1.5 hours.

  The problematic fsck passes were walking every extent and checking for
  missing backpointers, and walking every backpointer to check for
  dangling backpointers. As we've been adding more and more runtime self
  healing there was no reason to keep around the backpointers -> extents
  pass; dangling backpointers are just deleted, and we can do that when
  using them - thus, backpointers -> extents is now only run in debug
  mode.

  extents -> backpointers does need to exist, since missing backpointers
  would mean we can't find data to move it (for e.g. copygc, device
  evacuate, scrub). But the new on disk format version makes possible a
  new strategy where we sum up backpointers within a bucket and check it
  against the bucket sector counts, and then only scan for missing
  backpointers if the counts are off (and then, only for specific
  buckets).

Full list of on disk format changes:
- 1.14: backpointer_bucket_gen
  Backpointers now have a field for the bucket generation number,
  replacing the obsolete bucket_offset field. This is needed for the
  new "sum up backpointers within a bucket" code, since backpointers use
  the btree write buffer - meaning we will see stale reads, and this
  runs online, with the filesystem in full rw mode.

- 1.15: disk_accounting_big_endian
  As previously described, fix the endianness of accounting keys so that
  accounting keys with the same typetag sort together, and accounting
  read can skip types it's not interested in.

- 1.16: reflink_p_may_update_opts:
  This version indicates that a new reflink pointer field is understood
  and may be used; the field indicates whether the reflink pointer has
  permissions to update IO path options (e.g. compression, replicas) may
  be updated on the indirect extent it points to.

  This completes the rebalance/reflink data path option handling from
  the 6.13 pull request.

- 1.17: inode_depth
  Add a new inode field, bi_depth, to accelerate the
  check_directory_structure fsck path, which checks for loops in the
  filesystem heirarchy.

  check_inodes and check_dirents check connectivity, so
  check_directory_structure only has to check for loops - by walking
  back up to the root from every directory.

  But a path can't be a loop if it has a counter that increases
  monotonically from root to leaf - adding a depth counter means that we
  can check for loops with only local (parent -> child) checks. We might
  need to occasionally renumber the depth field in fsck if directories
  have been moved around, but then future fsck runs will be much faster.

- 1.18: persistent_inode_cursors

  Previously, the cursor used for inode allocation was only kept in
  memory, which meant that users with large filesystems and lots of
  files were reporting that the first create after mounting would take
  awhile - since it had to scan from the start.

  Inode allocation cursors are now persistent, and also include a
  generation field (incremented on wraparound, which will only happen if
  inode allocation is restricted to 32 bit inodes), so that we don't
  have to leave inode_generation keys around after a delete.

  The option for 32 bit inode numbers may now also be set on individual
  directories, and non-32 bit inode allocations are disallowed from
  allocating from the 32 bit part of the inode number space.

- 1.19: autofix_errors

  Runtime self healing is now the default.o

- 1.20: directory size (from Hongbo)

  directory i_size is now meaningful, and not 0.

Release notes from the previous 6.13 pull request:

- Self healing work:
  Allocator and reflink now run the exact same check/repair code that
  fsck does at runtime, where applicable.

  The long term goal here is to remove inconsistent() errors (that cause
  us to go emergency read only) by lifting fsck code up to normal
  runtime paths; we should only go emergency read-only if we detect an
  inconsistency that was due to a runtime bug - or truly catastrophic
  damage (corrupted btree roots/interior nodes).

- Reflink repair no longer deletes reflink pointers: instead we flip an
  error bit and log the error, and they can still be deleted by file
  deletion. This means a temporary failure to find an indirect extent
  (perhaps repaired later by btree node scan) won't result in
  unnecessary data loss

- Improvements to rebalance data path option handling: we can now
  correctly apply changed filesystem-level io path options to pending
  rebalance work, and soon we'll be able to apply file-level io path
  option changes to indirect extents.

20 Jan 2025: livepatching for 6.14 [+ + +]
please pull the latest changes for the kernel livepatching from



- Add a sysfs attribute showing the livepatch ordering.
- Some code clean up.

20 Jan 2025: x86/sev for v6.14-rc1 [+ + +]
please pull the x86/sev lineup for v6.14-rc1.

Thx.

---

- A segmented Reverse Map table (RMP) is a across-nodes distributed
  table of sorts which contains per-node descriptors of each node-local
  4K page, denoting its ownership (hypervisor, guest, etc) in the realm
  of confidential computing.  Add support for such a table in order to
  improve referential locality when accessing or modifying RMP table
  entries

- Add support for reading the TSC in SNP guests by removing any
  interference or influence the hypervisor might have, with the goal of
  making a confidential guest even more independent from the hypervisor

20 Jan 2025: SPI updates for v6.14 [+ + +]
spi: Updates for v6.14

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.

20 Jan 2025: regulator updates for v6.14 [+ + +]
regulator: Updates for v6.14

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.

20 Jan 2025: regmap updates for v6.14 [+ + +]
regmap: Updates for v6.14

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.

20 Jan 2025: MMC updates for v6.14 [+ + +]
Here's the pull-request with updates for MMC for v6.14. Details about the
highlights are as usual found in the signed tag.


Kind regards
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

20 Jan 2025: hwmon updates for v6.14-rc1 [+ + +]


Thanks,
Guenter
------

hwmon updates for v6.14-rc1

* 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

* Various other minor fixes and improvements

20 Jan 2025: x86/microcode for v6.14-rc1 [+ + +]
please pull the x86/microcode lineup for v6.14-rc1.

Thx.

---

- A bunch of minor cleanups

20 Jan 2025: m68k updates for v6.14 [+ + +]
m68k updates for v6.14

  - Use the generic muldi3 libgcc function,
  - Miscellaneous fixes and improvements.

Thanks for pulling!

20 Jan 2025: pwrseq updates for v6.14-rc1 [+ + +]
From: Bartosz Golaszewski <[email protected]>


subsystem. 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.

Details are in the signed tag.

Best Regards,
Bartosz Golaszewski

pwrseq updates for v6.14-rc1

- 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

20 Jan 2025: gpio updates for v6.14-rc1 [+ + +]
From: Bartosz Golaszewski <[email protected]>


Thanks to little activity in December, this PR is really tiny. Just a few
updates to drivers and device-tree bindings. Details are in the signed
tag.

Bartosz Golaszewski

gpio updates for v6.14-rc1

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

20 Jan 2025: gfs2 changes for 6.14 [+ + +]
please consider pulling the following gfs2 changes.

Thanks,
Andreas

gfs2 changes

- In the quota code, to avoid spurious audit messages, don't call
  capable() when quotas are off.

- When changing the 'j' flag of an inode, truncate the inode address
  space to avoid mixing "buffer head" and "iomap" pages.

20 Jan 2025: x86/cache for v6.14-rc1 [+ + +]
please pull the x86/cache lineup for v6.14-rc1.

Thx.

---

- Extend resctrl with the capability of total memory bandwidth monitoring,
  thus accomodating systems which support only total but not local memory
  bandwidth monitoring. Add the respective new mount options

- The usual cleanups

20 Jan 2025: x86/bugs for v6.14-rc1 [+ + +]
please pull the x86/bugs lineup for v6.14-rc1.

Thx.

---

- Add support for AMD hardware which is not affected by SRSO on the
  user/kernel attack vector and advertise it to guest userspace

20 Jan 2025: printk for 6.14 [+ + +]
please pull the latest printk changes from



- 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.

20 Jan 2025: RAS updates for v6.14-rc1 [+ + +]
please pull the RAS lineup for v6.14-rc1.

Thx.

---

- Remove the shared threshold bank hack on AMD and streamline and simplify it

- Cleanup and sanitize MCA code

20 Jan 2025: Scheduler enhancements for v6.14 [+ + +]




Scheduler enhancements for v6.14:

 - 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)

 Thanks,

Ingo

20 Jan 2025: Performance events changes for v6.14 [+ + +]



Performance events changes for v6.14:

 - Seqlock optimizations that arose in a perf context and were
   merged into the perf tree:

   - seqlock: Add raw_seqcount_try_begin (Suren Baghdasaryan)
   - mm: Convert mm_lock_seq to a proper seqcount ((Suren Baghdasaryan)
   - mm: Introduce mmap_lock_speculate_{try_begin|retry} (Suren Baghdasaryan)
   - mm/gup: Use raw_seqcount_try_begin() (Peter Zijlstra)

 - Core perf enhancements:

   - Reduce 'struct page' footprint of perf by mapping pages
     in advance (Lorenzo Stoakes)
   - Save raw sample data conditionally based on sample type (Yabin Cui)
   - Reduce sampling overhead by checking sample_type in
     perf_sample_save_callchain() and perf_sample_save_brstack() (Yabin Cui)
   - Export perf_exclude_event() (Namhyung Kim)

 - Uprobes scalability enhancements: (Andrii Nakryiko)

   - Simplify find_active_uprobe_rcu() VMA checks
   - Add speculative lockless VMA-to-inode-to-uprobe resolution
   - Simplify session consumer tracking
   - Decouple return_instance list traversal and freeing
   - Ensure return_instance is detached from the list before freeing
   - Reuse return_instances between multiple uretprobes within task
   - Guard against kmemdup() failing in dup_return_instance()

 - AMD core PMU driver enhancements:

   - Relax privilege filter restriction on AMD IBS (Namhyung Kim)

 - AMD RAPL energy counters support: (Dhananjay Ugwekar)

   - Introduce topology_logical_core_id() (K Prateek Nayak)

   - Remove the unused get_rapl_pmu_cpumask() function
   - Remove the cpu_to_rapl_pmu() function
   - Rename rapl_pmu variables
   - Make rapl_model struct global
   - Add arguments to the init and cleanup functions
   - Modify the generic variable names to *_pkg*
   - Remove the global variable rapl_msrs
   - Move the cntr_mask to rapl_pmus struct
   - Add core energy counter support for AMD CPUs

 - Intel core PMU driver enhancements:

   - Support RDPMC 'metrics clear mode' feature (Kan Liang)
   - Clarify adaptive PEBS processing (Kan Liang)
   - Factor out functions for PEBS records processing (Kan Liang)
   - Simplify the PEBS records processing for adaptive PEBS (Kan Liang)

 - Intel uncore driver enhancements: (Kan Liang)

   - Convert buggy pmu->func_id use to pmu->registered
   - Support more units on Granite Rapids

 Thanks,

Ingo

20 Jan 2025: objtool changes for v6.14 [+ + +]



Objtool changes for v6.14:

 - Introduce the generic section-based annotation
   infrastructure a.k.a. ASM_ANNOTATE/ANNOTATE (Peter Zijlstra)

 - Convert various facilities to ASM_ANNOTATE/ANNOTATE: (Peter Zijlstra)

    - ANNOTATE_NOENDBR
    - ANNOTATE_RETPOLINE_SAFE
    - instrumentation_{begin,end}()
    - VALIDATE_UNRET_BEGIN
    - ANNOTATE_IGNORE_ALTERNATIVE
    - ANNOTATE_INTRA_FUNCTION_CALL
    - {.UN}REACHABLE

 - Optimize the annotation-sections parsing code (Peter Zijlstra)

 - Centralize annotation definitions in <linux/objtool.h>

 - Unify & simplify the barrier_before_unreachable()/unreachable()
   definitions (Peter Zijlstra)

 - Convert unreachable() calls to BUG() in x86 code, as
   unreachable() has unreliable code generation (Peter Zijlstra)

 - Remove annotate_reachable() and annotate_unreachable(), as it's
   unreliable against compiler optimizations (Peter Zijlstra)

 - Fix non-standard ANNOTATE_REACHABLE annotation order (Peter Zijlstra)

 - Robustify the annotation code by warning about unknown annotation
   types (Peter Zijlstra)

 - Allow arch code to discover jump table size, in preparation of
   annotated jump table support (Ard Biesheuvel)

 Thanks,

Ingo

20 Jan 2025: HID for 6.14 [+ + +]
please pull from

nus-2025012001

to receive HID subsystem queue for 6.14. Highlights:

=3D=3D=3D=3D=3D
- newly added support for Intel Touch Host Controller (Even Xu, Xinpeng=20
  Sun)
- hid-core fix for long-standing syzbot-reported cornercase of Resolution=
=20
  Multiplier not being present in any of the Logical Collections in the=20
  device HID report descriptor (Alan Stern)
- improvement of behavior for non-standard LED brightness values for Wacom=
=20
  driver (Jason Gerecke)
- PCI Wacom device support (depends on Intel THC support) (Even Xu)
- SteelSeries Arctis 9 support (Christian Mayer)
- constification of 'struct bin_attribute' in various HID driver (Thomas=20
  Wei=C3=9Fschuh)
- other assorted code cleanups / fixes and device ID additions
=3D=3D=3D=3D=3D

Thanks.

20 Jan 2025: locking changes for v6.14 [+ + +]



Locking changes for v6.14:

 - Lockdep:

    - Improve and fix lockdep bitsize limits, clarify the Kconfig
      documentation (Carlos Llamas)

    - Fix lockdep build warning on Clang related to
      chain_hlock_class_idx() inlining (Andy Shevchenko)

    - Relax the requirements of PROVE_RAW_LOCK_NESTING arch support
      by not tying it to ARCH_SUPPORTS_RT unnecessarily (Waiman Long)

 - Rust integration:

    - Support lock pointers managed by the C side (Lyude Paul)

    - Support guard types (Lyude Paul)

    - Update MAINTAINERS file filters to include the
      Rust locking code (Boqun Feng)

 - Wake-queues:

    - Add raw_spin_*wake() helpers to simplify locking code (John Stultz)

 - SMP cross-calls:

    - Fix potential data update race by evaluating the local cond_func()
      before IPI side-effects (Mathieu Desnoyers)

 - Guard primitives:

    - Ease [c]tags based searches by including the cleanup/guard type
      primitives (Peter Zijlstra)

 - ww_mutexes:

    - Simplify the ww_mutex self-test code via swap() (Thorsten Blum)

 - Static calls:

    - Update the static calls MAINTAINERS file-pattern (Jiri Slaby)

 Thanks,

Ingo

20 Jan 2025: chrome-platform-firmware updates for v6.14 [+ + +]

Hi Linus,


Thanks,
Tzung-Bi


chrome-platform-firmware: Updates for v6.14

* Cleanups

  - Constify 'struct bin_attribute'.

20 Jan 2025: chrome-platform updates for v6.14 [+ + +]

Hi Linus,


Thanks,
Tzung-Bi


chrome-platform: Updates for v6.14

* 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.

 
19 Jan 2025: ring-buffer: Updates for 6.14 [+ + +]

ring-buffer changes for v6.14

- 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.




trace-ringbuffer-v6.14

19 Jan 2025: tracing: Updates for v6.14 [+ + +]

tracing updates for v6.14:

- 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.

- Update the Rust tracepoint code to use the C code too

  There was some duplication of the tracepoint code for Rust that did the
  same logic as the C code. Add a helper that makes it possible for both
  algorithms to use the same logic in one place.

- Add poll to trace event hist files

  It is useful to know when an event is triggered, or even with some
  filtering. Since hist files of events get updated when active and the
  event is triggered, allow applications to poll the hist file and wake up
  when an event is triggered. This will let the application know that the
  event it is waiting for happened.

- Add :mod: command to enable events for current or future modules

  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.

  Add the command where if ':mod:<module>' is written into set_event, then
  either all the modules events are enabled if it is loaded, or cache it so
  that the module's events are enabled when it is loaded. This also works
  from the kernel command line, where "trace_event=:mod:<module>", when the
  module is loaded at boot up, its events will be enabled then.




trace-v6.14

19 Jan 2025: ftrace: Updates for v6.14 [+ + +]

ftrace updates for v6.14:

- 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.




ftrace-v6.14

 
20 Jan 2025: kthread updates for v6.14 [+ + +]
A pull request from me on the topic of kthreads may appear out of
the blue but this "subsystem" has no official maintainer and nobody
loudly volunteered to take these changes. Therefore I'm carrying
these myself.

Thanks.

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.

 
19 Jan 2025: CRC updates for 6.14 [+ + +]
- Reorganize the architecture-optimized CRC32 and CRC-T10DIF code to be
  directly accessible via the library API, instead of requiring the
  crypto API.  This is much simpler and more efficient.

- Convert some users such as ext4 to use the CRC32 library API instead
  of the crypto API.  More conversions like this will come later.

- Add a KUnit test that tests and benchmarks multiple CRC variants.
  Remove older, less-comprehensive tests that are made redundant by
  this.

- Add an entry to MAINTAINERS for the kernel's CRC library code.  I'm
  volunteering to maintain it.  I have additional cleanups and
  optimizations planned for future cycles.

These patches have been in linux-next since -rc1.

19 Jan 2025: Rust for 6.14 [+ + +]
This is the next round of the Rust support.

asked, but it is also still in GitHub too (like in previous occasions).
I may create a "group" repository in the future.

All commits have been in linux-next for a few rounds.

You may get major Rust changes via a driver-core PR and a Kbuild PR, as
well as smaller ones in a locking PR via tip, a lsm PR and a netdev-next
PR. You already got the blocks PR which contains a small Rust change as
well.

Conflicts expected with both the driver-core and security one. The
conflicts aren't too bad -- the resolutions in -next are fine.


Cheers,
Miguel

Rust changes for v6.14

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.

 
18 Jan 2025: EDAC updates for v6.14 [+ + +]
please pull the accumulated EDAC lineup for v6.14.

Thx.

---

- Remove the EDAC PowerPC Cell driver due to the removal of the IBM Cell
  blades support

- Add a new EDAC driver for Loongson SoCs which reports single-bit correctable
  errors

- Extend the SKX and i10NM EDAC drivers to support UV systems which can have
  more than 8 nodes

- Add Intel Clearwater Forest server support to i10nm_edac

- Minor fix

18 Jan 2025: s390 updates for 6.14 merge window [+ + +]
please pull s390 updates for the 6.14 merge window.

Thanks,
Alexander

s390 updates for 6.14 merge window

- Select config option KASAN_VMALLOC if KASAN is enabled

- Select config option VMAP_STACK unconditionally

- Implement arch_atomic_inc() / arch_atomic_dec() functions
  which result in a single instruction if compiled for z196
  or newer architectures

- Make layering between atomic.h and atomic_ops.h consistent

- Comment s390 preempt_count implementation

- Remove pre MARCH_HAS_Z196_FEATURES preempt count implementation

- GCC uses the number of lines of an inline assembly to calculate
  number of instructions and decide on inlining. Therefore remove
  superfluous new lines from a couple of inline assemblies.

- Provide arch_atomic_*_and_test() implementations that allow the
  compiler to generate slightly better code.

- Optimize __preempt_count_dec_and_test()

- Remove __bootdata annotations from declarations in header files

- Add missing include of <linux/smp.h> in abs_lowcore.h to provide
  declarations for get_cpu() and put_cpu() used in the code

- Fix suboptimal kernel image base when running make kasan.config

- Remove huge_pte_none() and huge_pte_none_mostly() as are identical
  to the generic variants

- Remove unused PAGE_KERNEL_EXEC, SEGMENT_KERNEL_EXEC,
  and REGION3_KERNEL_EXEC defines

- Simplify noexec page protection handling and change the page,
  segment and region3 protection definitions automatically if the
  instruction execution-protection facility is not available

- Save one instruction and prefer EXRL instruction over EX in
  string, xor_*(), amode31 and other functions

- Create /dev/diag misc device to fetch diagnose specific
  information from the kernel and provide it to userspace

- Retrieve electrical power readings using DIAGNOSE 0x324 ioctl

- Make ccw_device_get_ciw() consistent and use array indices
  instead of pointer arithmetic

* s390/qdio: Move memory alloc/pointer arithmetic for slib and sl into one place

- The sysfs core now allows instances of 'struct bin_attribute' to be
  moved into read-only memory. Make use of that in s390 code

- Add missing TLB range adjustment in pud_free_tlb()

- Improve topology setup by adding early polarization detection

- Fix length checks in codepage_convert() function

- The generic bitops implementation is nearly identical to the s390 one.
  Switch to the generic variant and decrease a bit the kernel image size

- Provide an optimized arch_test_bit() implementation which makes use of
  flag output constraint. This generates slightly better code

- Provide memory topology information obtanied with DIAGNOSE 0x310
  using ioctl.

- Various other small improvements, fixes, and cleanups

These changes were added with a merge of  'pci-device-recovery' branch

- Add PCI error recovery status mechanism

- Simplify and document debug_next_entry() logic

- Split private data allocation and freeing out of debug file
  open() and close() operations

- Add debug_dump() function that gets a textual representation
  of a debug info (e.g. PCI recovery hardware error logs)

- Add formatted content of pci_debug_msg_id to the PCI report

 
17 Jan 2025: integrity: subsystem updates for v6.14 [+ + +]
There's just a couple of changes: 2 kernel messages addressed, a measuremen=
t policy
collision addressed, and 1 policy cleanup.
                                    =20
Please note that the contents of the IMA measurement list is potentially af=
fected.=20
The builtin tmpfs IMA policy rule change might introduce additional measure=
ments,
while detecting a reboot might eliminate some measurements.

thanks,

Mimi

integrity-v6.14

17 Jan 2025: cpupower second update for Linux 6.14-rc1 [+ + +]
Hi Rafael,


- Add missing residency header changes in cpuidle.h to SWIG

diff is attached.

thanks,
-- Shuah

linux-cpupower-6.14-rc1-second

- Add missing residency header changes in cpuidle.h to SWIG

17 Jan 2025: RCU changes for v6.14 [+ + +]




fixes.2024.12.14a: RCU fixes
rcutorture.2024.12.14a: Torture-test updates
srcu.2024.12.14a: SRCU updates
torture-test.2024.12.14a: Adding an extra test, fixes

One merge conflicts was detected by linux-next:

* https://lore.kernel.org/lkml/[email protected]/T/

The conflict resolution from linux-next look good to me, plus I make
my own resolutions at branch merge/rcu.2024.12.21a for your reference.


RCU pull request for v6.14

This pull request contains the following branches:

fixes.2024.12.14a: 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.

rcutorture.2024.12.14a: 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.

srcu.2024.12.14a: 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.

torture-test.2024.12.14a: Add an extra test for sched_clock(), improve testing
    on unresponsive systems.


17 Jan 2025: slab updates for 6.14 [+ + +]
please pull the latest slab updates from:


There's a small conflict with the mm tree:
https://lore.kernel.org/all/[email protected]/

Thanks,
Vlastimil


* 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 to. 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)

17 Jan 2025: USB-serial updates for 6.14-rc1 [+ + +]
USB-serial updates for 6.14-rc1

Here are the USB-serial updates for 6.14-rc1, including:

 - fix a long-standing NULL-deref issue in quatech2
 - add support for hardware flow control to ch341

Included is also a related clean up.

All have been in linux-next with no reported issues.

17 Jan 2025: drm for 6.14-rc1 (sending early due to holidays) [+ + +]
I'm away for next 10 days, so in advance of the merge window opening
and to demonstrate that I can do it, here is an early pull request.

I've done a trial merge to your current tree and only had minor merge
conflicts, of course this may change over time, but I think you can
take care of them or ping someone to help.

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/refactors across the board,

I should be back by the end of the merge window, and Sima is around if
anything needs escalating.

Regards,
Dave.

drm-next-2025-01-17:
drm next for 6.14-rc1

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 instance=
s
- 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
drm next for 6.14-rc1

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 instance=
s
- 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

 
16 Jan 2025: KVM x86 pull requests for 6.14 [+ + +]
The "misc" pull request has a conflict with the tip tree[*].  It's ugly, but
not super complex, and it's trivially easy to verify the result.

There are also two single-series topic branches, "vcpu_array" and "memslots",
but otherwise nothing out of the ordinary.

[*] https://lore.kernel.org/all/[email protected]
16 Jan 2025: interconnect changes for 6.14 [+ + +]
This is the pull request with interconnect changes for the v6.14-rc1 merge
window. It contains a new driver and tiny DT binding updates. As always,
the summary is in the signed tag.

All patches have been in linux-next for a while. There are no reported

Thanks,
Georgi


interconnect changes for 6.14

This pull request contains the interconnect changes for the 6.14-rc1 merge
window. It contains one new driver and DT documentation updates for L3
and bandwidth monitors.

Driver changes:
- New driver for the SM8750 platform
- Add DT compatibles for QCS615 BWMON and SM8650 OSM

Signed-off-by: Georgi Djakov <[email protected]>

 
15 Jan 2025: hardening updates for v6.14-rc1 [+ + +]
kind of ended up being the catch-all for the tracepoint change, with the
core trace change having been reviewed by Rostedt.

Thanks!

-Kees

hardening updates for v6.14-rc1

- stackleak: Use str_enabled_disabled() helper (Thorsten Blum)

- Document GCC INIT_STACK_ALL_PATTERN behavior (Geert Uytterhoeven)

- Add task_prctl_unknown tracepoint (Marco Elver)

15 Jan 2025: pstore updates for v6.14-rc1 [+ + +]

Thanks!

-Kees

pstore updates for v6.14-rc1

- pstore/blk: trivial typo fixes (Eugen Hristev)

- pstore/zone: reject zero-sized allocations (Eugen Hristev)

15 Jan 2025: AT_EXECVE_CHECK introduction for v6.14-rc1 [+ + +]
this series from the core execve tree since it's had a life of its own
as it has progressed from O_MAY_EXEC. :) This provides userspace with
a way to opt in to performing "execability" checks for things that are
executable but don't pass through execve(2) (e.g. scripts, dlopen libs,
etc). It's seen quite a bit of discussion and review, and has lived in
-next for the entire dev cycle. Included is documentation, samples, and
extensive selftests.

Thanks!

-Kees

AT_EXECVE_CHECK introduction for v6.14-rc1

- Implement AT_EXECVE_CHECK flag to execveat(2) (Mickaël Salaün)

- Implement EXEC_RESTRICT_FILE and EXEC_DENY_INTERACTIVE securebits
  (Mickaël Salaün)

- Add selftests and samples for AT_EXECVE_CHECK (Mickaël Salaün)

15 Jan 2025: execve updates for v6.14-rc1 [+ + +]
request for v6.13-rc1, but with all the "comm" stuff now settled and has
lived in -next for the entire past dev cycle.

Thanks!

-Kees

execve updates for v6.14-rc1

- exec: fix up /proc/pid/comm in the execveat(AT_EMPTY_PATH) case
  (Tycho Andersen, Kees Cook)

- binfmt_misc: Fix comment typos (Christophe JAILLET)

- exec: move empty argv[0] warning closer to actual logic (Nir Lichtman)

- exec: remove legacy custom binfmt modules autoloading (Nir Lichtman)

- binfmt_flat: Fix integer overflow bug on 32 bit systems (Dan Carpenter)

- exec: Make sure set_task_comm() always NUL-terminates

- coredump: Do not lock when copying "comm"

- MAINTAINERS: add auxvec.h and set myself as maintainer

15 Jan 2025: LoongArch KVM changes for v6.14 [+ + +]
LoongArch KVM changes for v6.14

1. Clear LLBCTL if secondary mmu mapping changed.
2. Add hypercall service support for usermode VMM.

This is a really small changeset, because the Chinese New Year
(Spring Festival) is coming. Happy New Year!

 
12 Jan 2025: samsung: drivers: for v6.14, part two [+ + +]
Hi,

Previously I sent just one patch alone. It is not included here.

Best regards,
Krzysztof


Samsung SoC drivers for v6.14

1. Add new bindings for sysreg in Exynos8895.
2. Minor improvements in Exynos USI bindings.
3. Fix for Smatch warning in Exynos PMU syscon driver.

 
11 Jan 2025: extcon next for 6.14 [+ + +]
Dear Greg,

This is extcon-next pull request for v6.14. I add detailed description of

Best Regards,
Chanwoo Choi


Update extcon next for v6.14

Detailed description for this pull request:
- Fix null pointer check of memory allocation on extcon-rtk-type-c.c.
- Add EXTCON subsystem documentation including the detailed description/example.
- Drop unneeded init of struct i2c_device_id:driver_data on extcon-fsa9480/pth5150.c.

 
10 Jan 2025: MAINTAINERS: TI updates for v6.14 [+ + +]
Hi SoC maintainers,

Note: this PR could potentially go with soc drivers as well, but decided
to keep it separate to allow your discretion as to the path to take.


TI Maintainer updates for v6.14

- Maintain Programmable Real-time Unit Subsystem(PRUSS) SoC library interface
  header linux/pruss_driver.h

10 Jan 2025: arm64: dts: ti: K3 devicetree updates for v6.14 [+ + +]
Hi SoC maintainers,

warning around "Reported-by" without "Closes" - the report was an
internal report with no public facing URL and was hence skipped. I
decided to leave it alone to acknowledge the reporter.

TI K3 device tree updates for v6.14

Generic Fixups/Cleanups:
- Remove unused and undocumented "ti,(rx|tx)-fifo-depth" properties for
  ethernet phy
- Clock description added to ICSS-G

SoC Specific features and Fixes:
- Duplicate GICR reg defines in am62x/am62ax
- Mailbox nodes are enabled at board level bringing AM67/j722s/am62p to same
  behavior as other K3 SoCs.
- Introduction of deep-sleep state defines for pinctrl header

AM62Ax
- Enable ti-sysc for wkup_uart0

AM64:
- Switch ICSSG clock to core clock.

J7200:
- Disable SPI1 loopback default.

J784s4:
- Clock ID fix for McSPI instances
- Use j7200-padconf compatibility for padconf to enable suspend-to-ram support.

Board Specific:

AM62
- phyboard - hdmi bridge regulator and using 16bit input for hdmi bridge,
  vcc-supply for i2c eeprom
- SK - SoC wakeup using USB1, Add bootph property around cpsw mac syscon node,
  M4 mailbox node redefinition fixup.
- BeaglePlay: Fix ethernet phy reset time

AM64
- hummingboard-t: Convert PCIE/USB overlays to independent dts.

j7200:
- EVM: fix typo in overlay name.

j721e:
- EVM: overlay for pcie1 endpoint mode.

j722s:
- EVM: Add mcu_i2c0 support for expansion pins., Add USB0 DFU support, Enable
  PMIC
- AM67a-beagley-ai: Add remote proc nodes

j784s4:
- AM69-SK/ j784s4-EVM - Mark PMIC regulators with bootph-all property to
  indicate ones that are needed through boot phases.
- AM69-sk: PIC0 Endpoint mode overlay, USB Superspeed mode.

10 Jan 2025: soc: ti: Driver updates for v6.14 [+ + +]
Hi SoC maintainers,

TI SoC driver updates for v6.14

- Build fixup when CONFIG_TI_PRUSS is disabled.

 
8 Jan 2025: cpupower update for Linux 6.14-rc1 [+ + +]
Hi Rafael,


Several fixes, cleanups and AMD support enhancements:

- fix TSC MHz calculation
- Add install and uninstall options to bindings makefile
- Add header changes for cpufreq.h to SWIG bindings
- selftests/cpufreq: gitignore output files and clean them in make clean
- Remove spurious return statement
- Add support for parsing 'enabled' or 'disabled' strings from table
- Add support for amd-pstate preferred core rankings
- Don't try to read frequency from hardware when kernel uses aperf mperf
- Add support for showing energy performance preference
- Don't fetch maximum latency when EPP is enabled
- Adjust whitespace for amd-pstate specific prints
- Fix cross compilation
- revise is_valid flag handling for idle_monitor

diff is attached.

thanks,
-- Shuah

linux-cpupower-6.14-rc1

Several fixes, cleanups and AMD support enhancements:

- fix TSC MHz calculation
- Add install and uninstall options to bindings makefile
- Add header changes for cpufreq.h to SWIG bindings
- selftests/cpufreq: gitignore output files and clean them in make clean
- Remove spurious return statement
- Add support for parsing 'enabled' or 'disabled' strings from table
- Add support for amd-pstate preferred core rankings
- Don't try to read frequency from hardware when kernel uses aperf mperf
- Add support for showing energy performance preference
- Don't fetch maximum latency when EPP is enabled
- Adjust whitespace for amd-pstate specific prints
- Fix cross compilation
- revise is_valid flag handling for idle_monitor

8 Jan 2025: clk: imx: Updates for v6.14 [+ + +]
i.MX clock changes for 6.14

- Fix the i.MX8MP clkout1/2 support by using sys_plln_out instead of
  sys_plln as parents
- Add 208 MHz and 416 MHz entries to the PLL1416x
- Fix the i.MX93 provider by adding the SPDIF IPG clock
- Fix the i.MX93 xcvr DT node clocks by using SPDIF IRP clock instead of
  BUS_WAKEUP
- Filter out LVDS, MIPI DSI, PXP, FLEXIO and MU clocks to i.MX93 only

 
7 Jan 2025: [PULL REQUEST] Intel IOMMU updates for v6.14 [+ + +]
Hi Joerg,

 
2 Jan 2025: nios2: update for v6.14 [+ + +]
NIOS2: update for v6.14
- Use str_yes_no() helper function

 
31 Dec 2024: w1: drivers for v6.14 [+ + +]
1-Wire bus drivers for v6.14

1. ds2482: Add support for handling the VCC regulator supply and three
   more minor improvements/cleanups.

2. Constify 'struct bin_attribute' in all drivers.

3. W1 core: use sysfs_emit() instead of sprintf(), as preferred coding
   style.

31 Dec 2024: memory: drivers for v6.14 [+ + +]
Memory controller drivers for v6.14

1. OMAP GPMC: Cleanup dead code.
2. Tegra20 EMC: Fix OF reference counting when iterating over
   emc-tables.

31 Dec 2024: pinctrl: samsung: drivers for v6.14 [+ + +]
Hi,

Fixes for old issues, not critical, so not worth current RC.

Best regards,
Krzysztof


Samsung pinctrl drivers changes for v6.14

Two fixes for very old issues around error handling and also one
cleanup.

31 Dec 2024: arm64: dts: various for v6.14 [+ + +]
Hi,

Few cleanups for two platforms which were not picked up by maintainers.

Best regards,
Krzysztof


Minor improvements in ARM64 DTS for v6.14

1. Spreadtrum:
   - Correct few issues pointed out by DT schema around properties and
     node names.
   - Move fuel-gauge from DTSI to DTS, because it belongs to the board.
   - Use undeprecated properties, like battery-detect-gpios, already
     supported by Linux.

2. Uniphier: Use un-deprecated hp-det-gpios (no ABI impact expected).

31 Dec 2024: clk: samsung: drivers for v6.14 [+ + +]
Samsung SoC clock drivers changes for 6.14

Add clock controller for new Exynos990 SoC.

 
29 Dec 2024: RISC-V T-HEAD Devicetrees for v6.14 [+ + +]
Hi Arnd,

There is only one thead device tree change for this cycle. I have run
W=1 dtbs_check, and it has been in linux-next for over 2 weeks.

Thanks,
Drew

thead-dt-for-v6.14: T-HEAD Devicetrees for v6.14

Add mailbox node for the T-Head TH1520 RISC-V SoC. The mailbox bindings
and driver were already merged in v6.13:

b2cf36e4a2ac ("dt-bindings: mailbox: Add thead,th1520-mailbox bindings")
5d4d263e1c6b ("mailbox: Introduce support for T-head TH1520 Mailbox driver")

Signed-off-by: Drew Fustini <[email protected]>

 
20 Dec 2024: LOCKDEP and Rust locking changes for v6.14 [+ + +]
Hi Peter & Ingo,


Lockdep changes for v6.14:

- Use swap() macro in the ww_mutex test.
- Minor fixes and documentation for lockdep configs on internal data structure sizes.
- Some "-Wunused-function" warning fixes for Clang.

Rust locking changes for v6.14:

- Add Rust locking files into LOCKING PRIMITIVES maintainer entry.
- Add `Lock<(), ..>::from_raw()` function to support abstraction on low level locking.
- Expose `Guard::new()` for public usage and add type alias for spinlock and mutex guards.
- Add lockdep checking when creating a new lock `Guard`.

 
14 Dec 2024: memory: stable tag with TI AEMIF for v6.14 [+ + +]
Hi,

TI AEMIF memory bits for NAND/MTD.

Best regards,
Krzysztof


Memory controller drivers for v6.14 - TI

TI AEMIF driver enhancements: some refactoring around timing
parameters and finally adding plus exporting interfaces for devices
using the AEMIF interface (e.g. TI Davinci NAND controller) to better
configure the memory interface.

The exported functions are going to be used by:
drivers/mtd/nand/raw/davinci_nand.c