Latest Linux kernel releases

  12.06 6.9.4, 6.6.33, 6.1.93
  30.05 6.8.12
  25.05 5.15.160, 5.10.218, 5.4.277, 4.19.315

Significant pull requests for mainline kernel

 
13 Jun 2024: Networking for v6.10-rc4 [+ + +]
Slim pickings this time, probably a combination of summer, DevConf.cz,
and the end of first half of the year at corporations.

Including fixes from bluetooth and netfilter.

Current release - regressions:

 - Revert "igc: fix a log entry using uninitialized netdev",
   it traded lack of netdev name in a printk() for a crash

Previous releases - regressions:

 - Bluetooth: L2CAP: fix rejecting L2CAP_CONN_PARAM_UPDATE_REQ

 - geneve: fix incorrectly setting lengths of inner headers in the skb,
   confusing the drivers and causing mangled packets

 - sched: initialize noop_qdisc owner to avoid false-positive recursion
   detection (recursing on CPU 0), which bubbles up to user space as
   a sendmsg() error, while noop_qdisc should silently drop

 - netdevsim: fix backwards compatibility in nsim_get_iflink()

Previous releases - always broken:

 - netfilter: ipset: fix race between namespace cleanup and gc
   in the list:set type

Signed-off-by: Jakub Kicinski <kuba@kernel.org>

 
7 Jun 2024: platform-drivers-x86 for 6.10-3 [+ + +]
Here is the second round of fixes for platform-drivers-x86 for 6.10.

Highlights:
 -  Default silead touchscreen driver to 10 fingers and drop 10 finger setting
    from all DMI quirks. More of a cleanup then a pure fix, but since the DMI
    quirks always get updated through the fixes branch this avoids conflicts.
 -  Kconfig fix for randconfig builds
 -  dell-smbios: Fix wrong token data in sysfs
 -  amd-hsmp: Fix driver poking unsupported hw when loaded manually

Regards,

Hans


platform-drivers-x86 for v6.10-3

Highlights:
 -  Default silead touchscreen driver to 10 fingers and drop 10 finger setting
    from all DMI quirks. More of a cleanup then a pure fix, but since the DMI
    quirks always get updated through the fixes branch this avoids conflicts.
 -  Kconfig fix for randconfig builds
 -  dell-smbios: Fix wrong token data in sysfs
 -  amd-hsmp: Fix driver poking unsupported hw when loaded manually

The following is an automated git shortlog grouped by driver:

Input:
 -  silead - Always support 10 fingers

dell-smbios:
 -  Simplify error handling
 -  Fix wrong token data in sysfs

platform/x86/amd/hsmp:
 -  Check HSMP support on AMD family of processors

touchscreen_dmi:
 -  Use 2-argument strscpy()
 -  Drop "silead,max-fingers" property

yt2-1380:
 -  add CONFIG_EXTCON dependency

 
6 Jun 2024: Networking for v6.10-rc3 [+ + +]
Including fixes from BPF and big collection of fixes for WiFi core
and drivers.

Current release - regressions:

 - vxlan: fix regression when dropping packets due to invalid src addresses

 - bpf: fix a potential use-after-free in bpf_link_free()

 - xdp: revert support for redirect to any xsk socket bound to the same
   UMEM as it can result in a corruption

 - virtio_net:
   - add missing lock protection when reading return code from control_buf
   - fix false-positive lockdep splat in DIM
   - Revert "wifi: wilc1000: convert list management to RCU"

 - wifi: ath11k: fix error path in ath11k_pcic_ext_irq_config

Previous releases - regressions:

 - rtnetlink: make the "split" NLM_DONE handling generic, restore the old
   behavior for two cases where we started coalescing those messages with
   normal messages, breaking sloppily-coded userspace

 - wifi:
   - cfg80211: validate HE operation element parsing
   - cfg80211: fix 6 GHz scan request building
   - mt76: mt7615: add missing chanctx ops
   - ath11k: move power type check to ASSOC stage, fix connecting
     to 6 GHz AP
   - ath11k: fix WCN6750 firmware crash caused by 17 num_vdevs
   - rtlwifi: ignore IEEE80211_CONF_CHANGE_RETRY_LIMITS
   - iwlwifi: mvm: fix a crash on 7265

Previous releases - always broken:

 - ncsi: prevent multi-threaded channel probing, a spec violation

 - vmxnet3: disable rx data ring on dma allocation failure

 - ethtool: init tsinfo stats if requested, prevent unintentionally
   reporting all-zero stats on devices which don't implement any

 - dst_cache: fix possible races in less common IPv6 features

 - tcp: auth: don't consider TCP_CLOSE to be in TCP_AO_ESTABLISHED

 - ax25: fix two refcounting bugs

 - eth: ionic: fix kernel panic in XDP_TX action

Misc:

 - tcp: count CLOSE-WAIT sockets for TCP_MIB_CURRESTAB

Signed-off-by: Jakub Kicinski <kuba@kernel.org>

6 Jun 2024: tomoyo update for v6.10 [+ + +]
Single patch, no behavior changes.

 
30 May 2024: platform-drivers-x86 for 6.10-2 [+ + +]
Here is the first round of fixes for platform-drivers-x86 for 6.10.

Highlights:
 -  A use-after-free bugfix
 -  2 Kconfig fixes for randconfig builds
 -  Allow setting touchscreen_dmi quirks from the cmdline for debugging
 -  touchscreen_dmi quirks for 2 new laptop/tablet models

Regards,

Hans


platform-drivers-x86 for v6.10-2

Highlights:
 -  A use-after-free bugfix
 -  2 Kconfig fixes for randconfig builds
 -  Allow setting touchscreen_dmi quirks from the cmdline for debugging
 -  touchscreen_dmi quirks for 2 new laptop/tablet models

The following is an automated git shortlog grouped by driver:

ISST:
 -  fix use-after-free in tpmi_sst_dev_remove()

thinkpad_acpi:
 -  Select INPUT_SPARSEKMAP in Kconfig

touchscreen_dmi:
 -  Add info for the EZpad 6s Pro
 -  Add info for GlobalSpace SolT IVW 11.6" tablet
 -  Add support for setting touchscreen properties from cmdline

x86-android-tablets:
 -  Add "select LEDS_CLASS"

30 May 2024: Networking for v6.10-rc2 [+ + +]
Including fixes from bpf and netfilter.

Current release - regressions:

  - gro: initialize network_offset in network layer

  - tcp: reduce accepted window in NEW_SYN_RECV state

Current release - new code bugs:

  - eth: mlx5e: do not use ptp structure for tx ts stats when not initialized

  - eth: ice: check for unregistering correct number of devlink params

Previous releases - regressions:

  - bpf: Allow delete from sockmap/sockhash only if update is allowed

  - sched: taprio: extend minimum interval restriction to entire cycle too

  - netfilter: ipset: add list flush to cancel_gc

  - ipv4: fix address dump when IPv4 is disabled on an interface

  - sock_map: avoid race between sock_map_close and sk_psock_put

  - eth: mlx5: use mlx5_ipsec_rx_status_destroy to correctly delete status rules

Previous releases - always broken:

  - core: fix __dst_negative_advice() race

  - bpf:
    - fix multi-uprobe PID filtering logic
    - fix pkt_type override upon netkit pass verdict

  - netfilter: tproxy: bail out if IP has been disabled on the device

  - af_unix: annotate data-race around unix_sk(sk)->addr

  - eth: mlx5e: fix UDP GSO for encapsulated packets

  - eth: idpf: don't enable NAPI and interrupts prior to allocating Rx buffers

  - eth: i40e: fully suspend and resume IO operations in EEH case

  - eth: octeontx2-pf: free send queue buffers incase of leaf to inner

  - eth: ipvlan: dont Use skb->sk in ipvlan_process_v{4,6}_outbound

Signed-off-by: Paolo Abeni <pabeni@redhat.com>

 
28 May 2024: cpupower update for Linux 6.10-rc2 [+ + +]
Hi Rafael,


This cpupower fixes update for Linux 6.10-rc2 consists of one single
fix to cpupower's P-State frequency calculation and reporting with
AMD Family 1Ah+ processors, when using the acpi-cpufreq driver.

diff is attached.

thanks,
-- Shuah


linux-cpupower-6.10-rc2

This cpupower fixes update for Linux 6.10-rc2 consists of one single
fix to cpupower's P-State frequency calculation and reporting with
AMD Family 1Ah+ processors, when using the acpi-cpufreq driver.

 
25 May 2024: Ceph updates for 6.10-rc1 [+ + +]
We have a series from Xiubo that adds support for additional access
checks based on MDS auth caps which were recently made available to
clients.  This is needed to prevent scenarios where the MDS quietly
discards updates that a UID-restricted client previously (wrongfully)
acked to the user.  Other than that, just a documentation fixup.

25 May 2024: I3C changes for 6.10 [+ + +]
Here is the i3c subsytem pull request for 6.10. Runtime PM (power
management) is improved and hot-join support has been added to the dw
controller driver.

I3C for 6.10

Core:
 - Allow device driver to trigger controller runtime PM

Drivers:
 - dw: hot-join support
 - svc: better IBI handling

25 May 2024: RTC for 6.10 [+ + +]
Here is the RTC subsystem pull request for 6.10. There is one new driver
and then most of the changes are the device tree bindings conversions to
yaml.

RTC for 6.10

New driver:
 - Epson RX8111

Drivers:
 - Many Device Tree bindings conversions to dtschema
 - pcf8563: wakeup-source support

 
24 May 2024: JFFS2 changes for v6.10-rc1 [+ + +]
This pull request contains the following changes for JFFS2:

- Fix Illegal memory access jffs2_free_inode()
- Kernel-doc fixes
- Print symbolic error names

24 May 2024: UML changes for v6.10-rc1 [+ + +]
This pull request contains the following changes for UML:

- Fixes for -Wmissing-prototypes warnings and further cleanup
- Remove callback returning void from rtc and virtio drivers
- Fix bash location

24 May 2024: final MM update for 6.10-rc1 [+ + +]


Jeff Xu's implementation of the mseal() syscall.

24 May 2024: RISC-V Patches for the 6.10 Merge Window, Part 2 [+ + +]
merged tag 'riscv-for-linus-6.10-mw1'
RISC-V Patches for the 6.10 Merge Window, Part 2

* The compression format used for boot images is now configurable at
  build time, and these formats are shown in `make help`.
* access_ok() has been optimized.
* A pair of performance bugs have been fixed in the uaccess handlers.
* Various fixes and cleanups, including one for the IMSIC build failure
  and one for the early-boot ftrace illegal NOPs bug.

24 May 2024: Btrfs updtes for 6.10, part 2 [+ + +]
Hi,

a few more updates, mostly stability fixes or user visible changes.

- fix race in zoned mode during device replace that can lead to
  use-after-free

- update return codes and lower message levels for quota rescan where
  it's causing false alerts

- fix unexpected qgroup id reuse under some conditions

- fix condition when looking up extent refs

- add option norecovery (removed in 6.8), the intended replacements
  haven't been used and some aplications still rely on the old one

- build warning fixes

24 May 2024: erofs more updates for 6.10-rc1 [+ + +]
Could you consider these extra patches for 6.10-rc1?

The main ones are metadata API conversion to byte offsets by
Al Viro.  Since some of patches are also part of VFS
"->bd_inode elimination" (and they were merged upstream days ago),
I did a merge commit to resolve the dependency with the detailed
description.

Another patch gets rid of unnecessary memory allocation out of
DEFLATE decompressor.  The remaining one is a trivial cleanup.

All commits have been in -next and no potential merge conflict is
observed.

Thanks,
Gao Xiang

Changes since last update:

 - Convert metadata APIs to byte offsets;

 - Avoid allocating DEFLATE streams unnecessarily;

 - Some erofs_show_options() cleanup.

24 May 2024: xen: branch for v6.10-rc1 [+ + +]
Please git pull the following tag:


xen: branch for v6.10-rc1

It contains the following patches:

- a small cleanup in the drivers/xen/xenbus Makefile
- a fix of the Xen xenstore driver to improve connecting to a late started
  Xenstore
- an enhancement for better support of ballooning in PVH guests
- a cleanup using try_cmpxchg() instead of open coding it

Thanks.

Juergen

 arch/x86/xen/enlighten.c          | 33 +++++++++++++++++++++++++++++++++
 arch/x86/xen/p2m.c                | 11 +++++------
 drivers/xen/xenbus/Makefile       | 14 ++++++--------
 drivers/xen/xenbus/xenbus_probe.c | 36 +++++++++++++++++++++++-------------
 4 files changed, 67 insertions(+), 27 deletions(-)

 
23 May 2024: Input updates for v6.10-rc0 [+ + +]


to receive updates for the input subsystem. You will get:

- a change to input core to trim amount of keys data in modalias string
  in case when a device declares too many keys and they do not fit in
  uevent buffer instead of reporting an error which results in uevent
  not being generated at all

- support for Machenike G5 Pro Controller added to xpad driver

- support for FocalTech FT5452 and FT8719 added to edt-ft5x06

- support for new SPMI vibrator added to pm8xxx-vibrator driver

- missing locking added to cyapa touchpad driver

- removal of unused fields in various driver structures

- explicit initialization of i2c_device_id::driver_data to 0 dropped
  from input drivers

- other assorted fixes and cleanups.


Changelog:
---------

23 May 2024: i2c-host changes for v6.10 - pt. 2 [+ + +]
Hi Wolfram,

I removed Heiner's commit from the pull request because, as you
found out, there is still one remaining usage of the
I2C_CLASS_SPD macro.

Only Christophe's cleanup is included here, and its description
is in the git tag.

Thanks, and sorry for the inconvenience that brought to this v2.
Andi

a cleanup in the Synquacer code removes the pclk from the global
structure, as it is used only in the probe. Therefore, it is now
declared locally.

23 May 2024: Please pull NFS client updates for 6.10 [+ + +]
23 May 2024: Networking for v6.10-rc1 [+ + +]
Quite smaller than usual. Notably it includes the fix for the unix
regression you have been notified of in the past weeks.
The TCP window fix will require some follow-up, already queued.

Current release - regressions:

  - af_unix: fix garbage collection of embryos

Previous releases - regressions:

  - af_unix: fix race between GC and receive path

  - ipv6: sr: fix missing sk_buff release in seg6_input_core

  - tcp: remove 64 KByte limit for initial tp->rcv_wnd value

  - eth: r8169: fix rx hangup

  - eth: lan966x: remove ptp traps in case the ptp is not enabled.

  - eth: ixgbe: fix link breakage vs cisco switches.

  - eth: ice: prevent ethtool from corrupting the channels.

Previous releases - always broken:

  - openvswitch: set the skbuff pkt_type for proper pmtud support.

  - tcp: Fix shift-out-of-bounds in dctcp_update_alpha().

Misc:

  - a bunch of selftests stabilization patches.

Signed-off-by: Paolo Abeni <pabeni@redhat.com>

23 May 2024: sparc updates for v6.10 [+ + +]
This includes the following changes related to sparc for v6.10:

- Avoid on-stack cpumask variables in a number of places.
- Move struct termio to asm/termios.h, matching other architectures and
  allowing certain user space applications to build also for sparc.
- Fix missing prototype warnings for sparc64.
- Fix version generation warnings for sparc32.
- Fix bug where non-consecutive CPU IDs lead to some CPUs not starting.
- Simplification using swap and cleanup using NULL for pointer.
- Convert sparc parport and chmc drivers to use remove callbacks
  returning void.

23 May 2024: i2c-host changes for v6.10 - pt. 2 [+ + +]
Hi Wolfram,

now that the dependencies are fixed and no error report has been
sent on these two patches, I can finally send the second part of
the i2c pull request.

Thanks,
Andi

Removed the SPD class of i2c devices from the device core.

Additionally, a cleanup in the Synquacer code removes the pclk
from the global structure, as it is used only in the probe.
Therefore, it is now declared locally.

 
22 May 2024: additional non-MM updates for 6.10-rc1 [+ + +]

These things missed the first round of updates as I was awaiting
clarification of readiness and of the consequences of the additional
warnings Arnd is enabling.

Thanks.


- A series ("kbuild: enable more warnings by default") from Arnd
  Bergmann which enables a number of additional build-time warnings.  We
  fixed all the fallout which we could find, there may still be a few
  stragglers.

- Samuel Holland has developed the series "Unified cross-architecture
  kernel-mode FPU API".  This does a lot of consolidation of
  per-architecture kernel-mode FPU usage and enables the use of newer AMD
  GPUs on RISC-V.

- Tao Su has fixed some selftests build warnings in the series
  "Selftests: Fix compilation warnings due to missing _GNU_SOURCE
  definition".

- This pull also includes a nilfs2 fixup from Ryusuke Konishi.

22 May 2024: additional MM updates for 6.10-rc1 [+ + +]


A series from Dave Chinner which cleans up and fixes the handling of
nested allocations within stackdepot and page-owner.

22 May 2024: RISC-V Patches for the 6.10 Merge Window, Part 1 [+ + +]
RISC-V Patches for the 6.10 Merge Window, Part 1

* Support for byte/half-word compare-and-exchange, emulated via LR/SC
  loops.
* Support for Rust.
* Support for Zihintpause in hwprobe.
* Support for the PR_RISCV_SET_ICACHE_FLUSH_CTX prctl().
* Support for lockless lockrefs.

22 May 2024: Driver core changes for 6.10-rc1 [+ + +]
Driver core changes for 6.10-rc1

Here is the small set of driver core and kernfs changes for 6.10-rc1.

Nothing major here at all, just a small set of changes for some driver
core apis, and minor fixups.  Included in here are:
  - sysfs_bin_attr_simple_read() helper added and used
  - device_show_string() helper added and used
All usages of these were acked by the various maintainers.  Also in here
are:
  - kernfs minor cleanup
  - removed unused functions
  - typo fix in documentation
  - pay attention to sysfs_create_link() failures in module.c finally.

All of these have been in linux-next for a very long time with no
reported problems.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

22 May 2024: Char/Misc driver changes for 6.10-rc1 [+ + +]
Char/Misc and other driver subsystem changes for 6.10-rc1

Here is the big set of char/misc and other driver subsystem updates for
6.10-rc1.  Nothing major here, just lots of new drivers and updates for
apis and new hardware types.  Included in here are:
  - big IIO driver updates with more devices and drivers added
  - fpga driver updates
  - hyper-v driver updates
  - uio_pruss driver removal, no one uses it, other drivers control the
    same hardware now
  - binder minor updates
  - mhi driver updates
  - excon driver updates
  - counter driver updates
  - accessability driver updates
  - coresight driver updates
  - other hwtracing driver updates
  - nvmem driver updates
  - slimbus driver updates
  - spmi driver updates
  - other smaller misc and char driver updates

All of these have been in linux-next for a while with no reported
issues.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

22 May 2024: TTY/Serial driver changes for 6.10-rc1 [+ + +]
TTY/Serial changes for 6.10-rc1

Here is the big set of tty/serial driver changes for 6.10-rc1.  Included
in here are:
  - Usual good set of api cleanups and evolution by Jiri Slaby to make
    the serial interfaces move out of the 1990's by using kfifos instead
    of hand-rolling their own logic.
  - 8250_exar driver updates
  - max3100 driver updates
  - sc16is7xx driver updates
  - exar driver updates
  - sh-sci driver updates
  - tty ldisc api addition to help refuse bindings
  - other smaller serial driver updates

All of these have been in linux-next for a while with no reported
issues.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

22 May 2024: Staging driver changes for 6.10-rc1 [+ + +]
Staging driver changes for 6.10-rc1

Here is the big set of staging driver changes for 6.10-rc1.  Not a lot
of cleanups happening this kernel release, intern applications must be
out of sync at the moment.  But we did delete two drivers, wlan-ng and
pi433, as they are no longer in use and the developers involved wanted
them just gone entirely, allowing us to drop 19k lines from the tree.

Other than the normal coding style cleanups here, there has been a lot
of work on the vc04_services code, with the intent to finally get that
out of staging hopefully soon.  It's getting closer, which is nice to
see.

All of these have been in linux-next for a while with no reported
issues.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

22 May 2024: USB/Thunderbolt driver changes for 6.10-rc1 [+ + +]
USB / Thunderbolt changes for 6.10-rc1

Here is the big set of USB and Thunderbolt changes for 6.10-rc1.
Nothing hugely earth-shattering, just constant forward progress for
hardware support of new devices and cleanups over the drivers.

Included in here are:
  - Thunderbolt / USB 4 driver updates
  - typec driver updates
  - dwc3 driver updates
  - gadget driver updates
  - uss720 driver id additions and fixes (people use USB->arallel port
    devices still!)
  - onboard-hub driver rename and additions for new hardware
  - xhci driver updates
  - other small USB driver updates and additions for quirks and api
    changes

All of these have been in linux-next for a while with no reported
problems.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

22 May 2024: LoongArch changes for v6.10 [+ + +]
LoongArch changes for v6.10

1, Select some options in Kconfig;
2, Give a chance to build with !CONFIG_SMP;
3, Switch to use built-in rustc target;
4, Add new supported device nodes to dts;
5, Some bug fixes and other small changes;
6, Update the default config file.

Note: There is a conflict in arch/loongarch/kernel/irq.c, but can be
simply fixed by dropping the modification in this file (because that
section is removed by the kvm tree).

22 May 2024: overlayfs update for 6.10 [+ + +]

tags/ovl-update-6.10

- Add tmpfile support

- Clean up include

Thanks,
Miklos

---
22 May 2024: arch/microblaze patches for 6.10-rc1 [+ + +]
please, pull these two patches to your tree. It is cleaning up code
around early_printk support
which was removed a long time ago.

Thanks,
Michal

Microblaze patches for 6.10-rc1

- Cleanup code around removed early_printk

22 May 2024: fuse update for 6.10 [+ + +]

tags/fuse-update-6.10

- Add fs-verity support (Richard Fung)

- Add multi-queue support to virtio-fs (Peter-Jan Gootzen)

- Fix a bug in NOTIFY_RESEND handling (Hou Tao)

- page -> folio cleanup (Matthew Wilcox)

Thanks,
Miklos

---
22 May 2024: LEDs for v6.10 [+ + +]
 - Core Frameworks
   - Ensure seldom updated triggers have a brightness value before first update

 - New Device Support
   - Add support for Simatic IPC Device BX_59A to IPC LEDs Core
   - Add support for Qualcomm PMI8950 PWM to LPG Core

 - New Functionality
   - Add a bunch of new LED function identifiers
   - Add support for High Resolution Timers in LED Trigger Patten

 - Fix-ups
   - Shift out Audio Trigger to the Sound subsystem
   - Convert suitable calls to devm_* managed resources
   - Device Tree binding adaptions/conversions/creation
   - Remove superfluous code/variables/attributes and simplify overall
   - Use/convert to new/better APIs/helpers/MACROs instead of hand-rolling implementations

 - Bug Fixes
   - Repair enabling Torch Mode from V4L2 on the second LED
   - Ensure PWM is disabled when suspending

22 May 2024: Backlight for v6.10 [+ + +]
 - Fix-ups
   - FB Backlight interaction overhaul
   - Remove superfluous code and simplify overall
   - Constify various structs and struct attributes

 - Bug Fixes
   - Repair LED flickering
   - Fix signedness bugs

22 May 2024: MFD for v6.10 [+ + +]
 - New Device Support
   - Add support for X-Powers AXP717 PMIC to AXP22X
   - Add support for Rockchip RK816 PMIC to RK8XX
   - Add support for TI TPS65224 PMIC to TPS6594

 - New Functionality
   - Add Power Off functionality to Rohm BD71828
   - Allow I2C SMBus access in Renesas RSMU

 - Fix-ups
   - Device Tree binding adaptions/conversions/creation
   - Shift Intel support over to MSI interrupts
   - Generify adding platform data away from being ACPI specific
   - Use device core supplied attribute to register sysfs entries
   - Replace hand-rolled functionality with generic APIs
   - Utilise centrally provided helpers and macros
   - Clean-up error handling
   - Remove superfluous/duplicated/unused sections
   - Trivial; spelling, whitespace, coding-style adaptions
   - More Maple Tree conversions

 
21 May 2024: perf tools changes for v6.10 [+ + +]
Please consider pulling, there is one patch for updating
the tools/lib/ (edited) copy of rbtree.c and rbtree_augmented.h that is
already in your tree, as I didn't notice that Andrew Morton had picked
it until Stephen Rothwell mentioned it to me, no biggie, I think.

Best regards,

- Arnaldo

perf tools fixes and improvements for v6.10:

- Add Kan Liang to MAINTAINERS as a perf tools reviewer.

- Add support for using the 'capstone' disassembler library in various tools,
  such as 'perf script' and 'perf annotate'. This is an alternative for the
  use of the 'xed' and 'objdump' disassemblers.

- Data-type profiling improvements:

  Resolve types for a->b->c by backtracking the assignments until it finds
  DWARF info for one of those members

  Support for global variables, keeping a cache to speed up lookups.

  Handle the 'call' instruction, dealing with effects on registers and handling
  its return when tracking register data types.

  Handle x86's segment based addressing like %gs:0x28, to support things like
  per CPU variables, the stack canary, etc.

  Data-type profiling got big speedups when using capstone for disassembling.
  The objdump outoput parsing method is left as a fallback when capstone fails or
  isn't available. There are patches posted for 6.11 that to use a LLVM
  disassembler.

  Support event group display in the TUI when annotating types with --data-type,
  for instance to show memory load and store events for the data type fields.

  Optimize the 'perf annotate' data structures, reducing memory usage.

  Add a initial 'perf test' for 'perf annotate', checking that a target symbol
  appears on the output, specifying objdump via the command line, etc.

- Integrate the shellcheck utility with the build of perf to allow catching
  shell problems early in areas such as 'perf test', 'perf trace' scrape
  scripts, etc.

- Add 'uretprobe' variant in the 'perf bench uprobe' tool.

- Add script to run instances of 'perf script' in parallel.

- Allow parsing tracepoint names that start with digits, such as
  9p/9p_client_req, etc. Make sure 'perf test' tests it even on systems
  where those tracepoints aren't available.

Vendor Events:

- Update Intel JSON files for Cascade Lake X, Emerald Rapids, Grand Ridge, Ice
  Lake X, Lunar Lake, Meteor Lake, Sapphire Rapids, Sierra Forest, Sky Lake X,
  Sky Lake and Snow Ridge X.  Remove info metrics erroneously in TopdownL1.

- Add AMD's Zen 5 core and uncore events and metrics. Those come from the
  "Performance Monitor Counters for AMD Family 1Ah Model 00h- 0Fh Processors"
  document, with events that capture information on op dispatch, execution and
  retirement, branch prediction, L1 and L2 cache activity, TLB activity, etc.

- Mark L1D_CACHE_INVAL impacted by errata for ARM64's AmpereOne/AmpereOneX.

Miscellaneous:

- Sync header copies with the kernel sources.

- Move some header copies used only for generating translation string tables
  for ioctl cmds and other syscall integer arguments to a new directory under
  tools/perf/beauty/, to separate from copies in tools/include/ that are used
  to build the tools.

- Introduce scrape script for several syscall 'flags'/'mask' arguments.

- Improve cpumap utilization, fixing up pairing of refcounts, using the right
  iterators (perf_cpu_map__for_each_cpu), etc.

- Give more details about raw event encodings in 'perf list', show tracepoint
  encoding in the detailed output.

- Refactor the DSOs handling code, reducing memory usage.

- Document the BPF event modifier and add a 'perf test' for it.

- Improve the event parser, better error messages and add further 'perf test's
  for it.

- Add reference count checking to 'struct comm_str' and 'struct mem_info'.

- Make ARM64's 'perf test' entries for the Neoverse N1 more robust.

- Tweak the ARM64's Coresight 'perf test's.

- Improve ARM64's CoreSight ETM version detection and error reporting.

- Fix handling of symbols when using kcore.

- Fix PAI (Processor Activity Instrumentation) counter names for s390 virtual
  machines in 'perf report'.

- Fix -g/--call-graph option failure in 'perf sched timehist'.

- Add LIBTRACEEVENT_DIR build option to allow building with libtraceevent
  installed in non-standard directories, such as when doing cross builds.

- Various 'perf test' and 'perf bench' fixes.

- Improve 'perf probe' error message for long C++ probe names.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

21 May 2024: more s390 updates for 6.10 merge window [+ + +]
please pull more s390 updates for the 6.10 merge window.

Please note a merge conflict in scripts/Makefile.vdsoinst with commit
1c369b6c9492 ("kbuild: simplify generic vdso installation code").

The resolution seems to be straightforward as resolved in next-20240521 commit

Thanks,
Alexander

more s390 updates for 6.10 merge window

- Switch read and write software bits for PUDs

- Add missing hardware bits for PUDs and PMDs

- Generate unwind information for C modules to fix GDB unwind
  error for vDSO functions

- Create .build-id links for unstripped vDSO files to enable
  vDSO debugging with symbols

- Use standard stack frame layout for vDSO generated stack frames
  to manually walk stack frames without DWARF information

- Rework perf_callchain_user() and arch_stack_walk_user() functions
  to reduce code duplication

- Skip first stack frame when walking user stack

- Add basic checks to identify invalid instruction pointers when
  walking stack frames

- Introduce and use struct stack_frame_vdso_wrapper within vDSO user
  wrapper code to automatically generate an asm-offset define. Also
  use STACK_FRAME_USER_OVERHEAD instead of STACK_FRAME_OVERHEAD to
  document that the code works with user space stack

- Clear the backchain of the extra stack frame added by the vDSO user
  wrapper code. This allows the user stack walker to detect and skip
  the non-standard stack frame. Without this an incorrect instruction
  pointer would be added to stack traces.

- Rewrite psw_idle() function in C to ease maintenance and further
  enhancements

- Remove get_vtimer() function and use get_cpu_timer() instead

- Mark psw variable in __load_psw_mask() as __unitialized to avoid
  superfluous clearing of PSW

- Remove obsolete and superfluous comment about removed TIF_FPU flag

- Replace memzero_explicit() and kfree() with kfree_sensitive() to
  fix warnings reported by Coccinelle

- Wipe sensitive data and all copies of protected- or secure-keys
  from stack when an IOCTL fails

- Both do_airq_interrupt() and do_io_interrupt() functions set
  CIF_NOHZ_DELAY flag. Move it in do_io_irq() to simplify the code

- Provide iucv_alloc_device() and iucv_release_device() helpers,
  which can be used to deduplicate more or less identical IUCV
  device allocation and release code in four different drivers

- Make use of iucv_alloc_device() and iucv_release_device()
  helpers to get rid of quite some code and also remove a
  cast to an incompatible function (clang W=1)

- There is no user of iucv_root outside of the core IUCV code left.
  Therefore remove the EXPORT_SYMBOL

- __apply_alternatives() contains a runtime check which verifies
  that the size of the to be patched code area is even. Convert
  this to a compile time check

- Increase size of buffers for sending z/VM CP DIAGNOSE X'008'
  commands from 128 to 240

- Do not accept z/VM CP DIAGNOSE X'008' commands longer than
  maximally allowed

- Use correct defines IPL_BP_NVME_LEN and IPL_BP0_NVME_LEN instead
  of IPL_BP_FCP_LEN and IPL_BP0_FCP_LEN ones to initialize NVMe
  reIPL block on 'scp_data' sysfs attribute update

- Initialize the correct fields of the NVMe dump block, which
  were confused with FCP fields

- Refactor macros for 'scp_data' (re-)IPL sysfs attribute to
  reduce code duplication

- Introduce 'scp_data' sysfs attribute for dump IPL to allow tools
  such as dumpconf passing additional kernel command line parameters
  to a stand-alone dumper

- Rework the CPACF query functions to use the correct RRE or RRF
  instruction formats and set instruction register fields correctly

- Instead of calling BUG() at runtime force a link error during
  compile when a unsupported opcode is used with __cpacf_query()
  or __cpacf_check_opcode() functions

- Fix a crash in ap_parse_bitmap_str() function on /sys/bus/ap/apmask
  or /sys/bus/ap/aqmask sysfs file update with a relative mask value

- Fix "bindings complete" udev event which should be sent once all AP
  devices have been bound to device drivers and again when unbind/bind
  actions take place and all AP devices are bound again

- Facility list alt_stfle_fac_list is nowhere used in the decompressor,
  therefore remove it there

- Remove custom kprobes insn slot allocator in favour of the standard
  module_alloc() one, since kernel image and module areas are located
  within 4GB

- Use kvcalloc() instead of kvmalloc_array() in zcrypt driver to avoid
  calling memset() with a large byte count and get rid of the sparse
  warning as result

21 May 2024: Mailbox changes for v6.10 [+ + +]
omap: redo the driver from legacy to mailbox api
zynqmp: enable bufferless IPI
arm: add mhu-v3 driver
common: convert from tasklet to BH workqueue
qcom: MSM8974 APCS compatible

21 May 2024: : Generic phy updates for v6.10-rc1 [+ + +]

Hey Linus,

Here is the set for Generic phy subsystem. This features new Embedded
DisplayPort and DisplayPort submodes support, along with bunch of
devices and a new driver along with updates to drivers.
I had to merge fixes branch into next to resolve dependencies for
incoming patches so this request is based on phy-fixes already merged by
you.

phy-for-6.10

- New Support
  - Support for Embedded DisplayPort and DisplayPort submodes and driver
    support on Qualcomm X1E80100 edp driver
  - Qualcomm QMP UFS PHY for SM8475, QMP USB phy for QDU1000/QRU1000 and
    eusb2-repeater for SMB2360
  - Samsung HDMI PHY for i.MX8MP, gs101 UFS phy
  - Mediatek XFI T-PHY support for mt7988
  - Rockchip usbdp combo phy driver

- Updates
  - Qualcomm x4 lane EP support for sa8775p, v4 ad v6 support for X1E80100,
    SM8650 tables for UFS Gear 4 & 5 and correct voltage swing tables
  - Freescale imx8m-pci pcie link-up updates
  - Rockchip rx-common-refclk-mode support
  - More platform remove callback returning void conversions

21 May 2024: : soundwire updates for v6.10 [+ + +]

Hi again,

subsystem updates features Greg's sysfs group cleanup, Intel ace2x and pm
improvements and qcom multi link device support.

soundwire updates for 6.10

 - cleanup and conversion for soundwire sysfs groups
 - intel support for ace2x bits, auxdevice pm improvements
 - qcom multi link device support

21 May 2024: : dmaengine updates for v6.10 [+ + +]

Hello Linus,

Back from Linaro Connect, time to send the pull requests. Here is the
first one for dmaengine subsystem.
This one has couple of new device support and updates in drivers

dmaengine updates for v6.10

 New support:
  - Freescale i.MX8ULP edma support in edma driver
  - StarFive JH8100 DMA support in Synopsis axi-dmac driver

 Updates:
 - Tracing support for freescale edma driver, updates to dpaa2 driver
 - Remove unused QCom hidma DT support
 - Support for i2c dma in imx-sdma
 - Maintainers update for idxd and edma drivers

21 May 2024: m68knommu changes for v6.10 [+ + +]

Only a single change, to remove the use of a kernel config option
from a m68k specific uapi header.

Regards
Greg




m68knommu: updates and fixes for v6.10

. remove use of kernel config option from uapi header

 
20 May 2024: remoteproc updates for v6.10 [+ + +]
remoteproc updates for v6.10

This makes the remoteproc core rproc_class const.

DeviceTree bindings for a few different Qualcomm remoteprocs are updated
to remove a range of validation warnings/errors.  The Qualcomm SMD
binding marks qcom,ipc deprecated, in favor or the mailbox interface.

The TI K3 R5 remoteproc driver is updated to ensure that cores are
powered up in the appropriate order. The driver also see a couple of
fixes related to cleanups in error paths during probe.

The Mediatek remoteproc driver is extended to support the MT8188 SCP
core 1. Support for varying DRAM and IPI shared buffer sizes are
introduced. This together with a couple of bug fixes and improvements to
the driver.

Support for the AMD-Xilinx Versal and Versal-NET platforms are added.
Coredump support and support for parsing TCM information from DeviceTree
is added to the Xilinx R5F remoteproc driver.

20 May 2024: rpmsg updates for v6.10 [+ + +]
rpmsg updates for v6.10

This makes core rpmsg_class const and it ensures automatic module
loading of the Qualcomm glink_ssr driver happens.

20 May 2024: PCI changes for v6.10 [+ + +]
Enumeration:

  - Skip E820 checks for MCFG ECAM regions for new (2016+) machines, since
    there's no requirement to describe them in E820 and some platforms
    require ECAM to work (Bjorn Helgaas)

  - Rename PCI_IRQ_LEGACY to PCI_IRQ_INTX to be more specific (Damien Le
    Moal)

  - Remove last user and pci_enable_device_io() (Heiner Kallweit)

  - Wait for Link Training==0 to avoid possible race (Ilpo Järvinen)

  - Skip waiting for devices that have been disconnected while suspended
    (Ilpo Järvinen)

  - Clear Secondary Status errors after enumeration since Master Aborts and
    Unsupported Request errors are an expected part of enumeration (Vidya
    Sagar)

MSI:

  - Remove unused IMS (Interrupt Message Store) support (Bjorn Helgaas)

Error handling:

  - Mask Genesys GL975x SD host controller Replay Timer Timeout correctable
    errors caused by a hardware defect; the errors cause interrupts that
    prevent system suspend (Kai-Heng Feng)

  - Fix EDR-related _DSM support, which previously evaluated revision 5 but
    assumed revision 6 behavior (Kuppuswamy Sathyanarayanan)

ASPM:

  - Simplify link state definitions and mask calculation (Ilpo Järvinen)

Power management:

  - Avoid D3cold for HP Pavilion 17 PC/1972 PCIe Ports, where BIOS
    apparently doesn't know how to put them back in D0 (Mario Limonciello)

CXL:

  - Support resetting CXL devices; special handling required because CXL
    Ports mask Secondary Bus Reset by default (Dave Jiang)

DOE:

  - Support DOE Discovery Version 2 (Alexey Kardashevskiy)

Endpoint framework:

  - Set endpoint BAR to be 64-bit if the driver says that's all the device
    supports, in addition to doing so if the size is >2GB (Niklas Cassel)

  - Simplify endpoint BAR allocation and setting interfaces (Niklas Cassel)

Cadence PCIe controller driver:

  - Drop DT binding redundant msi-parent and pci-bus.yaml (Krzysztof
    Kozlowski)

Cadence PCIe endpoint driver:

  - Configure endpoint BARs to be 64-bit based on the BAR type, not the BAR
    value (Niklas Cassel)

Freescale Layerscape PCIe controller driver:

  - Convert DT binding to YAML (Frank Li)

MediaTek MT7621 PCIe controller driver:

  - Add DT binding missing 'reg' property for child Root Ports (Krzysztof
    Kozlowski)

  - Fix theoretical string truncation in PHY name (Sergio Paracuellos)

NVIDIA Tegra194 PCIe controller driver:

  - Return success for endpoint probe instead of falling through to the
    failure path (Vidya Sagar)

Renesas R-Car PCIe controller driver:

  - Add DT binding missing IOMMU properties (Geert Uytterhoeven)

  - Add DT binding R-Car V4H compatible for host and endpoint mode
    (Yoshihiro Shimoda)

Rockchip PCIe controller driver:

  - Configure endpoint BARs to be 64-bit based on the BAR type, not the BAR
    value (Niklas Cassel)

  - Add DT binding missing maxItems to ep-gpios (Krzysztof Kozlowski)

  - Set the Subsystem Vendor ID, which was previously zero because it was
    masked incorrectly (Rick Wertenbroek)

Synopsys DesignWare PCIe controller driver:

  - Restructure DBI register access to accommodate devices where this
    requires Refclk to be active (Manivannan Sadhasivam)

  - Remove the deinit() callback, which was only need by the
    pcie-rcar-gen4, and do it directly in that driver (Manivannan
    Sadhasivam)

  - Add dw_pcie_ep_cleanup() so drivers that support PERST# can clean up
    things like eDMA (Manivannan Sadhasivam)

  - Rename dw_pcie_ep_exit() to dw_pcie_ep_deinit() to make it parallel to
    dw_pcie_ep_init() (Manivannan Sadhasivam)

  - Rename dw_pcie_ep_init_complete() to dw_pcie_ep_init_registers() to
    reflect the actual functionality (Manivannan Sadhasivam)

  - Call dw_pcie_ep_init_registers() directly from all the glue drivers,
    not just those that require active Refclk from the host (Manivannan
    Sadhasivam)

  - Remove the "core_init_notifier" flag, which was an obscure way for glue
    drivers to indicate that they depend on Refclk from the host
    (Manivannan Sadhasivam)

TI J721E PCIe driver:

  - Add DT binding J784S4 SoC Device ID (Siddharth Vadapalli)

  - Add DT binding J722S SoC support (Siddharth Vadapalli)

TI Keystone PCIe controller driver:

  - Add DT binding missing num-viewport, phys and phy-name properties (Jan
    Kiszka)

Miscellaneous:

  - Constify and annotate with __ro_after_init (Heiner Kallweit)

  - Convert DT bindings to YAML (Krzysztof Kozlowski)

  - Check for kcalloc() failure in of_pci_prop_intr_map() (Duoming Zhou)

20 May 2024: soc: devicetree updates for v6.10, part 2 [+ + +]
soc: devicetree updates for v6.10, part 2

This is a follow-up to an earlier pull request for device tree changes,
as three platform maintainers sent their contents too late to be included
in the main set, but had not caused any further problems since then:

 - The Amlogic platform now containts support for two new SoC types,
   the A4 and A5 chips for audio applications. Both come with a
   reference board, and one more dts file gets addded for the
   combination of the MNT Reform Laptop with the BPI-CM4 CPU
   module

 - The ASpeed platform adds support for six addititional server
   platforms that use ast2500 or ast2600 as their BMC, while
   another one gets removed.

 - The RISC-V platforms from Microchip, Starfive and and T-HEAD
   get additional features for existing hardware, plus the
   addition of the Milk-V Mars based on the StarFive VisionFive v2
   board.

20 May 2024: f2fs update for 6.10-rc1 [+ + +]
Could you please consider this pull reuqest?

Thanks,

f2fs update for 6.10-rc1

In this round, we've tried to address some performance issues on zoned storage
such as direct IO and write_hints. In addition, we've migrated some IO paths
using folio. Meanwhile, there are multiple bug fixes in the compression paths,
sanity check conditions, and error handlers.

Enhancement:
 - allow direct io of pinned files for zoned storage
 - assign the write hint per stream by default
 - convert read paths and test_writeback to folio
 - avoid allocating WARM_DATA segment for direct IO

Bug fix:
 - fix false alarm on invalid block address
 - fix to add missing iput() in gc_data_segment()
 - fix to release node block count in error path of f2fs_new_node_page()
 - compress: don't allow unaligned truncation on released compress inode
 - compress: fix to cover {reserve,release}_compress_blocks() w/ cp_rwsem lock
 - compress: fix error path of inc_valid_block_count()
 - compress: fix to update i_compr_blocks correctly
 - fix block migration when section is not aligned to pow2
 - don't trigger OPU on pinfile for direct IO
 - fix to do sanity check on i_xattr_nid in sanity_check_inode()
 - write missing last sum blk of file pinning section
 - clear writeback when compression failed
 - fix to adjust appropirate defragment pg_end

As usual, there are several minor code clean-ups, and fixes to manage missing
corner cases in the error paths.

20 May 2024: VFIO updates for v6.10-rc1 [+ + +]
I've provided the simplified diffstat from a temporary merge branch to
avoid the noise of merging QAT dependencies from a branch provided by
Herbert.  The dependencies were already merged in commit 84c7d76b5ab6
Thanks,

Alex

VFIO updates for v6.10-rc1

 - The vfio fsl-mc bus driver has become orphaned.  We'll consider
   removing it in future releases if a new maintainer isn't found.
   (Alex Williamson)

 - Improved usage of opaque data in vfio-pci INTx handling,
   avoiding lookups of the eventfd through the interrupt and
   irqfd runtime paths. (Alex Williamson)

 - Resolve an error path memory leak introduced in vfio-pci
   interrupt code. (Ye Bin)

 - Addition of interrupt support for vfio devices exposed on the
   CDX bus, including a new MSI allocation helper and export of
   existing helpers for MSI alloc and free. (Nipun Gupta)

 - A new vfio-pci variant driver supporting migration of Intel
   QAT VF devices for the GEN4 PFs. (Xin Zeng & Yahui Cao)

 - Resolve a possibly circular locking dependency in vfio-pci
   by avoiding copy_to_user() from a PCI bus walk callback.
   (Alex Williamson)

 - Trivial docs update to remove a duplicate semicolon.
   (Foryun Ma)

20 May 2024: dma-mapping updates for Linux 6.10 [+ + +]
Note that the the dma sync optimizations reach into the networking code
and promptly caused a conflict where the netdev tree constifies the page
argument to page_pool_dma_sync_for_device and this tree renames that
function to page_pool_dma_sync_for_device.  The dma-mapping version of
the merge just works, but you might want to pick the contification
manually if you think it is useful.

dma-mapping updates for Linux 6.10

 - optimize DMA sync calls when they are no-ops (Alexander Lobakin)
 - fix swiotlb padding for untrusted devices (Michael Kelley)
 - add documentation for swiotb (Michael Kelley)

20 May 2024: MIPS changes for v6.10 [+ + +]
just cleanups and fixes

20 May 2024: dmi update for v6.10 [+ + +]


Summary of changes:
* Bug fixes:
  - KCFI violation in dmi-id
  - Panic on broken (short) DMI table entry
* New features:
  - Print info about populated memory slots at boot

This is the first time I use a signed tag for a pull request, I hope I
got it right, if not feel free to complain.

 drivers/firmware/dmi-id.c   |  7 ++++++-
 drivers/firmware/dmi_scan.c | 17 +++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)


20 May 2024: pin control bulk changes for v6.10 [+ + +]
here is the bulk of pin control changes for v6.10. This time
low activity and not very much interesting, it's even very little
driver activity.

Anyways: details in the signed tag, please pull it in!

Yours,
Linus Walleij

Pin control changes for the v6.10 kernel cycle:

Core changes:

- Use DEFINE_SHOW_STORE_ATTRIBUTE() in debugfs entries.

New drivers:

- Qualcomm PMIH0108, PMD8028, PMXR2230 and PM6450
  pin control support.

Improvements:

- Serious cleanup of the recently merged aw9523 driver.

- Fix PIN_CONFIG_BIAS_DISABLE handling in pinctrl-single.

- A slew of device tree binding cleanups.

- Support a bus clock in the Samsung driver.

 
19 May 2024: bitmap changes for 6.10 [+ + +]
bitmap patches for 6.10

Hi Linus,

 - topology_span_sane() optimization from Kyle Meyer;
 - fns() rework from Kuan-Wei Chiu (used in
   cpumask_local_spread() and other places); and
 - headers cleanup from Andy.

This also adds a MAINTAINERS record for bitops API as it's unattended,
and I'd like to follow it closer.

v2: drop binary fns().

Thanks,
Yury

 
20 May 2024: drm urgent (part 2) for 6.10-rc1 [+ + +]
Here is Arunpravin's second fix for the buddy allocator warnings you
have been seeing, hopefully this is the end of that, and thanks for
your patience.

Regards,
Dave.

drm-next-2024-05-20:
drm urgent (the 2nd) for 6.10-rc1

buddy:
- fix WARN_ONs during force merge
drm urgent (the 2nd) for 6.10-rc1

buddy:
- fix WARN_ONs during force merge

 
19 May 2024: non-MM updates for 6.10-rc1 [+ + +]

I'm seeing a little conflict in init/main.c - addition of a code comment.


Mainly singleton patches, documented in their respective changelogs.
Notable series include:

- Some maintenance and performance work for ocfs2 in Heming Zhao's
  series "improve write IO performance when fragmentation is high".

- Some ocfs2 bugfixes from Su Yue in the series "ocfs2 bugs fixes
  exposed by fstests".

- kfifo header rework from Andy Shevchenko in the series "kfifo: Clean
  up kfifo.h".

- GDB script fixes from Florian Rommel in the series "scripts/gdb: Fixes
  for $lx_current and $lx_per_cpu".

- After much discussion, a coding-style update from Barry Song
  explaining one reason why inline functions are preferred over macros.
  The series is "codingstyle: avoid unused parameters for a function-like
  macro".

 
18 May 2024: Turbostat 2024.05.10 for Linux-6.10-merge [+ + +]
Turbostat 2024.05.10 update since 2024.04.08:

Survive sparse die id's seen in Linux-6.9.

Handle clustered-uncore topology in new/upcoming hardware.

For non-root use, add ability to see software C-state counters.

Enable reading core and package hardware cstate via perf,
and prefer perf over the MSR driver access for these counters.

18 May 2024: kgdb changes for v6.10 [+ + +]
kgdb patches for 6.10

Nine patches this cycle and they split into just three topics:

1. Adopt coccinelle's recommendation to adopt str_plural().
2. A set of seven patches to refactor kdb_read() to improve both code clarity
   and it's discipline with respect to fixed size buffers. This isn't just a
   refactor. Between them these also fix a cursor movement redraw problem and
   two buffer overflows (one latent and one real, albeit difficult to
   tickle).
3. Fix an NMI-safety problem when enqueuing kdb's keyboard reset code.

I wrote eight of the nine patches in this collection so many thanks to Doug
Anderson for the reviews. The changes that affects drivers/tty/serial is
acked by Greg KH.

Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>

18 May 2024: Performance events updates for v6.10, #2 [+ + +]



Changes:

 - Extend the x86 instruction decoder with APX and
   other new instructions

 - Misc cleanups

Note that these commits were delayed to after when/if x86/cpu was merged 
upstream, due to this merge dependency:

  10ed2b118116 Merge branch 'x86/cpu' into perf/core, to pick up dependent commits

 Thanks,

Ingo

18 May 2024: ext4 updates for v6.10-rc1 [+ + +]
Ext4 patches for the 6.10-rc1 merge window:
 - more folio conversion patches
 - add support for FS_IOC_GETFSSYSFSPATH
 - mballoc cleaups and add more kunit tests
 - sysfs cleanups and bug fixes
 - miscellaneous bug fixes and cleanups

 
17 May 2024: MM updates for 6.10-rc1 [+ + +]

Conflicts with your current tree and their linux-next resolution are:

tools/testing/selftests/mm/soft-dirty.c
https://lkml.kernel.org/r/20240426154414.4d408fd7@canb.auug.org.au

The linux-next dicsussion isn't very helpful here.  The fix is to use
ksft_finished().

kernel/module/main.c
https://lkml.kernel.org/r/20240412120421.27d86c34@canb.auug.org.au

io_uring/io_uring.c
https://lkml.kernel.org/r/20240402112746.3864d8a6@canb.auug.org.au

include/linux/slab.h
https://lkml.kernel.org/r/20240429114302.7af809e8@canb.auug.org.au

arch/powerpc/mm/mem.c
https://lkml.kernel.org/r/20240424122034.5b4a1a01@canb.auug.org.au


and forthcoming merge issues which I know of are:

arch/x86/mm/numa_32.c, vs tip tree
https://lkml.kernel.org/r/20240405115111.132053a5@canb.auug.org.au

drivers/iommu/amd/amd_iommu.h, vs iommu tree:
https://lkml.kernel.org/r/20240416132223.30cfa738@canb.auug.org.au

drivers/virtio/virtio_mem.c, vs vhost tree:
https://lkml.kernel.org/r/20240423145947.142171f6@canb.auug.org.au

include/linux/kfifo.c, lib/kfifo.c, vs tty tree:
https://lkml.kernel.org/r/20240426145540.1593f8f4@canb.auug.org.au

arch/um/include/shared/um_malloc.h, vs uml tree:
https://lkml.kernel.org/r/20240501091942.1999963d@canb.auug.org.au

init/main.c, vs ftrace tree:
https://lkml.kernel.org/r/20240515123758.30904383@canb.auug.org.au


The usual shower of singleton fixes and minor series all over MM,
documented (hopefully adequately) in the respective changelogs.  Notable
series include:

- Lucas Stach has provided some page-mapping
  cleanup/consolidation/maintainability work in the series "mm/treewide:
  Remove pXd_huge() API".

- In the series "Allow migrate on protnone reference with
  MPOL_PREFERRED_MANY policy", Donet Tom has optimized mempolicy's
  MPOL_PREFERRED_MANY mode, yielding almost doubled performance in one
  test.

- In their series "Memory allocation profiling" Kent Overstreet and
  Suren Baghdasaryan have contributed a means of determining (via
  /proc/allocinfo) whereabouts in the kernel memory is being allocated:
  number of calls and amount of memory.

- Matthew Wilcox has provided the series "Various significant MM
  patches" which does a number of rather unrelated things, but in largely
  similar code sites.

- In his series "mm: page_alloc: freelist migratetype hygiene" Johannes
  Weiner has fixed the page allocator's handling of migratetype requests,
  with resulting improvements in compaction efficiency.

- In the series "make the hugetlb migration strategy consistent" Baolin
  Wang has fixed a hugetlb migration issue, which should improve hugetlb
  allocation reliability.

- Liu Shixin has hit an I/O meltdown caused by readahead in a
  memory-tight memcg.  Addressed in the series "Fix I/O high when memory
  almost met memcg limit".

- In the series "mm/filemap: optimize folio adding and splitting" Kairui
  Song has optimized pagecache insertion, yielding ~10% performance
  improvement in one test.

- Baoquan He has cleaned up and consolidated the early zone
  initialization code in the series "mm/mm_init.c: refactor
  free_area_init_core()".

- Baoquan has also redone some MM initializatio code in the series
  "mm/init: minor clean up and improvement".

- MM helper cleanups from Christoph Hellwig in his series "remove
  follow_pfn".

- More cleanups from Matthew Wilcox in the series "Various page->flags
  cleanups".

- Vlastimil Babka has contributed maintainability improvements in the
  series "memcg_kmem hooks refactoring".

- More folio conversions and cleanups in Matthew Wilcox's series

"Convert huge_zero_page to huge_zero_folio"
"khugepaged folio conversions"
"Remove page_idle and page_young wrappers"
"Use folio APIs in procfs"
"Clean up __folio_put()"
"Some cleanups for memory-failure"
"Remove page_mapping()"
"More folio compat code removal"

- David Hildenbrand chipped in with "fs/proc/task_mmu: convert hugetlb
  functions to work on folis".

- Code consolidation and cleanup work related to GUP's handling of
  hugetlbs in Peter Xu's series "mm/gup: Unify hugetlb, part 2".

- Rick Edgecombe has developed some fixes to stack guard gaps in the
  series "Cover a guard gap corner case".

- Jinjiang Tu has fixed KSM's behaviour after a fork+exec in the series
  "mm/ksm: fix ksm exec support for prctl".

- Baolin Wang has implemented NUMA balancing for multi-size THPs.  This
  is a simple first-cut implementation for now.  The series is "support
  multi-size THP numa balancing".

- Cleanups to vma handling helper functions from Matthew Wilcox in the
  series "Unify vma_address and vma_pgoff_address".

- Some selftests maintenance work from Dev Jain in the series
  "selftests/mm: mremap_test: Optimizations and style fixes".

- Improvements to the swapping of multi-size THPs from Ryan Roberts in
  the series "Swap-out mTHP without splitting".

- Kefeng Wang has significantly optimized the handling of arm64's
  permission page faults in the series

"arch/mm/fault: accelerate pagefault when badaccess"
"mm: remove arch's private VM_FAULT_BADMAP/BADACCESS"

- GUP cleanups from David Hildenbrand in "mm/gup: consistently call it
  GUP-fast".

- hugetlb fault code cleanups from Vishal Moola in "Hugetlb fault path to
  use struct vm_fault".

- selftests build fixes from John Hubbard in the series "Fix
  selftests/mm build without requiring "make headers"".

- Memory tiering fixes/improvements from Ho-Ren (Jack) Chuang in the
  series "Improved Memory Tier Creation for CPUless NUMA Nodes".  Fixes
  the initialization code so that migration between different memory types
  works as intended.

- David Hildenbrand has improved follow_pte() and fixed an errant driver
  in the series "mm: follow_pte() improvements and acrn follow_pte()
  fixes".

- David also did some cleanup work on large folio mapcounts in his
  series "mm: mapcount for large folios + page_mapcount() cleanups".

- Folio conversions in KSM in Alex Shi's series "transfer page to folio
  in KSM".

- Barry Song has added some sysfs stats for monitoring multi-size THP's
  in the series "mm: add per-order mTHP alloc and swpout counters".

- Some zswap cleanups from Yosry Ahmed in the series "zswap same-filled
  and limit checking cleanups".

- Matthew Wilcox has been looking at buffer_head code and found the
  documentation to be lacking.  The series is "Improve buffer head
  documentation".

- Multi-size THPs get more work, this time from Lance Yang.  His series
  "mm/madvise: enhance lazyfreeing with mTHP in madvise_free" optimizes
  the freeing of these things.

- Kemeng Shi has added more userspace-visible writeback instrumentation
  in the series "Improve visibility of writeback".

- Kemeng Shi then sent some maintenance work on top in the series "Fix
  and cleanups to page-writeback".

- Matthew Wilcox reduces mmap_lock traffic in the anon vma code in the
  series "Improve anon_vma scalability for anon VMAs".  Intel's test bot
  reported an improbable 3x improvement in one test.

- SeongJae Park adds some DAMON feature work in the series

"mm/damon: add a DAMOS filter type for page granularity access recheck"
"selftests/damon: add DAMOS quota goal test"

- Also some maintenance work in the series

"mm/damon/paddr: simplify page level access re-check for pageout"
"mm/damon: misc fixes and improvements"

- David Hildenbrand has disabled some known-to-fail selftests ni the
  series "selftests: mm: cow: flag vmsplice() hugetlb tests as XFAIL".

- memcg metadata storage optimizations from Shakeel Butt in "memcg:
  reduce memory consumption by memcg stats".

- DAX fixes and maintenance work from Vishal Verma in the series
  "dax/bus.c: Fixups for dax-bus locking".

17 May 2024: tracing/tools: RTLA updates for 6.10 [+ + +]

Specific for timerlat:

- Improves the output of timerlat top by adding a missing \n,
  and by avoiding printing color-formatting characters where
  they are translated to regular characters.

- Improves timerlat auto-analysis output by replacing '\t'
  with spaces to avoid copy-and-paste issues when reporting
  problems.

- For timerlat, make the user-space (-u) option the default,
  as it is the most complete test. Add a -k option to use
  the in-kernel workload.

- On timerlat top and hist, add a summary with the overall
  results. For instance, the minimum value for all CPUs,
  the overall average and the maximum value from all CPUs.

- timerlat hist was printing initial values (i.e., 0 as max,
  and ~0 as min) if the trace stopped before the first Ret-User
  event. This problem was fixed by printing the "       - "
  no value string to the output if that was the case.

For all RTLA tools:

- Add a --warm-up <seconds> option, allowing the workload to
  run for <seconds> before starting to collect results.

- Add a --trace-buffer-size option, allowing the user to set
  the tracing buffer size for -t option. This option is mainly
  useful for reducing the trace file. Now rtla depends on
  libtracefs >= 1.6.

- Fix the -t [trace_file] parsing, now it does not require
  the '=' before the option parameter, and better handles the
  multiple ways a user can pass the trace_file.txt




trace-tools-v6.10

Tag SHA1: 2e2ffd01fe2dd06c66621bf7404beb31beb50ea1
Head SHA1: 59c22f70b2951d81de410d477ae536ba951b4f37


17 May 2024: power-supply changes for 6.10 [+ + +]

Hi Linus,

Just a few changes this time. All patches have been in -next for 7
weeks except for the dt-binding change, which I apparently forgot
to push out. I still included it in the pull request, since it is
just a simple documentation fix. There should be no merge conflicts.

power supply and reset changes for the 6.10 series

 * core: simplify POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR handling
 * test-power: add POWER_SUPPLY_PROP_CHARGE_BEHAVIOUR support
 * chrome EC drivers: add ID based probing
 * bq27xxx: simplify update loop to reduce I2C traffic
 * max8903 binding: fix GPIO polarity description

17 May 2024: NFSD changes for v6.10 [+ + +]
NFSD 6.10 Release Notes

This is a light release containing mostly optimizations, code clean-
ups, and minor bug fixes. This development cycle has focused on non-
upstream kernel work:

1. Continuing to build upstream CI for NFSD, based on kdevops
2. Backporting NFSD filecache-related fixes to selected LTS kernels

One notable new feature in v6.10 NFSD is the addition of a new
netlink protocol dedicated to configuring NFSD. A new user space
tool, nfsdctl, is to be added to nfs-utils. Lots more to come here.

As always I am very grateful to NFSD contributors, reviewers,
testers, and bug reporters who participated during this cycle.

17 May 2024: random number generator updates for 6.10-rc1 [+ + +]
I usually like to send you a pull early, but things got a bit delayed for me.
Nonetheless, these three small commits have been cooking in -next for a while
and I don't expect much trouble.

This pull has one new feature:

- The vmgenid driver can now be bound using device tree, rather than just
  ACPI. The improvement, from Sudan, lets Amazon's Firecracker VMM make use of
  the virtual device without having to expose an otherwise unused ACPI stack
  in their "micro VM".


Thanks,
Jason

Random number generator updates for Linux 6.10-rc1.
17 May 2024: Kbuild updates for v6.10-rc1 [+ + +]



You will see conflicts in 4 files.

All of them are properly resolved in linux-next.



After merging this pull request, just in case, please run

  $ git grep '$(srctree)/$(src)'

If you get a hit, please replace $(srctree)/$(src) with $(src).


My commit b1992c3772e6 needs to consistently replace $(srctree)/$(src),
but I cannot touch in-flight patches merged in other subsystems.



The following are the merge conflicts I am aware of:



[1] drivers/gpu/drm/msm/Makefile

conflict between 0fddd045f88e between b1992c3772e6

addressed by:
https://lore.kernel.org/all/20240507125132.2af57c71@canb.auug.org.au/


[2] drivers/misc/lkdtm/Makefile

conflict between fb28a8862dc4 between 7f7f6f7ad654

addressed by:
https://lore.kernel.org/all/20240513151316.6bd6fc87@canb.auug.org.au/


[3] drivers/net/wireless/intel/iwlwifi/mvm/Makefile

conflict between 2887af4d22f9 and b1992c3772e6

addressed by:
https://lore.kernel.org/all/20240506112810.02ae6c17@canb.auug.org.au/


[4] rust/Makefile

conflict between 11795ae4cc43 and b1992c3772e6

addressed by:
https://lore.kernel.org/all/20240506153333.7b36a0e6@canb.auug.org.au/







Thank you.




Kbuild updates for v6.10

 - Avoid 'constexpr', which is a keyword in C23

 - Allow 'dtbs_check' and 'dt_compatible_check' run independently of
   'dt_binding_check'

 - Fix weak references to avoid GOT entries in position-independent
   code generation

 - Convert the last use of 'optional' property in arch/sh/Kconfig

 - Remove support for the 'optional' property in Kconfig

 - Remove support for Clang's ThinLTO caching, which does not work with
   the .incbin directive

 - Change the semantics of $(src) so it always points to the source
   directory, which fixes Makefile inconsistencies between upstream and
   downstream

 - Fix 'make tar-pkg' for RISC-V to produce a consistent package

 - Provide reasonable default coverage for objtool, sanitizers, and
   profilers

 - Remove redundant OBJECT_FILES_NON_STANDARD, KASAN_SANITIZE, etc.

 - Remove the last use of tristate choice in drivers/rapidio/Kconfig

 - Various cleanups and fixes in Kconfig

17 May 2024: IOMMU Updates for Linux v6.10 [+ + +]
There is a small and easy to resolve conflict with these changes in
drivers/acpi/scan.c. Please take the version that comes from the iommu
tree.  With this being said:

IOMMU Updates for Linux v6.10

Including:

- Core:
  - IOMMU memory usage observability - This will make the memory used
    for IO page tables explicitly visible.
  - Simplify arch_setup_dma_ops()

- Intel VT-d:
  - Consolidate domain cache invalidation
  - Remove private data from page fault message
  - Allocate DMAR fault interrupts locally
  - Cleanup and refactoring

- ARM-SMMUv2:
  - Support for fault debugging hardware on Qualcomm implementations
  - Re-land support for the ->domain_alloc_paging() callback

- ARM-SMMUv3:
  - Improve handling of MSI allocation failure
  - Drop support for the "disable_bypass" cmdline option
  - Major rework of the CD creation code, following on directly from the
    STE rework merged last time around.
  - Add unit tests for the new STE/CD manipulation logic

- AMD-Vi:
  - Final part of SVA changes with generic IO page fault handling

- Renesas IPMMU:
  - Add support for R8A779H0 hardware

- A couple smaller fixes and updates across the sub-tree

17 May 2024: tracing/tools: Updates for 6.10 [+ + +]
Steven,

RTLA:
Specific for timerlat:

- Improves the output of timerlat top by adding a missing \n,
  and by avoiding printing color-formatting characters where
  they are translated to regular characters.

- Improves timerlat auto-analysis output by replacing '\t'
  with spaces to avoid copy-and-paste issues when reporting
  problems.

- For timerlat, make the user-space (-u) option the default,
  as it is the most complete test. Add a -k option to use
  the in-kernel workload.

- On timerlat top and hist, add a summary with the overall
  results. For instance, the minimum value for all CPUs,
  the overall average and the maximum value from all CPUs.

- timerlat hist was printing initial values (i.e., 0 as max,
  and ~0 as min) if the trace stopped before the first Ret-User
  event. This problem was fixed by printing the "       - "
  no value string to the output if that was the case.

For all RTLA tools:

- Add a --warm-up <seconds> option, allowing the workload to
  run for <seconds> before starting to collect results.

- Add a --trace-buffer-size option, allowing the user to set
  the tracing buffer size for -t option. This option is mainly
  useful for reducing the trace file. Now rtla depends on
  libtracefs >= 1.6.

- Fix the -t [trace_file] parsing, now it does not require
  the '=' before the option parameter, and better handles the
  multiple ways a user can pass the trace_file.txt



trace-tools-v6.10

Tag SHA1: dbd633e7f81bac0114f609ff2eade9f4e66a28e2
Head SHA1: 59c22f70b2951d81de410d477ae536ba951b4f37

17 May 2024: bootconfig: Updates for v6.10 [+ + +]
Bootconfig updates for v6.10:

- Do not put unneeded quotes on the extra command line items which was
  inserted from the bootconfig.
- Remove redundant spaces from the extra command line.




bootconfig-v6.10

Tag SHA1: 50d5a7465ca625b741bc63bdfe57ba5baf52ff63
Head SHA1: ddd53363f875eb23b6754362ce0a43f2214f0a83


 
16 May 2024: Devicetree updates for v6.10 [+ + +]
all in your tree now. All just context conflicts and you should take 
both sides. linux-next has the correct resolutions.

Rob


Devicetree for v6.10:

DT Bindings:
- Convert samsung,exynos5-dp, atmel,lcdc, aspeed,ast2400-wdt bindings to
  schemas

- Add bindings for Allwinner H616 NMI controller, Renesas r8a779g0 irqc,
  Renesas R-Car V4M TMU and CMT timers, Freescale S32G3 linflexuart, and
  Mediatek MT7988 XHCI

- Add 'reg' constraints on DSI and SPI display panels

- More dropping of unnecessary quotes in schemas

- Use full paths rather than relative paths in schema $refs

- Drop redundant storing of phandle for reserved memory

DT Core:
- Use scope based cleanups for kfree() and of_node_put()

- Track interrupt-map and power-supplies for fw_devlink

- Add buffer overflow check in of_modalias()

- Add and use __of_prop_free() helper for freeing struct property

16 May 2024: tracing/ring-buffer: Updates for v6.10 [+ + +]

tracing ring buffer updates for v6.10:

- Add ring_buffer memory mappings

  The tracing ring buffer was created based on being mostly used with the
  splice system call. It is broken up into page ordered sub-buffers and the
  reader swaps a new sub-buffer with an existing sub-buffer that's part
  of the write buffer. It then has total access to the swapped out
  sub-buffer and can do copyless movements of the memory into other mediums
  (file system, network, etc).

  The buffer is great for passing around the ring buffer contents in the
  kernel, but is not so good for when the consumer is the user space task
  itself.

  A new interface is added that allows user space to memory map the ring
  buffer. It will get all the write sub-buffers as well as reader sub-buffer
  (that is not written to). It can send an ioctl to change which sub-buffer
  is the new reader sub-buffer.

  The ring buffer is read only to user space. It only needs to call the
  ioctl when it is finished with a sub-buffer and needs a new sub-buffer
  that the writer will not write over.

  A self test program was also created for testing and can be used as
  an example for the interface to user space. The libtracefs (external
  to the kernel) also has code that interacts with this, although it is
  disabled until the interface is in a official release. It can be enabled
  by compiling the library with a special flag. This was used for testing
  applications that perform better with the buffer being mapped.

  Memory mapped buffers have limitations. The main one is that it can not be
  used with the snapshot logic. If the buffer is mapped, snapshots will be
  disabled. If any logic is set to trigger snapshots on a buffer, that
  buffer will not be allowed to be mapped.

- Changes since last pull request:
    https://lore.kernel.org/all/20240315122934.1d3231ce@gandalf.local.home/

  All the pages of the ring buffer are mapped at the mmap() system call
  instead of paging them in when they are accessed. The VMA page flags
  have been updated and the mappings are done via vm_insert_pages().
  I'd like to thank both Mike Rapoport and  David Hildenbrand for their
  review of these patches to make sure they are doing things correctly
  from a memory management point of view.




trace-ringbuffer-v6.10

Tag SHA1: 61407f35944db217cadb6a520906d52668d6d212
Head SHA1: b9c6820f029abaabbc37646093866aa730ca0928


16 May 2024: tracing: Cleanups for v6.10 [+ + +]


tracing cleanups for v6.10:

- Removed unused ftrace_direct_funcs variables

- Fix a possible NULL pointer dereference race in eventfs

- Update do_div() usage in trace event benchmark test

- Speedup direct function registration with asynchronous RCU callback.
  The synchronization was done in the registration code and this
  caused delays when registering direct callbacks. Move the freeing
  to a call_rcu() that will prevent delaying of the registering.

- Replace simple_strtoul() usage with kstrtoul()




trace-v6.10

Tag SHA1: 7cb6620f9a48fbdda06bc070c3e6270a39edc76a
Head SHA1: d4e9a968738bf66d3bb852dd5588d4c7afd6d7f4


diff --git a/fs/tracefs/event_inode.c b/fs/tracefs/event_inode.c
index a878cea70f4c..0256afdd4acf 100644
--- a/fs/tracefs/event_inode.c
+++ b/fs/tracefs/event_inode.c
@@ -345,10 +345,9 @@ static struct eventfs_inode *eventfs_find_events(struct dentry *dentry)
  * If the ei is being freed, the ownership of the children
  * doesn't matter.
  */
-if (ei->is_freed) {
-ei = NULL;
-break;
-}
+if (ei->is_freed)
+return NULL;
+
 // Walk upwards until you find the events inode
 } while (!ei->is_events);
 
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
index 54d53f345d14..e3a83ebd1b33 100644
--- a/include/linux/ftrace.h
+++ b/include/linux/ftrace.h
@@ -83,7 +83,6 @@ static inline void early_trace_init(void) { }
 
 struct module;
 struct ftrace_hash;
-struct ftrace_direct_func;
 
 #if defined(CONFIG_FUNCTION_TRACER) && defined(CONFIG_MODULES) && \
 defined(CONFIG_DYNAMIC_FTRACE)
@@ -414,7 +413,6 @@ struct ftrace_func_entry {
 };
 
 #ifdef CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
-extern int ftrace_direct_func_count;
 unsigned long ftrace_find_rec_direct(unsigned long ip);
 int register_ftrace_direct(struct ftrace_ops *ops, unsigned long addr);
 int unregister_ftrace_direct(struct ftrace_ops *ops, unsigned long addr,
@@ -426,7 +424,6 @@ void ftrace_stub_direct_tramp(void);
 
 #else
 struct ftrace_ops;
-# define ftrace_direct_func_count 0
 static inline unsigned long ftrace_find_rec_direct(unsigned long ip)
 {
 return 0;
diff --git a/kernel/trace/fgraph.c b/kernel/trace/fgraph.c
index c83c005e654e..a130b2d898f7 100644
--- a/kernel/trace/fgraph.c
+++ b/kernel/trace/fgraph.c
@@ -125,17 +125,6 @@ int function_graph_enter(unsigned long ret, unsigned long func,
 {
 struct ftrace_graph_ent trace;
 
-#ifndef CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS
-/*
- * Skip graph tracing if the return location is served by direct trampoline,
- * since call sequence and return addresses are unpredictable anyway.
- * Ex: BPF trampoline may call original function and may skip frame
- * depending on type of BPF programs attached.
- */
-if (ftrace_direct_func_count &&
-    ftrace_find_rec_direct(ret - MCOUNT_INSN_SIZE))
-return -EBUSY;
-#endif
 trace.func = func;
 trace.depth = ++current->curr_ret_depth;
 
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index da1710499698..2308c0a2fd29 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -1595,12 +1595,15 @@ static struct dyn_ftrace *lookup_rec(unsigned long start, unsigned long end)
 unsigned long ftrace_location_range(unsigned long start, unsigned long end)
 {
 struct dyn_ftrace *rec;
+unsigned long ip = 0;
 
+rcu_read_lock();
 rec = lookup_rec(start, end);
 if (rec)
-return rec->ip;
+ip = rec->ip;
+rcu_read_unlock();
 
-return 0;
+return ip;
 }
 
 /**
@@ -1614,25 +1617,22 @@ unsigned long ftrace_location_range(unsigned long start, unsigned long end)
  */
 unsigned long ftrace_location(unsigned long ip)
 {
-struct dyn_ftrace *rec;
+unsigned long loc;
 unsigned long offset;
 unsigned long size;
 
-rec = lookup_rec(ip, ip);
-if (!rec) {
+loc = ftrace_location_range(ip, ip);
+if (!loc) {
 if (!kallsyms_lookup_size_offset(ip, &size, &offset))
 goto out;
 
 /* map sym+0 to __fentry__ */
 if (!offset)
-rec = lookup_rec(ip, ip + size - 1);
+loc = ftrace_location_range(ip, ip + size - 1);
 }
 
-if (rec)
-return rec->ip;
-
 out:
-return 0;
+return loc;
 }
 
 /**
@@ -2538,7 +2538,6 @@ ftrace_find_unique_ops(struct dyn_ftrace *rec)
 /* Protected by rcu_tasks for reading, and direct_mutex for writing */
 static struct ftrace_hash __rcu *direct_functions = EMPTY_HASH;
 static DEFINE_MUTEX(direct_mutex);
-int ftrace_direct_func_count;
 
 /*
  * Search the direct_functions hash to see if the given instruction pointer
@@ -4202,12 +4201,12 @@ static int
 add_rec_by_index(struct ftrace_hash *hash, struct ftrace_glob *func_g,
  int clear_filter)
 {
-long index = simple_strtoul(func_g->search, NULL, 0);
+long index;
 struct ftrace_page *pg;
 struct dyn_ftrace *rec;
 
 /* The index starts at 1 */
-if (--index < 0)
+if (kstrtoul(func_g->search, 0, &index) || --index < 0)
 return 0;
 
 do_for_each_ftrace_rec(pg, rec) {
@@ -5318,14 +5317,6 @@ ftrace_set_addr(struct ftrace_ops *ops, unsigned long *ips, unsigned int cnt,
 
 #ifdef CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
 
-struct ftrace_direct_func {
-struct list_headnext;
-unsigned longaddr;
-intcount;
-};
-
-static LIST_HEAD(ftrace_direct_funcs);
-
 static int register_ftrace_function_nolock(struct ftrace_ops *ops);
 
 /*
@@ -5366,6 +5357,13 @@ static void remove_direct_functions_hash(struct ftrace_hash *hash, unsigned long
 }
 }
 
+static void register_ftrace_direct_cb(struct rcu_head *rhp)
+{
+struct ftrace_hash *fhp = container_of(rhp, struct ftrace_hash, rcu);
+
+free_ftrace_hash(fhp);
+}
+
 /**
  * register_ftrace_direct - Call a custom trampoline directly
  * for multiple functions registered in @ops
@@ -5464,10 +5462,8 @@ int register_ftrace_direct(struct ftrace_ops *ops, unsigned long addr)
  out_unlock:
 mutex_unlock(&direct_mutex);
 
-if (free_hash && free_hash != EMPTY_HASH) {
-synchronize_rcu_tasks();
-free_ftrace_hash(free_hash);
-}
+if (free_hash && free_hash != EMPTY_HASH)
+call_rcu_tasks(&free_hash->rcu, register_ftrace_direct_cb);
 
 if (new_hash)
 free_ftrace_hash(new_hash);
@@ -5817,9 +5813,8 @@ __setup("ftrace_graph_notrace=", set_graph_notrace_function);
 
 static int __init set_graph_max_depth_function(char *str)
 {
-if (!str)
+if (!str || kstrtouint(str, 0, &fgraph_max_depth))
 return 0;
-fgraph_max_depth = simple_strtoul(str, NULL, 0);
 return 1;
 }
 __setup("ftrace_graph_max_depth=", set_graph_max_depth_function);
@@ -6596,6 +6591,8 @@ static int ftrace_process_locs(struct module *mod,
 /* We should have used all pages unless we skipped some */
 if (pg_unuse) {
 WARN_ON(!skipped);
+/* Need to synchronize with ftrace_location_range() */
+synchronize_rcu();
 ftrace_free_pages(pg_unuse);
 }
 return ret;
@@ -6809,6 +6806,9 @@ void ftrace_release_mod(struct module *mod)
  out_unlock:
 mutex_unlock(&ftrace_lock);
 
+/* Need to synchronize with ftrace_location_range() */
+if (tmp_page)
+synchronize_rcu();
 for (pg = tmp_page; pg; pg = tmp_page) {
 
 /* Needs to be called outside of ftrace_lock */
@@ -7142,6 +7142,7 @@ void ftrace_free_mem(struct module *mod, void *start_ptr, void *end_ptr)
 unsigned long start = (unsigned long)(start_ptr);
 unsigned long end = (unsigned long)(end_ptr);
 struct ftrace_page **last_pg = &ftrace_pages_start;
+struct ftrace_page *tmp_page = NULL;
 struct ftrace_page *pg;
 struct dyn_ftrace *rec;
 struct dyn_ftrace key;
@@ -7183,12 +7184,8 @@ void ftrace_free_mem(struct module *mod, void *start_ptr, void *end_ptr)
 ftrace_update_tot_cnt--;
 if (!pg->index) {
 *last_pg = pg->next;
-if (pg->records) {
-free_pages((unsigned long)pg->records, pg->order);
-ftrace_number_of_pages -= 1 << pg->order;
-}
-ftrace_number_of_groups--;
-kfree(pg);
+pg->next = tmp_page;
+tmp_page = pg;
 pg = container_of(last_pg, struct ftrace_page, next);
 if (!(*last_pg))
 ftrace_pages = pg;
@@ -7205,6 +7202,11 @@ void ftrace_free_mem(struct module *mod, void *start_ptr, void *end_ptr)
 clear_func_from_hashes(func);
 kfree(func);
 }
+/* Need to synchronize with ftrace_location_range() */
+if (tmp_page) {
+synchronize_rcu();
+ftrace_free_pages(tmp_page);
+}
 }
 
 void __init ftrace_free_init_mem(void)
diff --git a/kernel/trace/trace_benchmark.c b/kernel/trace/trace_benchmark.c
index 811b08439406..e19c32f2a938 100644
--- a/kernel/trace/trace_benchmark.c
+++ b/kernel/trace/trace_benchmark.c
@@ -104,7 +104,7 @@ static void trace_do_benchmark(void)
 stddev = 0;
 
 delta = bm_total;
-delta = div64_u64(delta, bm_cnt);
+do_div(delta, (u32)bm_cnt);
 avg = delta;
 
 if (stddev > 0) {
16 May 2024: MMC and MEMSTICK updates for v6.10 [+ + +]
Here's the pull-request for MMC and MEMSTICK for v6.10. Details about the
highlights are as usual found in the signed tag.


Kind regards
Ulf Hansson


MMC core:
 - Increase the timeout period of the ACMD41 command
 - Add card entry for quirks to debugfs
 - Add mmc_gpiod_set_cd_config() function
 - Store owner from SDIO modules with sdio_register_driver()

MMC host:
 - atmel-mci: Some cleanups and a switch to use dev_err_probe()
 - renesas_sdhi: Add support for RZ/G2L, RZ/G3S and RZ/V2M variants
 - renesas_sdhi: Set the SDBUF after reset
 - sdhci: Add support for "Tuning Error" interrupts
 - sdhci-acpi: Add quirk to enable pull-up on the card-detect GPIO on Asus T100TA
 - sdhci-acpi: Disable write protect detection on Toshiba WT10-A
 - sdhci-acpi: Fix Lenovo Yoga Tablet 2 Pro 1380 sdcard slot not working
 - sdhci_am654: Re-work and fix the tuning support for multiple speed-modes
 - sdhci_am654: Add tuning algorithm for delay chain
 - sdhci-esdhc-imx: Add NXP S32G3 support
 - sdhci-of-dwcmshc: Add tuning support for Sophgo CV1800B and SG200X
 - sdhci-of-dwcmshc: Implement SDHCI CQE support
 - sdhci-pci-gli: Use the proper pci_set_power_state() instead of PMCSR writes

MEMSTICK:
 - Convert a couple of drivers to use the ->remove_new() callback

16 May 2024: Landlock updates for v6.10 [+ + +]
This PR mainly brings IOCTL control to Landlock, contributed by Günther Noack.
This also adds him as a Landlock reviewer, and fixes an issue in the sample.

master branch.  The kernel code has been tested in the latest linux-next
releases for a few weeks, but I rebased it on v6.9 to avoid a merge conflict
because of the recent Kselftest fixes.

syzkaller has also been patched to know about this new access right.

Regards,
 Mickaël

--
Landlock updates for v6.10-rc1

16 May 2024: pmdomain/cpuidle-psci updates for v6.10 [+ + +]
Here's the PR with pmdomain and cpuidle-psci updates for v6.10. When it comes
to cpuidle-psci I intend to continue to funnel those patches via my tree, as
they are often related pmdomain changes.

Details about the highlights are as usual found in the signed tag.


Kind regards
Ulf Hansson


pmdomain core:
 - Don't clear suspended_count at genpd_prepare()
 - Update the rejected/usage counters at system suspend too

pmdomain providers:
 - ti-sci: Fix duplicate PD referrals
 - mediatek: Add MT8188 buck isolation setting
 - renesas: Add R-Car M3-W power-off delay quirk
 - renesas: Split R-Car M3-W and M3-W+ sub-drivers

cpuidle-psci:
 - Update MAINTAINERS to set a git for DT IDLE PM DOMAIN/ARM PSCI PM DOMAIN
 - Update init level to core_initcall()
 - Drop superfluous wrappers psci_dt_attach|detach_cpu()

16 May 2024: platform-drivers-x86 for 6.10-1 [+ + +]
Here is the main PDx86 PR for 6.10.

This includes a new drivers/platform/arm64 directory which is used
exclusively for arm64 laptop embedded controller (EC) drivers. This
has been put under the pdx86 umbrella because that is where most of
the experience with userspace APIs for EC functions lives.

Highlights:
 - New drivers for:
   - Acer Aspire 1 embedded controllers (for arm64 models)
   - ACPI quickstart PNP0C32 buttons
   - Dell All-In-One backlight support (dell-uart-backlight)
   - Lenovo WMI camera buttons
   - Lenovo Yoga Tablet 2 Pro 1380F/L fast charging
   - MeeGoPad ANX7428 Type-C Cross Switch (power sequencing only)
   - MSI WMI sensors (fan speed sensors only for now)
 - Asus WMI:
   - 2024 ROG Mini-LED support
   - MCU powersave support
   - Vivobook GPU MUX support
   - Misc. other improvements
 - Ideapad laptop:
   - Export FnLock LED as LED class device
   - Switch platform profiles using thermal management key
 - Intel drivers:
   - IFS: various improvements
   - PMC: Lunar Lake support
   - SDSI: various improvements
   - TPMI/ISST: various improvements
   - tools: intel-speed-select: various improvements
 - MS Surface drivers:
   - Fan profile switching support
   - Surface Pro thermal sensors support
 - ThinkPad ACPI:
   - Reworked hotkey support to use sparse keymaps
   - Add support for new trackpoint-doubletap, Fn+N and Fn+G hotkeys
 - WMI core:
   - New WMI driver development guide
 - x86 Android tablets:
   - Lenovo Yoga Tablet 2 Pro 1380F/L support
   - Xiaomi MiPad 2 status LED and bezel touch buttons backlight support
 - Miscellaneous cleanups / fixes / improvements


Regards,

Hans


platform-drivers-x86 for v6.10-1

Highlights:
 - New drivers/platform/arm64 directory for arm64 embedded-controller drivers
 - New drivers for:
   - Acer Aspire 1 embedded controllers (for arm64 models)
   - ACPI quickstart PNP0C32 buttons
   - Dell All-In-One backlight support (dell-uart-backlight)
   - Lenovo WMI camera buttons
   - Lenovo Yoga Tablet 2 Pro 1380F/L fast charging
   - MeeGoPad ANX7428 Type-C Cross Switch (power sequencing only)
   - MSI WMI sensors (fan speed sensors only for now)
 - Asus WMI:
   - 2024 ROG Mini-LED support
   - MCU powersave support
   - Vivobook GPU MUX support
   - Misc. other improvements
 - Ideapad laptop:
   - Export FnLock LED as LED class device
   - Switch platform profiles using thermal management key
 - Intel drivers:
   - IFS: various improvements
   - PMC: Lunar Lake support
   - SDSI: various improvements
   - TPMI/ISST: various improvements
   - tools: intel-speed-select: various improvements
 - MS Surface drivers:
   - Fan profile switching support
   - Surface Pro thermal sensors support
 - ThinkPad ACPI:
   - Reworked hotkey support to use sparse keymaps
   - Add support for new trackpoint-doubletap, Fn+N and Fn+G hotkeys
 - WMI core:
   - New WMI driver development guide
 - x86 Android tablets:
   - Lenovo Yoga Tablet 2 Pro 1380F/L support
   - Xiaomi MiPad 2 status LED and bezel touch buttons backlight support
 - Miscellaneous cleanups / fixes / improvements

The following is an automated git shortlog grouped by driver:

ACPI:
 -  platform-profile: add platform_profile_cycle()

Add ACPI quickstart button (PNP0C32) driver:
 - Add ACPI quickstart button (PNP0C32) driver

Add lenovo-yoga-tab2-pro-1380-fastcharger driver:
 - Add lenovo-yoga-tab2-pro-1380-fastcharger driver

Add new Dell UART backlight driver:
 - Add new Dell UART backlight driver

Add lenovo WMI camera button driver:
 - Add lenovo WMI camera button driver

Add new MeeGoPad ANX7428 Type-C Cross Switch driver:
 - Add new MeeGoPad ANX7428 Type-C Cross Switch driver

ISST:
 -  Support SST-BF and SST-TF per level
 -  Add missing MODULE_DESCRIPTION
 -  Add dev_fmt
 -  Use in_range() to check package ID validity
 -  Support partitioned systems
 -  Shorten the assignments for power_domain_info
 -  Use local variable for auxdev->dev

MAINTAINERS:
 -  drop Daniel Oliveira Nascimento

arm64:
 -  dts: qcom: acer-aspire1: Add embedded controller

asus-laptop:
 -  Use sysfs_emit() and sysfs_emit_at() to replace sprintf()

asus-wmi:
 -  cleanup main struct to avoid some holes
 -  Add support for MCU powersave
 -  ROG Ally increase wait time, allow MCU powersave
 -  adjust formatting of ppt-<name>() functions
 -  store a min default for ppt options
 -  support toggling POST sound
 -  add support variant of TUF RGB
 -  add support for Vivobook GPU MUX
 -  add support for 2024 ROG Mini-LED
 -  use sysfs_emit() instead of sprintf()

classmate-laptop:
 -  Add missing MODULE_DESCRIPTION()

devm-helpers:
 -  Fix a misspelled cancellation in the comments

dt-bindings:
 -  leds: Add LED_FUNCTION_FNLOCK
 -  platform: Add Acer Aspire 1 EC

hp-wmi:
 -  use sysfs_emit() instead of sprintf()

huawei-wmi:
 -  use sysfs_emit() instead of sprintf()

ideapad-laptop:
 -  switch platform profiles using thermal management key
 -  add FnLock LED class device
 -  add fn_lock_get/set functions

intel-vbtn:
 -  Log event code on unexpected button events

intel/pmc:
 -  Enable S0ix blocker show in Lunar Lake
 -  Add support to show S0ix blocker counter
 -  Update LNL signal status map

msi-laptop:
 -  Use sysfs_emit() to replace sprintf()

p2sb:
 -  Don't init until unassigned resources have been assigned
 -  Make p2sb_get_devfn() return void

platform:
 -  arm64: Add Acer Aspire 1 embedded controller driver
 -  Add ARM64 platform directory

platform/surface:
 -  aggregator: Log critical errors during SAM probing
 -  aggregator_registry: Add support for thermal sensors on the Surface Pro 9
 -  platform_profile: add fan profile switching

platform/x86/amd:
 -  pmc: Add new ACPI ID AMDI000B
 -  pmf: Add new ACPI ID AMDI0105

platform/x86/amd/hsmp:
 -  switch to use device_add_groups()

platform/x86/amd/pmc:
 -  Fix implicit declaration error on i386
 -  Add AMD MP2 STB functionality

platform/x86/fujitsu-laptop:
 -  Replace sprintf() with sysfs_emit()

platform/x86/intel-uncore-freq:
 -  Don't present root domain on error

platform/x86/intel/ifs:
 -  Disable irq during one load stage
 -  trace: display batch num in hex
 -  Classify error scenarios correctly

platform/x86/intel/pmc:
 -  Fix PCH names in comments

platform/x86/intel/sdsi:
 -  Add attribute to read the current meter state
 -  Add in-band BIOS lock support
 -  Combine read and write mailbox flows
 -  Set message size during writes

platform/x86/intel/tpmi:
 -  Add additional TPMI header fields
 -  Align comments in kernel-doc
 -  Check major version change for TPMI Information
 -  Handle error from tpmi_process_info()

quickstart:
 -  Fix race condition when reporting input event
 -  fix Kconfig selects
 -  Miscellaneous improvements

samsung-laptop:
 -  Use sysfs_emit() to replace the old interface sprintf()

think-lmi:
 -  Convert container_of() macros to static inline

thinkpad_acpi:
 -  Use false to set acpi_send_ev to false
 -  Support hotkey to disable trackpoint doubletap
 -  Support for system debug info hotkey
 -  Support for trackpoint doubletap
 -  Simplify known_ev handling
 -  Add mappings for adaptive kbd clipping-tool and cloud keys
 -  Switch to using sparse-keymap helpers
 -  Drop KEY_RESERVED special handling
 -  Use correct keycodes for volume and brightness keys
 -  Change hotkey_reserved_mask initialization
 -  Do not send ACPI netlink events for unknown hotkeys
 -  Move tpacpi_driver_event() call to tpacpi_input_send_key()
 -  Move hkey > scancode mapping to tpacpi_input_send_key()
 -  Drop tpacpi_input_send_key_masked() and hotkey_driver_event()
 -  Always call tpacpi_driver_event() for hotkeys
 -  Move hotkey_user_mask check to tpacpi_input_send_key()
 -  Move special original hotkeys handling out of switch-case
 -  Move adaptive kbd event handling to tpacpi_driver_event()
 -  Make tpacpi_driver_event() return if it handled the event
 -  Do hkey to scancode translation later
 -  Use tpacpi_input_send_key() in adaptive kbd code
 -  Drop ignore_acpi_ev
 -  Drop setting send_/ignore_acpi_ev defaults twice
 -  Provide hotkey_poll_stop_sync() dummy
 -  Take hotkey_mutex during hotkey_exit()
 -  change sprintf() to sysfs_emit()
 -  use platform_profile_cycle()

tools arch x86:
 -  Add dell-uart-backlight-emulator

tools/arch/x86/intel_sdsi:
 -  Add current meter support
 -  Simplify ascii printing
 -  Fix meter_certificate decoding
 -  Fix meter_show display
 -  Fix maximum meter bundle length

tools/power/x86/intel-speed-select:
 -  v1.19 release
 -  Display CPU as None for -1
 -  SST BF/TF support per level
 -  Increase number of CPUs displayed
 -  Present all TRL levels for turbo-freq
 -  Fix display for unsupported levels
 -  Support multiple dies
 -  Increase die count

toshiba_acpi:
 -  Add quirk for buttons on Z830

uv_sysfs:
 -  use sysfs_emit() instead of sprintf()

wmi:
 -  Add MSI WMI Platform driver
 -  Add driver development guide
 -  Mark simple WMI drivers as legacy-free
 -  Avoid returning AE_OK upon unknown error
 -  Support reading/writing 16 bit EC values

x86-android-tablets:
 -  Create LED device for Xiaomi Pad 2 bottom bezel touch buttons
 -  Xiaomi pad2 RGB LED fwnode updates
 -  Pass struct device to init()
 -  Add Lenovo Yoga Tablet 2 Pro 1380F/L data
 -  Unregister devices in reverse order
 -  Add swnode for Xiaomi pad2 indicator LED
 -  Use GPIO_LOOKUP() macro

xiaomi-wmi:
 -  Drop unnecessary NULL checks
 -  Fix race condition when reporting key events

16 May 2024: sysctl changes for v6.10-rc1 [+ + +]
sysctl changes for v6.10-rc1

Summary
* Removed sentinel elements from ctl_table structs in kernel/*

  Removing sentinels in ctl_table arrays reduces the build time size and
  runtime memory consumed by ~64 bytes per array. Removals for net/, io_uri=
ng/,
  mm/, ipc/ and security/ are set to go into mainline through their respect=
ive
  subsystems making the next release the most likely place where the final
  series that removes the check for proc_name =3D=3D NULL will land. This P=
R adds
  to removals already in arch/, drivers/ and fs/.

* Adjusted ctl_table definitions and references to allow constification

  Adjustments:
    - Removing unused ctl_table function arguments
    - Moving non-const elements from ctl_table to ctl_table_header
    - Making ctl_table pointers const in ctl_table_root structure

  Making the static ctl_table structs const will increase safety by keeping=
 the
  pointers to proc_handler functions in .rodata. Though no ctl_tables where
  made const in this PR, the ground work for making that possible has start=
ed
  with these changes sent by Thomas Wei?schuh.

Testing
* These changes went into linux-next after v6.9-rc4; giving it a good month=
 of
  testing.

16 May 2024: mtd: Changes for v6.10-rc1 [+ + +]
This is the MTD PR for v6.10-rc1.

Thanks,
Miqu=C3=A8l

* MTD

Simon Glass wanted to support binman's output properties in order to
check their validity using the binding checks and proposed changes with
the missing properties as well as a binman compatible.

Krzysztof Kozlowski on his side shared a new yaml for describing
Samsung's OneNAND interface.

The interface with NVMEM has also been slightly improved/fixed,
especially now that OTP are also supported in the NAND subsystem.

Along with these changes, small cleanups have also been contributed
around ID tables, structure sizes, arithmetic checks and comments.

* Raw NAND subsystem

Two small fixes, one in the Hynix vendor code for properly returning an
error which might have been ignored and another in the Davinci driver to
properly synchronize the controller with the gpio domain.

* SPI NOR subsystem

SPI NOR now uses div_u64() instead of div64_u64() in places where the
divisor is 32 bits. Many 32 bit architectures can optimize this variant
better than a full 64 bit divide.

16 May 2024: media updates [+ + +]

dia/v6.10-1

For:
  - New V4L2 ioctl VIDIOC_REMOVE_BUFS;
  - experimental support for using generic metaformats on V4L2 core;
  - New drivers: Intel IPU6 controller driver, Broadcom BCM283x/BCM271x;
  - More cleanups at atomisp driver;
  - Usual bunch of driver cleanups, improvements and fixes.

Regards,
Mauro

---

media updates for v6.10-rc1

16 May 2024: drm urgent for 6.10-rc1 [+ + +]
Here is the buddy allocator fix I picked up from the list, please apply.

Dave.

drm-next-2024-05-16:
drm urgent for 6.10-rc1 merge:

buddy:
- fix breakage in buddy allocator.
drm urgent for 6.10-rc1 merge:

buddy:
- fix breakage in buddy allocator.

16 May 2024: probes updates for v6.10 [+ + +]
Probes updates for v6.10:

- tracing/probes: Adding new pseudo-types %pd and %pD support for dumping
  dentry name from 'struct dentry *' and file name from 'struct file *'.

- uprobes: Some performance optimizations have been done.
 . Speed up the BPF uprobe event by delaying the fetching of the uprobe
   event arguments that are not used in BPF.
 . Avoid locking by speculatively checking whether uprobe event is valid.
 . Reduce lock contention by using read/write_lock instead of spinlock for
   uprobe list operation. This improved BPF uprobe benchmark result 43% on
   average.

- rethook: Removes non-fatal warning messages when tracing stack from BPF
  and skip rcu_is_watching() validation in rethook if possible.

- objpool: Optimizing objpool (which is used by kretprobes and fprobe as
  rethook backend storage) by inlining functions and avoid caching nr_cpu_ids
  because it is a const value.

- fprobe: Add entry/exit callbacks types (code cleanup)
- kprobes: Check ftrace was killed in kprobes if it uses ftrace.




probes-v6.10

Tag SHA1: 9c42dca969de36a7aaa9573844a863bb306dcafc
Head SHA1: 1a7d0890dd4a502a202aaec792a6c04e6e049547


 
15 May 2024: workqueue: Changes for v6.10 [+ + +]
workqueue: Changes for v6.10

- Work items can now be disabled and enabled, and cancel_work_sync() and
  disable_work() can be called form atomic contexts for BH work items. This
  closes feature gap with tasklet and should allow converting all existing
  tasklet users to BH workqueues.

- Improve pool sharing for unbound workqueues with strict affinity.

- Misc changes including doc updates, improved debug annotations and
  cleanups.

15 May 2024: cgroup: Changes for v6.10 [+ + +]
cgroup: Changes for v6.10

- The locking around cpuset hotplug processing has always been a bit of mess
  which was worked around by making hotplug processing asynchronous. The
  asynchronity isn't great and led to other issues. We tried to make the
  behavior synchronous a while ago but that led to lockdep splats. Waiman
  took another stab at cleaning up and making it synchronous. The patch has
  been in -next for well over a month and there haven't been any complaints,
  so fingers crossed.

- Tracepoints added to help understanding rstat lock contentions.

- A bunch of minor changes - doc updates, code cleanups and selftests.

15 May 2024: First batch of KVM changes for Linux 6.10 merge window [+ + +]
ARM:

* Move a lot of state that was previously stored on a per vcpu
  basis into a per-CPU area, because it is only pertinent to the
  host while the vcpu is loaded. This results in better state
  tracking, and a smaller vcpu structure.

* Add full handling of the ERET/ERETAA/ERETAB instructions in
  nested virtualisation. The last two instructions also require
  emulating part of the pointer authentication extension.
  As a result, the trap handling of pointer authentication has
  been greatly simplified.

* Turn the global (and not very scalable) LPI translation cache
  into a per-ITS, scalable cache, making non directly injected
  LPIs much cheaper to make visible to the vcpu.

* A batch of pKVM patches, mostly fixes and cleanups, as the
  upstreaming process seems to be resuming. Fingers crossed!

* Allocate PPIs and SGIs outside of the vcpu structure, allowing
  for smaller EL2 mapping and some flexibility in implementing
  more or less than 32 private IRQs.

* Purge stale mpidr_data if a vcpu is created after the MPIDR
  map has been created.

* Preserve vcpu-specific ID registers across a vcpu reset.

* Various minor cleanups and improvements.

LoongArch:

* Add ParaVirt IPI support.

* Add software breakpoint support.

* Add mmio trace events support.

RISC-V:

* Support guest breakpoints using ebreak

* Introduce per-VCPU mp_state_lock and reset_cntx_lock

* Virtualize SBI PMU snapshot and counter overflow interrupts

* New selftests for SBI PMU and Guest ebreak

* Some preparatory work for both TDX and SNP page fault handling.
  This also cleans up the page fault path, so that the priorities
  of various kinds of fauls (private page, no memory, write
  to read-only slot, etc.) are easier to follow.

x86:

* Minimize amount of time that shadow PTEs remain in the special
  REMOVED_SPTE state.  This is a state where the mmu_lock is held for
  reading but concurrent accesses to the PTE have to spin; shortening
  its use allows other vCPUs to repopulate the zapped region while
  the zapper finishes tearing down the old, defunct page tables.

* Advertise the max mappable GPA in the "guest MAXPHYADDR" CPUID field,
  which is defined by hardware but left for software use.  This lets KVM
  communicate its inability to map GPAs that set bits 51:48 on hosts
  without 5-level nested page tables.  Guest firmware is expected to
  use the information when mapping BARs; this avoids that they end up at
  a legal, but unmappable, GPA.

* Fixed a bug where KVM would not reject accesses to MSR that aren't
  supposed to exist given the vCPU model and/or KVM configuration.

* As usual, a bunch of code cleanups.

x86 (AMD):

* Implement a new and improved API to initialize SEV and SEV-ES VMs, which
  will also be extendable to SEV-SNP.  The new API specifies the desired
  encryption in KVM_CREATE_VM and then separately initializes the VM.
  The new API also allows customizing the desired set of VMSA features;
  the features affect the measurement of the VM's initial state, and
  therefore enabling them cannot be done tout court by the hypervisor.

  While at it, the new API includes two bugfixes that couldn't be
  applied to the old one without a flag day in userspace or without
  affecting the initial measurement.  When a SEV-ES VM is created with
  the new VM type, KVM_GET_REGS/KVM_SET_REGS and friends are
  rejected once the VMSA has been encrypted.  Also, the FPU and AVX
  state will be synchronized and encrypted too.

* Support for GHCB version 2 as applicable to SEV-ES guests.  This, once
  more, is only accessible when using the new KVM_SEV_INIT2 flow for
  initialization of SEV-ES VMs.

x86 (Intel):

* An initial bunch of prerequisite patches for Intel TDX were merged.
  They generally don't do anything interesting.  The only somewhat user
  visible change is a new debugging mode that checks that KVM's MMU
  never triggers a #VE virtualization exception in the guest.

* Clear vmcs.EXIT_QUALIFICATION when synthesizing an EPT Misconfig VM-Exit to
  L1, as per the SDM.

Generic:

* Use vfree() instead of kvfree() for allocations that always use vcalloc()
  or __vcalloc().

* Remove .change_pte() MMU notifier - the changes to non-KVM code are
  small and Andrew Morton asked that I also take those through the KVM
  tree.  The callback was only ever implemented by KVM (which was also the
  original user of MMU notifiers) but it had been nonfunctional ever since
  calls to set_pte_at_notify were wrapped with invalidate_range_start
  and invalidate_range_end... in 2012.

Selftests:

* Enhance the demand paging test to allow for better reporting and stressing
  of UFFD performance.

* Convert the steal time test to generate TAP-friendly output.

* Fix a flaky false positive in the xen_shinfo_test due to comparing elapsed
  time across two different clock domains.

* Skip the MONITOR/MWAIT test if the host doesn't actually support MWAIT.

* Avoid unnecessary use of "sudo" in the NX hugepage test wrapper shell
  script, to play nice with running in a minimal userspace environment.

* Allow skipping the RSEQ test's sanity check that the vCPU was able to
  complete a reasonable number of KVM_RUNs, as the assert can fail on a
  completely valid setup.  If the test is run on a large-ish system that is
  otherwise idle, and the test isn't affined to a low-ish number of CPUs, the
  vCPU task can be repeatedly migrated to CPUs that are in deep sleep states,
  which results in the vCPU having very little net runtime before the next
  migration due to high wakeup latencies.

* Define _GNU_SOURCE for all selftests to fix a warning that was introduced by
  a change to kselftest_harness.h late in the 6.9 cycle, and because forcing
  every test to #define _GNU_SOURCE is painful.

* Provide a global pseudo-RNG instance for all tests, so that library code can
  generate random, but determinstic numbers.

* Use the global pRNG to randomly force emulation of select writes from guest
  code on x86, e.g. to help validate KVM's emulation of locked accesses.

* Allocate and initialize x86's GDT, IDT, TSS, segments, and default exception
  handlers at VM creation, instead of forcing tests to manually trigger the
  related setup.

Documentation:

* Fix a goof in the KVM_CREATE_GUEST_MEMFD documentation.

15 May 2024: Compute Express Link (CXL) for 6.10 [+ + +]

...to receive 3 feature updates and some fixes and cleanups for CXL.

Three CXL mailbox passthrough commands are added to support the populating and clearing
of vendor debug logs.

The second feature is adding support of Device Phyiscal Address (DPA) to Host Physical
Address (HPA) translation for CXL events of cxl_dram and cxl_general media. The support
allows user space to figure out which CXL region the event occured via trace event.

The third feature connects CXL to CPER reporting. If a device is configured for firmware
first, CXL event records are not sent directly to the host. Those records are reported
through EFI Common Platform Error Records (CPER). Support is added to route the CPER
records through the CXL sub-system in order to provide DPA to HPA translation and also
event decoding and tracing. This is useful for users to determine which system issues
may correspond to specific hardware events.

A number of misc cleanups and fixes are also included in this pull request.

The following commits have late tags that were submitted after the commits have been
pushed to cxl/next branch:

866c0674541f cxl: Fix use of phys_to_target_node() for x86
Reviewed-by: Davidlohr Bueso <dave@stgolabs.net>

d357dd8ad2f1 ("cxl/region: Convert cxl_pmem_region_alloc to scope-based resource management")
Reviewed-by: Li Zhijian <lizhijian@fujitsu.com>
Tested-by: Li Zhijian <lizhijian@fujitsu.com>

This pull request has appeared in the linux-next for more than a week and has build
success notification from kbuild-robot.

---

CXL changes for v6.10 merge window

Topics:
- Add CXL log related mailbox commands
  - Add Get Log Capabilities command
  - Add Get Supported Log Sub-List Commands command
  - Add Clear Log command
- Add series for DPA to HPA translation for CXL events cxl_dram and cxl_general_media
- Add support to send CPER records to CXL for more detailed parsing.

Misc changes and fixes:
- Fix for compile warning of cxl_security_ops
- Add debug message for invalid interleave granularity
- Enhancement to cxl-test event testing
- Add dev_warn() on unsupported mixed mode decoder
- Fix use of phys_to_target_node() for x86
- Use helper function for decoder enum instead of open coding
- Include missing headers for cxl-event
- Fix MAINTAINERS file entry
- Fix cxlr_pmem memory leak
- Cleanup __cxl_parse_cfmws via scope-based resource menagement
- Convert cxl_pmem_region_alloc() to scope-based resource management

15 May 2024: NVDIMM and DAX for 6.10 [+ + +]

... to get code updates for the nvdimm tree.  These have been in
linux-next for a couple of weeks.  The changes include removing duplicate
code and updating the nvdimm tree to the current kernel interfaces such as
using const for struct device_type and changing the platform remove
callback signature.

Thank you,
Ira Weiny

---

Updates for nvdimm for 6.10

Code cleanups, remove duplicate code, and updates for current
interfaces.

15 May 2024: livepatching for 6.10 [+ + +]
please pull the latest changes for the kernel livepatching from



- Use more informative names for the livepatch transition states.

15 May 2024: integrity: subsystem updates for v6.10 [+ + +]
Two IMA changes, one EVM change, a use after free bug fix, and a code cleanup to
address "-Wflex-array-member-not-at-end" warnings:

- The existing IMA {ascii, binary}_runtime_measurements lists include a hard
coded SHA1 hash.  To address this limitation, define per TPM enabled hash
algorithm {ascii, binary}_runtime_measurements lists.

- Close an IMA integrity init_module syscall measurement gap by defining a new
critical-data record.

- Enable (partial) EVM support on stacked filesystems (overlayfs).  Only EVM
portable & immutable file signatures are copied up, since they do not contain
filesystem specific metadata.

thanks,

Mimi


integrity-v6.10

15 May 2024: printk for 6.10 [+ + +]
please pull the latest printk changes from



- Use no_printk() instead of "if (0) printk()" constructs to avoid
  generating printk index for messages disabled at compile time.

- Remove deprecated strncpy/strcpy from printk.c.

- Remove redundant CONFIG_BASE_FULL in favor of CONFIG_BASE_SMALL.

15 May 2024: sound updates for 6.10-rc1 [+ + +]
please pull sound updates for v6.10-rc1 from:


The topmost commit is d731b1ed15052580b7b2f40559021012d280f1d9


sound updates for 6.10-rc1

This one became bigger than usual, not in the total size but rather
containing lots of small changes all over the places.  The majority of
changes are about ASoC, especially SOF / Intel stuff, and we see an
interesting work for ASoC DAPM graph visualization, while there are
many other code cleanup and refactoring, too.

Core:
- A deadlock fix at device disconnection
- A new tool dapm-graph for visualising the DAPM state

ASoC:
- Large updates throughout the Intel audio drivers
- Fixes and clarifications for the DAPM documentation
- Cleanups of accessors for driver data, module labelling, and for
  constification
- Modernsation and cleanup work in the Mediatek drivers
- Several fixes and features for the DaVinci I2S driver
- New drivers for several AMD and Intel platforms, Nuvoton NAU8325,
  Rockchip RK3308 and Texas Instruments PCM6240

HD-audio:
- Cleanup for CONFIG_PM dependencies
- Cirrus HD-audio codec fixes and quirks

Others:
- Series of tree-wide fixes in Makefiles to use *-y
- Additions of missing module descriptions
- Scarlett2 USB mixer enhancements
- A series of legacy emu10k1 fixes and improvements


15 May 2024: drm for 6.10-rc1 [+ + +]
This is the main pull request for the drm subsystems for 6.10.

In drivers the main thing is a new driver for ARM Mali firmware based
GPUs, otherwise there are a lot of changes to amdgpu/xe/i915/msm and
scattered changes to everything else.

In the core a bunch of headers and Kconfig was refactored, along with
the addition of a new panic handler which is meant to provide a user
friendly message when a panic happens and graphical display is
enabled.

I did a trial merge and there were only two minor conflicts that I
think should be fine for you to handle. I know there are some
conflicts on the list from sfr with the devicetree and kbuild trees at
least,

Regards,
Dave.

drm-next-2024-05-15:
drm for 6.10-rc1

new drivers:
- panthor: ARM Mali/Immortalis CSF-based GPU driver

core:
- new drm panic handler
- add a CONFIG_DRM_WERROR option
- make more headers self-contained
- grab resv lock in pin/unpin
- fix vmap resv locking
- EDID/eDP panel matching
- Kconfig cleanups
- DT sound bindings
- Add SIZE_HINTS property for cursor planes
- Add struct drm_edid_product_id and helpers.
- Use drm device based logging in more drm functions.
- drop seq_file.h from a bunch of places
- use drm_edid driver conversions

dp:
- DP Tunnel documentation
- MST read sideband cap
- Adaptive sync SDP prep work

ttm:
- improve placement for TTM BOs in idle/busy handling

panic:
- Fixes for drm-panic, and option to test it.
- Add drm panic to simpledrm, mgag200, imx, ast

bridge:
- improve init ordering
- adv7511: allow GPIO pin sharing
- tc358775: add tc358675 support

panel:
- AUO B120XAN01.0
- Samsung s6e3fa7
- BOE NT116WHM-N44
- CMN N116BCA-EA1,
- CrystalClear CMT430B19N00
- Startek KD050HDFIA020-C020A
- powertip PH128800T006-ZHC01
- Innolux G121X1-L03
- LG sw43408
- Khadas TS050 V2
- EDO RM69380 OLED
- CSOT MNB601LS1-1

amdgpu:
- HDCP/ODM/RAS fixes
- Devcoredump improvements
- Expose VCN activity via sysfs
- SMY 13.0.x updates
- Enable fast updates on DCN 3.1.4
- Add dclk and vclk reporting on additional devices
- Add ACA RAS infrastructure
- Implement TLB flush fence
- EEPROM handling fixes
- SMUIO 14.0.2 support
- SMU 14.0.1 Updates
- SMU 14.0.2 support
- Sync page table freeing with TLB flushes
- DML2 refactor
- DC debug improvements
- DCN 3.5.x Updates
- GPU reset fixes
- HDP fix for second GFX pipe on GC 10.x
- Enable secondary GFX pipe on GC 10.3
- Refactor and clean up BACO/BOCO/BAMACO handling
- Remove invalid TTM resource start check
- UAF fix in VA IOCTL
- GPUVM page fault redirection to secondary IH rings for IH 6.x
- Initial support for mapping kernel queues via MES
- Fix VRAM memory accounting

amdkfd:
- MQD handling cleanup
- Preemption handling fixes for XCDs
- TLB flush fix for GC 9.4.2
- Properly clean up workqueue during module unload
- Fix memory leak process create failure
- Range check CP bad op exception targets to avoid reporting invalid
exceptions to userspace
- Fix eviction fence handling
- Fix leak in GPU memory allocation failure case
- DMABuf import handling fix
- Enable SQ watchpoint for gfx10

i915:
- Adding new DG2 PCI ID
- add context hints for GT frequency
- enable only one CCS for compute workloads
- new workarounds
- Fix UAF on destroy against retire race and remove two earlier partial fix=
es
- Limit the reserved VM space to only the platforms that need it
- Fix gt reset with GuC submission is disable
- Add and use gt_to_guc() wrapper

i915/xe display:
- Lunar Lake display enabling, including cdclk and other refactors
- BIOS/VBT/opregion related refactor
- Digital port related refactor/clean-up
- Fix 2s boot time regression on DP panel replay init
- Remove duplication on audio enable/disable on SDVO and g4x+ DP
- Disable AuxCCS framebuffers if built for Xe
- Make crtc disable more atomic
- Increase DP idle pattern wait timeout to 2ms
- Start using container_of_const() for some extra const safety
- Fix Jasper Lake boot freeze
- Enable MST mode for 128b/132b single-stream sideband
- Enable Adaptive Sync SDP Support for DP
- Fix MTL supported DP rates - removal of UHBR13.5
- PLL refactoring
- Limit eDP MSO pipe only for display version 20
- More display refactor towards independence from i915 dev_priv
- Convert i915/xe fbdev to DRM client
- More initial work to make display code more independent from i915

xe:
- improved error capture
- clean up some uAPI leftovers
- devcoredump update
- Add BMG mocs table
- Handle GSCCS ER interrupt
- Implement xe2- and GuC workarounds
- struct xe_device cleanup
- Hwmon updates
- Add LRC parsing for more GPU instruction
- Increase VM_BIND number of per-ioctl Ops
- drm/xe: Add XE_BO_GGTT_INVALIDATE flag
- Initial development for SR-IOV support
- Add new PCI IDs to DG2 platform
- Move userptr over to start using hmm_range_fault

msm:
- Switched to generating register header files during build process
  instead of shipping pre-generated headers
- Merged DPU and MDP4 format databases.
- DP:
- Stop using compat string to distinguish DP and eDP cases
- Added support for X Elite platform (X1E80100)
- Reworked DP aux/audio support
- Added SM6350 DP to the bindings
- GPU:
- a7xx perfcntr reg fixes
- MAINTAINERS updates
- a750 devcoredump support

radeon:
- Silence UBSAN warnings related to flexible arrays

nouveau:
- move some uAPI objects to uapi headers

omapdrm:
- console fix

ast:
- add i2c polling

qaic:
- add debugfs entries

exynos:
- fix platform_driver .owner
- drop cleanup code

mediatek:
- Use devm_platform_get_and_ioremap_resource() in mtk_hdmi_ddc_probe()
- Add GAMMA 12-bit LUT support for MT8188
- Rename mtk_drm_* to mtk_*
- Drop driver owner initialization
- Correct calculation formula of PHY Timing
drm for 6.10-rc1

new drivers:
- panthor: ARM Mali/Immortalis CSF-based GPU driver

core:
- add a CONFIG_DRM_WERROR option
- make more headers self-contained
- grab resv lock in pin/unpin
- fix vmap resv locking
- EDID/eDP panel matching
- Kconfig cleanups
- DT sound bindings
- Add SIZE_HINTS property for cursor planes
- Add struct drm_edid_product_id and helpers.
- Use drm device based logging in more drm functions.
- drop seq_file.h from a bunch of places
- use drm_edid driver conversions

dp:
- DP Tunnel documentation
- MST read sideband cap
- Adaptive sync SDP prep work

ttm:
- improve placement for TTM BOs in idle/busy handling

panic:
- Fixes for drm-panic, and option to test it.
- Add drm panic to simpledrm, mgag200, imx, ast

bridge:
- improve init ordering
- adv7511: allow GPIO pin sharing
- tc358775: add tc358675 support

panel:
- AUO B120XAN01.0
- Samsung s6e3fa7
- BOE NT116WHM-N44
- CMN N116BCA-EA1,
- CrystalClear CMT430B19N00
- Startek KD050HDFIA020-C020A
- powertip PH128800T006-ZHC01
- Innolux G121X1-L03
- LG sw43408
- Khadas TS050 V2
- EDO RM69380 OLED
- CSOT MNB601LS1-1

amdgpu:
- HDCP/ODM/RAS fixes
- Devcoredump improvements
- Expose VCN activity via sysfs
- SMY 13.0.x updates
- Enable fast updates on DCN 3.1.4
- Add dclk and vclk reporting on additional devices
- Add ACA RAS infrastructure
- Implement TLB flush fence
- EEPROM handling fixes
- SMUIO 14.0.2 support
- SMU 14.0.1 Updates
- SMU 14.0.2 support
- Sync page table freeing with TLB flushes
- DML2 refactor
- DC debug improvements
- DCN 3.5.x Updates
- GPU reset fixes
- HDP fix for second GFX pipe on GC 10.x
- Enable secondary GFX pipe on GC 10.3
- Refactor and clean up BACO/BOCO/BAMACO handling
- Remove invalid TTM resource start check
- UAF fix in VA IOCTL
- GPUVM page fault redirection to secondary IH rings for IH 6.x
- Initial support for mapping kernel queues via MES
- Fix VRAM memory accounting

amdkfd:
- MQD handling cleanup
- Preemption handling fixes for XCDs
- TLB flush fix for GC 9.4.2
- Properly clean up workqueue during module unload
- Fix memory leak process create failure
- Range check CP bad op exception targets to avoid reporting invalid
exceptions to userspace
- Fix eviction fence handling
- Fix leak in GPU memory allocation failure case
- DMABuf import handling fix
- Enable SQ watchpoint for gfx10

i915:
- Adding new DG2 PCI ID
- add context hints for GT frequency
- enable only one CCS for compute workloads
- new workarounds
- Fix UAF on destroy against retire race and remove two earlier partial fix=
es
- Limit the reserved VM space to only the platforms that need it
- Fix gt reset with GuC submission is disable
- Add and use gt_to_guc() wrapper

i915/xe display:
- Lunar Lake display enabling, including cdclk and other refactors
- BIOS/VBT/opregion related refactor
- Digital port related refactor/clean-up
- Fix 2s boot time regression on DP panel replay init
- Remove duplication on audio enable/disable on SDVO and g4x+ DP
- Disable AuxCCS framebuffers if built for Xe
- Make crtc disable more atomic
- Increase DP idle pattern wait timeout to 2ms
- Start using container_of_const() for some extra const safety
- Fix Jasper Lake boot freeze
- Enable MST mode for 128b/132b single-stream sideband
- Enable Adaptive Sync SDP Support for DP
- Fix MTL supported DP rates - removal of UHBR13.5
- PLL refactoring
- Limit eDP MSO pipe only for display version 20
- More display refactor towards independence from i915 dev_priv
- Convert i915/xe fbdev to DRM client
- More initial work to make display code more independent from i915

xe:
- improved error capture
- clean up some uAPI leftovers
- devcoredump update
- Add BMG mocs table
- Handle GSCCS ER interrupt
- Implement xe2- and GuC workarounds
- struct xe_device cleanup
- Hwmon updates
- Add LRC parsing for more GPU instruction
- Increase VM_BIND number of per-ioctl Ops
- drm/xe: Add XE_BO_GGTT_INVALIDATE flag
- Initial development for SR-IOV support
- Add new PCI IDs to DG2 platform
- Move userptr over to start using hmm_range_fault

msm:
- Switched to generating register header files during build process
  instead of shipping pre-generated headers
- Merged DPU and MDP4 format databases.
- DP:
- Stop using compat string to distinguish DP and eDP cases
- Added support for X Elite platform (X1E80100)
- Reworked DP aux/audio support
- Added SM6350 DP to the bindings
- GPU:
- a7xx perfcntr reg fixes
- MAINTAINERS updates
- a750 devcoredump support

radeon:
- Silence UBSAN warnings related to flexible arrays

nouveau:
- move some uAPI objects to uapi headers

omapdrm:
- console fix

ast:
- add i2c polling

qaic:
- add debugfs entries

exynos:
- fix platform_driver .owner
- drop cleanup code

mediatek:
- Use devm_platform_get_and_ioremap_resource() in mtk_hdmi_ddc_probe()
- Add GAMMA 12-bit LUT support for MT8188
- Rename mtk_drm_* to mtk_*
- Drop driver owner initialization
- Correct calculation formula of PHY Timing

 
14 May 2024: Networking for v6.10 [+ + +]
Full disclosure I hit a KASAN OOB read warning in BPF when testing
on Meta's production servers (which load a lot of BPF).
BPF folks aren't super alarmed by it, and also they are partying at
LSFMM so I don't think it's worth waiting for the fix.
But you may feel differently...  https://pastebin.com/0fzqy3cW

In terms of conflicts - there's one trivial one in drivers/of/property.c
https://lore.kernel.org/all/20240424134038.28532f2f@canb.auug.org.au/
That's the only one at the time of writing.

Some more we got from Stephen:

drivers/net/wireless/intel/iwlwifi/mvm/Makefile
https://lore.kernel.org/all/20240506112810.02ae6c17@canb.auug.org.au/

net/core/page_pool.c
https://lore.kernel.org/all/20240509115307.71ae8787@canb.auug.org.au/

The only less trivial one is with MM in include/linux/slab.h
https://lore.kernel.org/all/20240429114302.7af809e8@canb.auug.org.au/
but I'm not sure this is actually coming to you in this merge window.


Networking changes for 6.10.

Core & protocols

 - Add bitmap_{read,write}(), bitmap_size(), expose BYTES_TO_BITS().
   This required touch-ups and renaming of a few existing users.

 - Add Endian-dependent __counted_by_{le,be} annotations.

 - Make building selftests "quieter" by printing summaries like
   "CC object.o" rather than full commands with all the arguments.

Netfilter
---------

 - Use GFP_KERNEL to clone elements, to deal better with OOM situations
   and avoid failures in the .commit step.

BPF
---

 - Add eBPF JIT for ARCv2 CPUs.

 - Support attaching kprobe BPF programs through kprobe_multi link in
   a session mode, meaning, a BPF program is attached to both function entry
   and return, the entry program can decide if the return program gets
   executed and the entry program can share u64 cookie value with return
   program. "Session mode" is a common use-case for tetragon and bpftrace.

 - Add the ability to specify and retrieve BPF cookie for raw tracepoint
   programs in order to ease migration from classic to raw tracepoints.

 - Add an internal-only BPF per-CPU instruction for resolving per-CPU
   memory addresses and implement support in x86, ARM64 and RISC-V JITs.
   This allows inlining functions which need to access per-CPU state.

 - Optimize x86 BPF JIT's emit_mov_imm64, and add support for various
   atomics in bpf_arena which can be JITed as a single x86 instruction.
   Support BPF arena on ARM64.

 - Add a new bpf_wq API for deferring events and refactor process-context
   bpf_timer code to keep common code where possible.

 - Harden the BPF verifier's and/or/xor value tracking.

 - Introduce crypto kfuncs to let BPF programs call kernel crypto APIs.

 - Support bpf_tail_call_static() helper for BPF programs with GCC 13.

 - Add bpf_preempt_{disable,enable}() kfuncs in order to allow a BPF
   program to have code sections where preemption is disabled.

Driver API

 - Remove the need to create a config file to run the net forwarding tests
   so that a naive "make run_tests" can exercise them.

 - Define a method of writing tests which require an external endpoint
   to communicate with (to send/receive data towards the test machine).
   Add a few such tests.

 - Create a shared code library for writing Python tests. Expose the YAML
   Netlink library from tools/ to the tests for easy Netlink access.

 - Move netfilter tests under net/, extend them, separate performance tests
   from correctness tests, and iron out issues found by running them
   "on every commit".

 - Refactor BPF selftests to use common network helpers.

 - Further work filling in YAML definitions of Netlink messages for:
   nftables, team driver, bonding interfaces, vlan interfaces, VF info,
   TC u32 mark, TC police action.

 - Teach Python YAML Netlink to decode attribute policies.

 - Extend the definition of the "indexed array" construct in the specs
   to cover arrays of scalars rather than just nests.

 - Add hyperlinks between definitions in generated Netlink docs.

Drivers
-------

 - Make sure unsupported flower control flags are rejected by drivers,
   and make more drivers report errors directly to the application rather
   than dmesg (large number of driver changes from Asbjørn Sloth Tønnesen).

 - Ethernet high-speed NICs:
   - Broadcom (bnxt):
     - support multiple RSS contexts and steering traffic to them
     - support XDP metadata
     - make page pool allocations more NUMA aware
   - Intel (100G, ice, idpf):
     - extract datapath code common among Intel drivers into a library
     - use fewer resources in switchdev by sharing queues with the PF
     - add PFCP filter support
     - add Ethernet filter support
     - use a spinlock instead of HW lock in PTP clock ops
     - support 5 layer Tx scheduler topology
   - nVidia/Mellanox:
     - 800G link modes and 100G SerDes speeds
     - per-queue IRQ coalescing configuration
   - Marvell Octeon:
     - support offloading TC packet mark action

 - Ethernet NICs consumer, embedded and virtual:
   - stop lying about skb->truesize in USB Ethernet drivers, it messes up
     TCP memory calculations
   - Google cloud vNIC:
     - support changing ring size via ethtool
     - support ring reset using the queue control API
   - VirtIO net:
     - expose flow hash from RSS to XDP
     - per-queue statistics
     - add selftests
   - Synopsys (stmmac):
     - support controllers which require an RX clock signal from the MII
       bus to perform their hardware initialization
   - TI:
     - icssg_prueth: support ICSSG-based Ethernet on AM65x SR1.0 devices
     - icssg_prueth: add SW TX / RX Coalescing based on hrtimers
     - cpsw: minimal XDP support
   - Renesas (ravb):
     - support describing the MDIO bus
   - Realtek (r8169):
     - add support for RTL8168M
   - Microchip Sparx5:
     - matchall and flower actions mirred and redirect

 - Ethernet switches:
   - nVidia/Mellanox:
     - improve events processing performance
   - Marvell:
     - add support for MV88E6250 family internal PHYs
   - Microchip:
     - add DCB and DSCP mapping support for KSZ switches
     - vsc73xx: convert to PHYLINK
   - Realtek:
     - rtl8226b/rtl8221b: add C45 instances and SerDes switching

 - Many driver changes related to PHYLIB and PHYLINK deprecated API cleanup.

 - Ethernet PHYs:
   - Add a new driver for Airoha EN8811H 2.5 Gigabit PHY.
   - micrel: lan8814: add support for PPS out and external timestamp trigger

 - WiFi:
   - Disable Wireless Extensions (WEXT) in all Wi-Fi 7 devices drivers.
     Modern devices can only be configured using nl80211.
   - mac80211/cfg80211
     - handle color change per link for WiFi 7 Multi-Link Operation
   - Intel (iwlwifi):
     - don't support puncturing in 5 GHz
     - support monitor mode on passive channels
     - BZ-W device support
     - P2P with HE/EHT support
     - re-add support for firmware API 90
     - provide channel survey information for Automatic Channel Selection
   - MediaTek (mt76):
     - mt7921 LED control
     - mt7925 EHT radiotap support
     - mt7920e PCI support
   - Qualcomm (ath11k):
     - P2P support for QCA6390, WCN6855 and QCA2066
     - support hibernation
     - ieee80211-freq-limit Device Tree property support
   - Qualcomm (ath12k):
     - refactoring in preparation of multi-link support
     - suspend and hibernation support
     - ACPI support
     - debugfs support, including dfs_simulate_radar support
   - RealTek:
     - rtw88: RTL8723CS SDIO device support
     - rtw89: RTL8922AE Wi-Fi 7 PCI device support
     - rtw89: complete features of new WiFi 7 chip 8922AE including
       BT-coexistence and Wake-on-WLAN
     - rtw89: use BIOS ACPI settings to set TX power and channels
     - rtl8xxxu: enable Management Frame Protection (MFP) support

 - Bluetooth:
   - support for Intel BlazarI and Filmore Peak2 (BE201)
   - support for MediaTek MT7921S SDIO
   - initial support for Intel PCIe BT driver
   - remove HCI_AMP support

Signed-off-by: Jakub Kicinski <kuba@kernel.org>

14 May 2024: fsverity update for 6.10 [+ + +]
Fix a false positive kmemleak warning.

14 May 2024: fscrypt update for 6.10 [+ + +]
Improve the performance of opening unencrypted files on filesystems that
support fscrypt.

14 May 2024: OpenRISC updates for 6.10 [+ + +]

OpenRISC updates for 6.10

A few cleanups and fixups from me:

 - Add a few missing relocations to fix module loading.
 - Cleanup FPU state save and restore to be more efficient.
 - Cleanups to traps handling and logging.
 - Fix issue with poweroff being broken after recent power driver
   refactoings.

14 May 2024: HID for 6.10 [+ + +]
please pull from

nus-2024051401

to receive HID subsystem updates for 6.10 merge window. Highlights:

=3D=3D=3D=3D=3D
- Firmware loading from host support in intel-ish driver, needed
  to support Lunar Lake and later (Zhang Lixu)
- updates to HID-BPF infrastructure, with some of the specific
  fixes (e.g. rdesc fixups) abstracted into separate BPF programs
  for consumption from libevdev/udev-hid-bpf (Benjamin Tissoires)
- support for Deck IMU in hid-steam (Max Maisel)
- fixes for better support of 3rd party playstation DS4 controllers
  (Max Staudt)
- support for missing mappings and codes from HUT 1.5 in hid-debug
  (Thomas Kuehne)
- initial support for ROG Ally and ROG X13 devices (Luke D. Jones)
- full support for WinWing Orion2 (Ivan Gorinov)
=3D=3D=3D=3D=3D

Thanks!

14 May 2024: firewire updates for v6.10 [+ + +]

firewire updates for v6.10

During the development period of v6.8 kernel, it became evident that there
was a lack of helper utilities to trace the initial state of bus, while
investigating certain PHYs compliant with different versions of IEEE 1394
specification.

This series of changes includes the addition of tracepoints events,
provided by 'firewire' subsystem. These events enable tracing of how
firewire core functions during bus reset and asynchronous communication
over IEEE 1394 bus.

When implementing the tracepoints events, it was found that the existing
serialization and deserialization helpers for several types of
asynchronous packets are scattered across both firewire-core and
firewire-ohci kernel modules. A set of inline functions is newly added
to address it, along with some KUnit tests, serving as the foundation for
the tracepoints events. This renders the dispersed code obsolete.

The remaining changes constitute the final steps in phasing out the usage
of deprecated PCI MSI APIs, in continuation from the previous version.

14 May 2024: Modules changes for v6.10-rc1 [+ + +]
Modules changes for v6.10-rc1

Finally something fun. Mike Rapoport does some cleanup to allow us to
take out module_alloc() out of modules into a new paint shedded execmem_alloc()
and execmem_free() so to make emphasis these helpers are actually used outside
of modules. It starts with a no-functional changes API rename / placeholders
to then allow architectures to define their requirements into a new shiny
struct execmem_info with ranges, and requirements for those ranges. Archs
now can intitialize this execmem_info as the last part of mm_core_init() if
they have to diverge from the norm. Each range is a known type clearly
articulated and spelled out in enum execmem_type.

Although a lot of this is major cleanup and prep work for future enhancements an
immediate clear gain is we get to enable KPROBES without MODULES now. That is
ultimately what motiviated to pick this work up again, now with smaller goal as
concrete stepping stone.

This has been sitting on linux-next for a little less than a month, a few issues
were found already and fixed, in particular an odd mips boot issue. Arch folks
reviewed the code too. This is ready for wider exposure and testing.

14 May 2024: gpio: updates for v6.10-rc1 [+ + +]
This was a quiet release cycle for the GPIO tree and so the main pull-request
is relatively small. We have one new driver, some minor improvements to the
GPIO core code and across several drivers, some DT and documentation updates
but in general nothing stands out or is controversial. All changes have spent
time in next with no reported issues (or ones that were quickly fixed).

Details are in the signed tag. Please consider pulling.

Best Regards,
Bartosz Golaszewski

gpio updates for v6.10-rc1

GPIO core:
- remove more unused legacy interfaces (after converting the last remaining
  users to better alternatives)
- update kerneldocs
- improve error handling and log messages in GPIO ACPI code
- remove dead code (always true checks) from GPIOLIB

New drivers:
- add a driver for Intel Granite Rapids-D vGPIO

Driver improvements:
- use -ENOTSUPP consistently in gpio-regmap and gpio-pcie-idio-24
- provide an ID table for gpio-cros-ec to avoid a driver name fallback check
- add support for gpio-ranges for GPIO drivers supporting multiple GPIO banks
- switch to using dynamic GPIO base in gpio-brcmstb
- fix irq handling in gpio-npcm-sgpio
- switch to memory mapped IO accessors in gpio-sch

DT bindings:
- add support for gpio-ranges to gpio-brcmstb
- add support for a new model and the gpio-line-names property to gpio-mpfs

Documentation:
- replace leading tabs with spaces in code blocks
- fix typos

 
13 May 2024: hte: Changes for v6.10-rc1 [+ + +]
hte: Changes for v6.10-rc1

The changes for the hte/timestamp subsystem include the following:
- Improve hte-test driver platform remove callback by replacing it
with the remove_new which returns void instead.

13 May 2024: hwmon updates for v6.10 [+ + +]


Thanks,
Guenter
------

hwmon updates for v6.10

* New drivers

  - Infineon XDP710

  - EC Chip driver for Lenovo ThinkStation motherboards

  - Analog Devices ADP1050

* Improved support for existing drivers

  - emc1403: Convert to with_info API; Support for EMC1428 and EMC1438

  - nzxt-kraken3: Support for NZXT Kraken 2023

  - aquacomputer_d5next: Support for Octo flow sensors

  - pmbus/adm1275: Support for ADM1281

  - dell-smm: Supportt for Precision 7540 and G5 5505

* Other notable cleanup

  - max6639: Use regmap

  - Remove unused structure fields from multiple drivers

  - Drop explicit initialization of struct i2c_device_id::driver_data to 0

  - Improve configuration mode handling in it87 driver

  - jc42: Drop support for I2C_CLASS_SPD

  - Various conversions to devicetree schema

  - Add HAS_IOPORT dependencies as needed

* Minor fixes and improvements to max31790, coretemp, aspeed-g6-pwm-tach,
  pwm-fan, pmbus/mp2975, acpi_power_meter, and lm70 drivers

13 May 2024: dlm updates for 6.10 [+ + +]


This set includes some small fixes, and some big internal changes:

- Fix a long standing race between the unlock callback for the last lkb
struct, and removing the rsb that became unused after the final unlock.
This could lead different nodes to inconsistent info about the rsb master
node.

- Remove unnecessary refcounting on callback structs, returning to the way
things were done in the past.

- Do message processing in softirq context.  This allows dlm messages to
be cleared more quickly and efficiently, reducing long lists of incomplete
requests.  A future change to run callbacks directly from this context
will make this more effective.

- The softirq message processing involved a number of patches changing
mutexes to spinlocks and rwlocks, and a fair amount of code re-org in
preparation.

- Use an rhashtable for rsb structs, rather than our old internal hash
table implementation.  This also required some re-org of lists and locks
preparation for the change.

- Drop the dlm_scand kthread, and use timers to clear unused rsb structs.
Scanning all rsb's periodically was a lot of wasted work.

- Fix recent regression in logic for copying LVB data in user space lock
requests.

Thanks,
Dave


13 May 2024: x86/sev for v6.10-rc1 [+ + +]
please pull a couple of x86/sev cleanups for v6.10-rc1.

Diffstat is a bit largish but this is due to code movement to avoid
forward declarations.

Thx.

---

- Small cleanups and improvements

13 May 2024: x86/apic for 6.10 [+ + +]
about some 64-bit divisions, but the divisor was really just a 32-bit
value being stored as 'unsigned long'. Fixing the types fixes the
warning.

--

Improve data types to fix Coccinelle division warnings

13 May 2024: ACPI updates for v6.10-rc1 [+ + +]

 acpi-6.10-rc1




 Linux 6.9-rc7

to receive ACPI updates for 6.10-rc1.

These are ACPICA updates coming from the 20240322 release upstream, an
ACPI DPTF driver update adding new platform support for it, some new
quirks and some assorted fixes and cleanups.

Specifics:

 - Add EINJ CXL error types to actbl1.h (Ben Cheatham).

 - Add support for RAS2 table to ACPICA (Shiju Jose).

 - Fix various spelling mistakes in text files and code comments in
   ACPICA (Colin Ian King).

 - Fix spelling and typos in ACPICA (Saket Dumbre).

 - Modify ACPI_OBJECT_COMMON_HEADER (lijun).

 - Add RISC-V RINTC affinity structure support to ACPICA (Haibo Xu).

 - Fix CXL 3.0 structure (RDPAS) in the CEDT table (Hojin Nam).

 - Add missin increment of registered GPE count to ACPICA (Daniil
   Tatianin).

 - Mark new ACPICA release 20240322 (Saket Dumbre).

 - Add support for the AEST V2 table to ACPICA (Ruidong Tian).

 - Disable -Wstringop-truncation for some ACPICA code in the kernel to
   avoid a compiler warning  that is not very useful (Arnd Bergmann).

 - Make the kernel indicate support for several ACPI features that are
   in fact supported to the platform firmware through _OSC and fix the
   Generic Initiator Affinity _OSC bit (Armin Wolf).

 - Make the ACPI core set the owner value for ACPI drivers, drop the
   owner setting from a number of drivers and eliminate the owner
   field from struct acpi_driver (Krzysztof Kozlowski).

 - Rearrange fields in several structures to effectively eliminate
   computations from container_of() in some cases (Andy Shevchenko).

 - Do some assorted cleanups of the ACPI device enumeration code (Andy
   Shevchenko).

 - Make the ACPI device enumeration code skip devices with _STA values
   clearly identified by the specification as invalid (Rafael Wysocki).

 - Rework the handling of the NHLT table to simplify and clarify it and
   drop some obsolete pieces (Cezary Rojewski).

 - Add ACPI IRQ override quirks for Asus Vivobook Pro N6506MV, TongFang
   GXxHRXx and GMxHGxx, and XMG APEX 17 M23 (Guenter Schafranek, Tamim
   Khan, Christoffer Sandberg).

 - Add reference to UEFI DSD Guide to the documentation related to the
   ACPI handling of device properties (Sakari Ailus).

 - Fix SRAT lookup of CFMWS ranges with numa_fill_memblks(), remove
   lefover architecture-dependent code from the ACPI NUMA handling code
   and simplify it on top of that (Robert Richter).

 - Add a num-cs device property to specify the number of chip selects
   for Intel Braswell to the ACPI LPSS (Intel SoC) driver and remove a
   nested CONFIG_PM #ifdef from it (Andy Shevchenko).

 - Move three x86-specific ACPI files to the x86 directory (Andy
   Shevchenko).

 - Mark SMO8810 accel on Dell XPS 15 9550 as always present and add a
   PNP_UART1_SKIP quirk for Lenovo Blade2 tablets (Hans de Goede).

 - Move acpi_blacklisted() declaration to asm/acpi.h (Kuppuswamy
   Sathyanarayanan).

 - Add Lunar Lake support to the ACPI DPTF driver (Sumeet Pawnikar).

 - Mark the einj_driver driver's remove callback as __exit because it
   cannot get unbound via sysfs (Uwe Kleine-K=C3=B6nig).

 - Fix a typo in the ACPI documentation regarding the layout of sysfs
   subdirectory representing the ACPI namespace (John Watts).

 - Make the ACPI pfrut utility print the update_cap field during
   capability query (Chen Yu).

 - Add HAS_IOPORT dependencies to PNP (Niklas Schnelle).

 - Add backlight=3Dnative quirk for Lenovo Slim 7 16ARH7 to the ACPI
   backlight (video) driver (Takashi Iwai).

Thanks!




 Documentation/firmware-guide/acpi/namespace.rst    |   4 +-
 arch/x86/include/asm/acpi.h                        |   2 +
 arch/x86/include/asm/sparsemem.h                   |   2 -
 arch/x86/mm/numa.c                                 |   4 +-
 drivers/acpi/Kconfig                               |   3 +
 drivers/acpi/Makefile                              |   8 +-
 drivers/acpi/acpica/Makefile                       |   1 +
 drivers/acpi/acpica/aclocal.h                      |   2 +-
 drivers/acpi/acpica/acobject.h                     | 107 +++--
 drivers/acpi/acpica/evgpeinit.c                    |   1 +
 drivers/acpi/acpica/utdebug.c                      |   5 +
 drivers/acpi/apei/einj-core.c                      |  12 +-
 drivers/acpi/bus.c                                 |  25 +-
 drivers/acpi/dock.c                                |  48 +-
 drivers/acpi/dptf/dptf_pch_fivr.c                  |   1 +
 drivers/acpi/dptf/dptf_power.c                     |   2 +
 drivers/acpi/dptf/int340x_thermal.c                |   6 +
 drivers/acpi/fan.h                                 |   1 +
 drivers/acpi/internal.h                            |   3 +-
 drivers/acpi/nhlt.c                                | 289 ++++++++++++
 drivers/acpi/numa/srat.c                           |  82 ++--
 drivers/acpi/property.c                            |  11 +-
 drivers/acpi/resource.c                            |  25 +
 drivers/acpi/scan.c                                |  30 +-
 drivers/acpi/video_detect.c                        |   8 +
 drivers/acpi/x86/Makefile                          |   8 +
 drivers/acpi/{ =3D> x86}/blacklist.c                 |   2 +-
 drivers/acpi/{acpi_cmos_rtc.c =3D> x86/cmos_rtc.c}   |   2 +-
 drivers/acpi/{acpi_lpss.c =3D> x86/lpss.c}           |   5 +-
 drivers/acpi/x86/utils.c                           |  29 +-
 drivers/input/misc/atlas_btns.c                    |   1 -
 drivers/net/fjes/fjes_main.c                       |   1 -
 drivers/platform/chrome/wilco_ec/event.c           |   1 -
 drivers/platform/x86/asus-laptop.c                 |   1 -
 drivers/platform/x86/classmate-laptop.c            |   5 -
 drivers/platform/x86/dell/dell-rbtn.c              |   1 -
 drivers/platform/x86/eeepc-laptop.c                |   1 -
 drivers/platform/x86/intel/rst.c                   |   1 -
 drivers/platform/x86/intel/smartconnect.c          |   1 -
 drivers/platform/x86/lg-laptop.c                   |   1 -
 drivers/platform/x86/sony-laptop.c                 |   2 -
 drivers/platform/x86/toshiba_acpi.c                |   1 -
 drivers/platform/x86/toshiba_bluetooth.c           |   1 -
 drivers/platform/x86/toshiba_haps.c                |   1 -
 drivers/platform/x86/wireless-hotkey.c             |   1 -
 drivers/pnp/isapnp/Kconfig                         |   2 +-
 drivers/ptp/ptp_vmw.c                              |   1 -
 .../intel/int340x_thermal/int3400_thermal.c        |   1 +
 .../intel/int340x_thermal/int3403_thermal.c        |   1 +
 drivers/virt/vmgenid.c                             |   1 -
 include/acpi/acpi_bus.h                            |  36 +-
 include/acpi/acpixf.h                              |   2 +-
 include/acpi/actbl1.h                              |   8 +-
 include/acpi/actbl2.h                              | 516 +++++++++++++----=
----
 include/acpi/actbl3.h                              |  18 +-
 include/acpi/nhlt.h                                | 181 ++++++++
 include/linux/acpi.h                               |  13 +-
 include/linux/numa.h                               |   7 +-
 tools/power/acpi/tools/pfrut/pfrut.c               |   2 +
 59 files changed, 1129 insertions(+), 408 deletions(-)
13 May 2024: Power management updates for v6.10-rc1 [+ + +]

 pm-6.10-rc1




 Linux 6.9-rc7

to receive power management updates for 6.10-rc1.

These are mostly cpufreq updates, including a significant intel-pstate
driver update and several amd-pstate improvements plus some updates of
ARM cpufreq drivers, general fixes and cleanups.

Also included are changes related to system sleep, power capping updates
adding support for a new platform and a new hardware feature (among other
things), a Samsung exynos-asv driver update allowing it to change its
Energy Model after adjusting voltage, minor cpuidle and devfreq updates
and a small documentation cleanup.

Specifics:

 - Rework the handling of disabled turbo in the intel_pstate driver and
   make it update the maximum CPU frequency consistently regardless of
   the reason on top of a number of cleanups (Rafael Wysocki).

 - Add missing checks for NULL .exit() cpufreq driver callback to the
   cpufreq core (Viresh Kumar).

 - Prevent pulicy->max from going above the frequency QoS maximum value
   when cpufreq_frequency_table_verify() is used (Xuewen Yan).

 - Prevent a negative CPU number or frequency value from being printed
   if they are really large (Joshua Yeong).

 - Update MAINTAINERS entry for amd-pstate to add two new submaintainers
   and a designated reviewer (Huang Rui).

 - Clean up the amd-pstate driver and update its documentation (Gautham
   Shenoy).

 - Fix the highest frequency issue in the amd-pstate driver which limits
   performance (Perry Yuan).

 - Enable CPPC v2 for certain processors in the family 17H, as requested
   by TR40 processor users who expect improved performance and lower
   system temperature (Perry Yuan).

 - Change latency and delay values to be read from platform firmware
   firstly for more accurate timing (Perry Yuan).

 - A new quirk is introduced for supporting amd-pstate on legacy
   processors which either lack CPPC capability, or only only have CPPC
   v2 capability (Perry Yuan).

 - Sun50i cpufreq: Add support for opp_supported_hw, H616 platform and
   general cleanups (Andre Przywara, Martin Botka, Brandon Cheo Fusi,
   Dan Carpenter, Viresh Kumar).

 - CPPC cpufreq: Fix possible null pointer dereference (Aleksandr
   Mishin).

 - Eliminate uses of of_node_put() from cpufreq (Javier Carrasco,
   Shivani Gupta).

 - brcmstb-avs: ISO C90 forbids mixed declarations (Portia Stephens).

 - mediatek cpufreq: Add support for MT7988A (Sam Shih).

 - cpufreq-qcom-hw: Add SM4450 compatibles in DT bindings (Tengfei Fan).

 - Fix struct cpudata::epp_cached kernel-doc in the intel_pstate cpufreq
   driver (Jeff Johnson).

 - Fix kerneldoc description of ladder_do_selection() (Jeff Johnson).

 - Convert the cpuidle kirkwood driver to platform remove callback
   returning void (Yangtao Li).

 - Replace deprecated strncpy() with strscpy() in the hibernation core
   code (Justin Stitt).

 - Use %ps to simplify debug output in the core system-wide suspend and
   resume code (Len Brown).

 - Remove unnecessary else from device_init_wakeup() and make
   device_wakeup_disable() return void (Dhruva Gole).

 - Enable PMU support in the Intel TPMI RAPL driver (Zhang Rui).

 - Add support for ArrowLake-H platform to the Intel RAPL driver (Zhang
   Rui).

 - Avoid explicit cpumask allocation on stack in DTPM (Dawei Li).

 - Make the Samsung exynos-asv driver update the Energy Model after
   adjusting voltage on top of some preliminary changes of the OPP and
   Enery Model generic code (Lukasz Luba).

 - Remove a reference to a function that has been dropped from the power
   management documentation (Bjorn Helgaas).

 - Convert the platfrom remove callback to .remove_new for the
   exyno-nocp, exynos-ppmu, mtk-cci-devfreq, sun8i-a33-mbus, and
   rk3399_dmc devfreq drivers (Uwe Kleine-K=C3=B6nig).

 - Use DEFINE_SIMPLE_PM_OPS for exyno-bus.c driver (Anand Moon).

Thanks!




 .../bindings/cpufreq/cpufreq-qcom-hw.yaml          |   2 +
 .../opp/allwinner,sun50i-h6-operating-points.yaml  |  87 ++-
 Documentation/power/pci.rst                        |   2 +-
 MAINTAINERS                                        |   3 +
 .../dts/allwinner/sun50i-h616-bigtreetech-cb1.dtsi |   5 +
 .../boot/dts/allwinner/sun50i-h616-cpu-opp.dtsi    | 115 ++++
 .../dts/allwinner/sun50i-h616-orangepi-zero2.dts   |   5 +
 .../boot/dts/allwinner/sun50i-h616-x96-mate.dts    |   5 +
 arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi     |   8 +
 .../allwinner/sun50i-h618-longan-module-3h.dtsi    |   5 +
 .../dts/allwinner/sun50i-h618-orangepi-zero2w.dts  |   5 +
 .../dts/allwinner/sun50i-h618-orangepi-zero3.dts   |   5 +
 .../allwinner/sun50i-h618-transpeed-8k618-t.dts    |   5 +
 drivers/acpi/cppc_acpi.c                           |   4 +-
 drivers/base/power/main.c                          |   6 +-
 drivers/base/power/wakeup.c                        |  11 +-
 drivers/cpufreq/amd-pstate.c                       | 280 ++++++----
 drivers/cpufreq/brcmstb-avs-cpufreq.c              |   5 +-
 drivers/cpufreq/cppc_cpufreq.c                     |  14 +-
 drivers/cpufreq/cpufreq-dt-platdev.c               |  10 +-
 drivers/cpufreq/cpufreq-dt.c                       |  21 +-
 drivers/cpufreq/cpufreq.c                          |  11 +-
 drivers/cpufreq/freq_table.c                       |  12 +-
 drivers/cpufreq/intel_pstate.c                     | 173 +++---
 drivers/cpufreq/mediatek-cpufreq.c                 |  10 +
 drivers/cpufreq/sun50i-cpufreq-nvmem.c             | 209 +++++--
 drivers/cpufreq/tegra124-cpufreq.c                 |  19 +-
 drivers/cpufreq/ti-cpufreq.c                       |   4 +-
 drivers/cpuidle/cpuidle-kirkwood.c                 |   5 +-
 drivers/cpuidle/governors/ladder.c                 |   1 +
 drivers/devfreq/event/exynos-nocp.c                |   6 +-
 drivers/devfreq/event/exynos-ppmu.c                |   6 +-
 drivers/devfreq/exynos-bus.c                       |   9 +-
 drivers/devfreq/mtk-cci-devfreq.c                  |   6 +-
 drivers/devfreq/rk3399_dmc.c                       |   6 +-
 drivers/devfreq/sun8i-a33-mbus.c                   |   6 +-
 drivers/firmware/smccc/smccc.c                     |   1 +
 drivers/mmc/host/sdhci-pci-core.c                  |   2 +-
 drivers/opp/of.c                                   |  17 +-
 drivers/powercap/dtpm_cpu.c                        |   8 +-
 drivers/powercap/intel_rapl_common.c               | 607 +++++++++++++++++=
+++-
 drivers/powercap/intel_rapl_tpmi.c                 |   3 +
 drivers/soc/samsung/exynos-asv.c                   |  10 +-
 include/linux/amd-pstate.h                         |  20 +-
 include/linux/energy_model.h                       |   5 +
 include/linux/intel_rapl.h                         |  32 ++
 include/linux/pm_opp.h                             |   8 +
 include/linux/pm_wakeup.h                          |  12 +-
 kernel/power/energy_model.c                        | 106 +++-
 kernel/power/hibernate.c                           |   2 +-
 50 files changed, 1481 insertions(+), 438 deletions(-)
13 May 2024: Thermal control updates for v6.10-rc1 [+ + +]

 thermal-6.10-rc1


 Merge branch 'thermal-intel'


 thermal/debugfs: Prevent use-after-free from occurring after cdev removal

to receive thermal control updates for 6.10-rc1.

The most significant part of this is a rework of thermal governors,
including a redesign of the thermal governor interface and changes to
make some of them take trip point hysteresis into account properly,
as well as some related cleanups of the thermal governors and thermal
core.

The above is based on preliminary changes refactoring thermal data
structures and moving the definitions of some of them into the thermal
core which also ensure that trip point crossing notifications will be
sent to user space via netlink and recorded in the debug statistics in
temperature order.

In addition, netlink bind/unbind notifications are added to the thermal
core and the Intel HFI driver is modified to use them to avoid sending
netlink messages until there are subscribers.

Apart from that, multiple thermal drivers are updated which includes
new hardware support (MediaTek MT8188 and MT8186, Amlogic A1 thermal
sensor, Loongson-2K2000, Lmh QCM2290), fixes, cleanups and documentation
updates, and the recently added thermal debug code is fixed and cleaned
up.

Specifics:

 - Redesign the thermal governor interface to allow the governors to
   work in a more straightforward way (Rafael Wysocki).

 - Make thermal governors take the current trip point thresholds into
   account in their computations which allows trip hysteresis to be
   observed more accurately (Rafael Wysocki).

 - Make the thermal core manage passive polling for thermal zones and
   remove passive polling management from thermal governors  (Rafael
   Wysocki).

 - Refactor trip point representation and move the definition of
   thermal governor and thermal zone device structures to the thermal
   core (Rafael Wysocki).

 - Sort trip point crossing notifications and debug recording of trip
   point crossing events by temperature (Rafael Wysocki).

 - Improve the handling of cooling device states and thermal mitigation
   episodes in progress in the thermal debug code (Rafael Wysocki).

 - Avoid excessive updates of trip point statistics and clean up the
   printing of thermal mitigation episode information (Rafael Wysocki).

 - Clean up thermal governors and thermal core (Rafael Wysocki).

 - Allow thermal drivers to register notifiers that will be invoked
   on netlink events like BIND and UNBIND, so that they can adjust
   their activity depending on whether or not there are any
   subscribers of netlink messages coming from them, and make
   the Intel HFI driver use this mechanism (Stanislaw Gruszka).

 - Adjust the update delay and capabilities-per-event values in the
   Intel HFI thermal driver to prevent it from missing events and allow
   it to process more data in one go (Ricardo Neri).

 - Add missing MODULE_DESCRIPTION() to multiple files in the
   int340x_thermal and intel_soc_dts_iosf drivers (Srinivas Pandruvada).

 - Replace deprecated strncpy() with strscpy() in the int340x_thermal
   driver (Justin Stitt).

 - Add QCM2290 compatible DT bindings for Lmh and fix a NULL pointer
   dereference in the lmh driver when the SCM is not present (Konrad
   Dybcio).

 - Use the strreplace() function instead of doing it manually in the
   Armada driver (Rasmus Villemoes).

 - Convert st,stih407-thermal to DT schema and fix up missing
   properties (Raphael Gallais-Pou).

 - Add suspend/resume by restoring the context of the tsens sensor
   (Priyansh Jain).

 - Support A1 SoC family Thermal Sensor controller and add the DT
   bindings (Dmitry Rokosov).

 - Improve the temperature approximation calculation and consolidate
   the Tj constant into a shared area of the structure instead of
   duplicating it on the Rcar Gen3 (Niklas S=C3=B6derlund).

 - Fix the Mediatek LVTS sensor coefficient for the MT8192 in order to supp=
ort
   it correctly (Hsin-Te Yuan).

 - Fix a NULL pointer dereference in the tsens driver when the function
   compute_intercept_slope() is called with a NULL parameter (Aleksandr
   Mishin).

 - Remove some unused fields in struct qpnp_tm_chip and k3_bandgap
   (Christophe Jaillet).

 - Fix up calibration efuse data decoding, consolidate the code by
   checking boundaries and refactor some part of the LVTS Mediatek
   driver. After setting the scene, add MT8186 and MT8188 along with
   the DT bindings (Nicolas Pitre).

 - Add Loongson-2K2000 support after some minor code adjustments and
   providing the DT bindings definition (Binbin Zhou).

Thanks!



 .../bindings/thermal/amlogic,thermal.yaml          |  12 +-
 .../bindings/thermal/loongson,ls2k-thermal.yaml    |  24 +-
 .../bindings/thermal/mediatek,lvts-thermal.yaml    |   6 +
 .../devicetree/bindings/thermal/qcom-lmh.yaml      |  12 +-
 .../bindings/thermal/st,stih407-thermal.yaml       |  58 +++
 .../devicetree/bindings/thermal/st-thermal.txt     |  32 --
 drivers/thermal/amlogic_thermal.c                  |  10 +
 drivers/thermal/armada_thermal.c                   |   9 +-
 drivers/thermal/gov_bang_bang.c                    |  97 ++---
 drivers/thermal/gov_fair_share.c                   |  82 ++--
 drivers/thermal/gov_power_allocator.c              |  45 +--
 drivers/thermal/gov_step_wise.c                    |  98 ++---
 drivers/thermal/gov_user_space.c                   |  10 +-
 .../intel/int340x_thermal/acpi_thermal_rel.c       |   4 +-
 .../intel/int340x_thermal/processor_thermal_mbox.c |   1 +
 .../processor_thermal_power_floor.c                |   1 +
 .../intel/int340x_thermal/processor_thermal_rapl.c |   1 +
 .../intel/int340x_thermal/processor_thermal_rfim.c |   1 +
 .../int340x_thermal/processor_thermal_wt_hint.c    |   1 +
 .../int340x_thermal/processor_thermal_wt_req.c     |   1 +
 drivers/thermal/intel/intel_hfi.c                  | 113 +++++-
 drivers/thermal/intel/intel_soc_dts_iosf.c         |   1 +
 drivers/thermal/k3_bandgap.c                       |   1 -
 drivers/thermal/loongson2_thermal.c                | 117 ++++--
 drivers/thermal/mediatek/lvts_thermal.c            | 438 +++++++++++++++--=
----
 drivers/thermal/qcom/lmh.c                         |   3 +
 drivers/thermal/qcom/qcom-spmi-temp-alarm.c        |   1 -
 drivers/thermal/qcom/tsens-v2.c                    |   1 +
 drivers/thermal/qcom/tsens.c                       |  33 +-
 drivers/thermal/qcom/tsens.h                       |   5 +
 drivers/thermal/rcar_gen3_thermal.c                | 165 ++++----
 drivers/thermal/thermal_core.c                     | 180 ++++++---
 drivers/thermal/thermal_core.h                     | 121 +++++-
 drivers/thermal/thermal_debugfs.c                  | 113 ++++--
 drivers/thermal/thermal_debugfs.h                  |   8 +-
 drivers/thermal/thermal_helpers.c                  |   8 +-
 drivers/thermal/thermal_netlink.c                  |  68 +++-
 drivers/thermal/thermal_netlink.h                  |  26 ++
 drivers/thermal/thermal_sysfs.c                    |  20 +-
 drivers/thermal/thermal_trace.h                    |   2 +
 drivers/thermal/thermal_trace_ipa.h                |   2 +
 drivers/thermal/thermal_trip.c                     |  16 +-
 .../dt-bindings/thermal/mediatek,lvts-thermal.h    |  26 ++
 include/linux/thermal.h                            | 109 +----
 44 files changed, 1354 insertions(+), 728 deletions(-)
13 May 2024: x86/microcode for v6.10-rc1 [+ + +]
please pull a couple of x86/microcode cleanups for v6.10-rc1.

Thx.

---

- Fix a clang-15 build warning and other cleanups

13 May 2024: x86/cache for v6.10-rc1 [+ + +]
please pull a set of resctrl updates for v6.10-rc1.

Thx.

---

- Add a tracepoint to read out LLC occupancy of resource monitor IDs with the
  goal of freeing them sooner rather than later

- Other code improvements and cleanups

13 May 2024: x86/alternatives for v6.10-rc1 [+ + +]
please pull x86/alternatives for v6.10-rc1.

You might encounter an easy peasy merge conflict which you can resolve
by simply zapping alternative_input_2(), i.e., what

  8dc8b02d707e ("x86/alternatives: Remove alternative_input_2()")

does.

Thx.

---

- Switch the in-place instruction patching which lead to at least one weird bug
  with 32-bit guests, seeing stale instruction bytes, to one working on
  a buffer, like the rest of the alternatives code does

- Add a long overdue check to the X86_FEATURE flag modifying functions to warn
  when former get changed in a non-compatible way after alternatives have been
  patched because those changes will be already wrong

- Other cleanups

13 May 2024: Kselftest update for Linux 6.10-rc1 [+ + +]
This is a multi-part message in MIME format.

Hi Linus,


This kselftest update for Linux 6.10-rc1 consists of:

- changes to make framework and tests reporting KTAP compliant
- changes to make ktap_helpers and power_supply test POSIX compliant
- adds ksft_exit_fail_perror() to include errono in string form
- fixes to avoid clang reporting false positive static analysis errors
   about functions that exit and never return. ksft_exit* functions
   are marked __noreturn to address this problem
- adds mechanism for reporting a KSFT_ result code
- fixes to build warnings related missing headers and unused variables
- fixes to clang build failures
- cleanups to resctrl test
- adds host arch for LLVM builds

Please note that Stepen found the following conflict in
tools/testing/selftests/mm/soft-dirty.c in next and fixed it up.

between commit:

   258ff696db6b ("selftests/mm: soft-dirty should fail if a testcase fails")

from the mm-unstable branch of the mm tree and commit:

   e6162a96c81d ("selftests/mm: ksft_exit functions do not return")

from the kselftest tree.

Stepehen's fix taking the 258ff696db6b change to use ksft_finished()
looks good to me.

diff for pull request is attached.

thanks,
-- Shuah

linux_kselftest-next-6.10-rc1

This kselftest update for Linux 6.10-rc1 consists of:

- changes to make framework and tests reporting KTAP compliant
- changes to make ktap_helpers and power_supply test POSIX compliant
- adds ksft_exit_fail_perror() to include errono in string form
- fixes to avoid clang reporting false positive static analysis errors
   about functions that exit and never return. ksft_exit* functions
   are marked __noreturn to address this problem
- adds mechanism for reporting a KSFT_ result code
- fixes to build warnings related missing headers and unused variables
- fixes to clang build failures
- cleanups to resctrl test
- adds host arch for LLVM builds

--------------PYPiMvyQ0bQx0s17qCPHNZP3
13 May 2024: Btrfs updates for 6.10 [+ + +]
Hi,

this update brings a few minor performance improvements, otherwise
there's a lot of refactoring, cleanups and other sort of not user
visible changes.



Performance improvements

- inline b-tree locking functions, improvement in metadata-heavy changes

- relax locking on a range that's being reflinked, allows read operations to
  run in parallel

- speed up NOCOW write checks (throughput +9% on a sample test)

- extent locking ranges have been reduced in several places, namely
  around delayed ref processing

Core

- more page to folio conversions
  - relocation
  - send
  - compression
  - inline extent handling
  - super block write and wait

- extent_map structure optimizations
  - reduced structure size
  - code simplifications
  - add shrinker for allocated objects, the numbers can go high and could
    exhaust memory on smaller systems (reported) as they may not get an
    opportunity to be freed fast enough

- extent locking optimizations
  - reduce locking ranges where it does not seem to be necessary and
    are safe due to other means of synchronization
  - potential improvements due to lower contention, allocation/freeing
    and state management operations of extent state tracking structures

- delayed ref cleanups and simplifications

- updated trace points

- improved error handling, warnings and assertions

- cleanups and refactoring, unification of error handling paths

13 May 2024: KUnit update for Linux 6.10-rc1 [+ + +]
This is a multi-part message in MIME format.

Hi Linus,


This kunit update for Linux 6.10-rc1 consists of:

- fix to race condition in try-catch completion
- change to __kunit_test_suites_init() to exit early if there is
   nothing to test
- change to string-stream-test to use KUNIT_DEFINE_ACTION_WRAPPER
- moving fault tests behind KUNIT_FAULT_TEST Kconfig option
- kthread test fixes and improvements
- iov_iter test fixes

diff is attached.

Tests passed on linux-next on my test system:
- allmodconfig build

Default arch um:
./tools/testing/kunit/kunit.py run
./tools/testing/kunit/kunit.py run --alltests

./tools/testing/kunit/kunit.py run --arch x86_64
./tools/testing/kunit/kunit.py run --alltests --arch x86_64

thanks,
-- Shuah

linux_kselftest-kunit-6.10-rc1

This kunit update for Linux 6.10-rc1 consists of:

- fix to race condition in try-catch completion
- change to __kunit_test_suites_init() to exit early if there is
   nothing to test
- change to string-stream-test to use KUNIT_DEFINE_ACTION_WRAPPER
- moving fault tests behind KUNIT_FAULT_TEST Kconfig option
- kthread test fixes and improvements
- iov_iter test fixes
13 May 2024: arm64 updates for 6.10 [+ + +]
but the most interesting parts are probably the mm changes from Ryan
which optimise the creation of the linear mapping at boot and
(separately) implement write-protect support for userfaultfd.

Outside of our usual directories, the Kbuild-related changes under
scripts/ have been acked by Masahiro whilst the drivers/acpi/ parts have
been acked by Rafael and the addition of cpumask_any_and_but() has been
acked by Yury.

I've also picked up some CPU errata workarounds since tagging this, so
I'll aim to send those next week.

Cheers,

Will

--->8

arm64 updates for 6.10

ACPI:
* Support for the Firmware ACPI Control Structure (FACS) signature
  feature which is used to reboot out of hibernation on some systems.

Kbuild:
* Support for building Flat Image Tree (FIT) images, where the kernel
  Image is compressed alongside a set of devicetree blobs.

Memory management:
* Optimisation of our early page-table manipulation for creation of the
  linear mapping.

* Support for userfaultfd write protection, which brings along some nice
  cleanups to our handling of invalid but present ptes.

* Extend our use of range TLBI invalidation at EL1.

Perf and PMUs:
* Ensure that the 'pmu->parent' pointer is correctly initialised by PMU
  drivers.

* Avoid allocating 'cpumask_t' types on the stack in some PMU drivers.

* Fix parsing of the CPU PMU "version" field in assembly code, as it
  doesn't follow the usual architectural rules.

* Add best-effort unwinding support for USER_STACKTRACE

* Minor driver fixes and cleanups.

Selftests:
* Minor cleanups to the arm64 selftests (missing NULL check, unused
  variable).

Miscellaneous
* Add a command-line alias for disabling 32-bit application support.

* Add part number for Neoverse-V2 CPUs.

* Minor fixes and cleanups.

13 May 2024: nolibc changes for Linux 6.10-rc1 [+ + +]
This is a multi-part message in MIME format.

Hi Linus,


This nolibc update for Linux 6.10-rc1

- adds support for uname(2)
- removes open-coded strnlen()
- exports strlen()
- adds tests for strlcat() and strlcpy()
- fixes memory error in realloc()
- fixes strlcat() return code and size usage
- fixes strlcpy() return code and size usage

diff is attached.

thanks,
-- Shuah

linux_kselftest-nolibc-6.10-rc1

This nolibc update for Linux 6.10-rc1

- adds support for uname(2)
- removes open-coded strnlen()
- exports strlen()
- adds tests for strlcat() and strlcpy()
- fixes memory error in realloc()
- fixes strlcat() return code and size usage
- fixes strlcpy() return code and size usage

13 May 2024: irq/core for v6.10-rc1 [+ + +]
please pull the latest irq/core branch from:

-12

_alloc

Updates for the interrupt subsystem:

 - Core code:

   - Interrupt storm detection for the lockup watchdog:

     Lockups which are caused by interrupt storms are not easy to debug
     because there is no information about the events which make the lockup
     detector trigger.

     To make this more user friendly, provide an extenstion to interrupt
     statistics which allows to take snapshots and an interface to retrieve
     the delta to the snapshot. Use this new mechanism in the watchdog code
     to do a two stage lockup analysis by taking the snapshot and printing
     the deltas for the topmost active interrupts on the second trigger.

     Note: This contains both the interrupt and the watchdog changes as
     the latter depend on the former obviously.

  - Avoid summation loops in the /proc/interrupts output and use the global
    counter when possible

  - Skip suspended interrupts on CPU hotplug operations to ensure that they
    are not delivered before the system resumes the device drivers when
    coming out of suspend.

  - On CPU hot-unplug interrupts which are affine to the outgoing CPU are
    migrated to a different CPU in the affinity mask. This can fail when
    the CPUs have no vectors left. Instead of giving up try to migrate it
    to any online CPU and thereby breaking the affinity setting in order to
    prevent a stale device interrupt which targets an offline CPU

  - The usual small cleanups

 - Driver code:

  - Support for the RISCV AIA MSI controller

  - Make the interrupt allocation for the Loongson PCH controller more
    flexible to prevent vector exhaustion

  - The usual set of cleanups and fixes all over the place


Thanks,

tglx

13 May 2024: x86/irq for v6.10-rc1 [+ + +]
please pull the latest x86/irq branch from:

12


X86 interrupt handling update:

  Support for posted interrupts on bare metal

    Posted interrupts is a virtualization feature which allows to inject
    interrupts directly into a guest without host interaction. The VT-d
    interrupt remapping hardware sets the bit which corresponds to the
    interrupt vector in a vector bitmap which is either used to inject the
    interrupt directly into the guest via a virtualized APIC or in case
    that the guest is scheduled out provides a host side notification
    interrupt which informs the host that an interrupt has been marked
    pending in the bitmap.

    This can be utilized on bare metal for scenarios where multiple
    devices, e.g. NVME storage, raise interrupts with a high frequency.  In
    the default mode these interrupts are handles independently and
    therefore require a full roundtrip of interrupt entry/exit.

    Utilizing posted interrupts this roundtrip overhead can be avoided by
    coalescing these interrupt entries to a single entry for the posted
    interrupt notification. The notification interrupt then demultiplexes
    the pending bits in a memory based bitmap and invokes the corresponding
    device specific handlers.

    Depending on the usage scenario and device utilization throughput
    improvements between 10% and 130% have been measured.

    As this is only relevant for high end servers with multiple device
    queues per CPU attached and counterproductive for situations where
    interrupts are arriving at distinct times, the functionality is opt-in
    via a kernel command line parameter.

Thanks,

tglx

13 May 2024: timers/core for v6.10-rc1 [+ + +]
please pull the latest timers/core branch from:

-05-12

people/daniel.lezcano/linux into timers/core

Timers and timekeeping updates:

 - Core code:

   - Make timekeeping and VDSO time readouts resilent against math overflow:

     In guest context the kernel is prone to math overflow when the host
     defers the timer interrupt due to overload, malfunction or malice.

     This can be mitigated by checking the clocksource delta for the
     maximum deferrement which is readily available. If that value is
     exceeded then the code uses a slowpath function which can handle the
     multiplication overflow.

     This functionality is enabled unconditionally in the kernel, but made
     conditional in the VDSO code. The latter is conditional because it
     allows architectures to optimize the check so it is not causing
     performance regressions.

     On X86 this is achieved by reworking the existing check for negative
     TSC deltas as a negative delta obviously exceeds the maximum
     deferrement when it is evaluated as an unsigned value. That avoids two
     conditionals in the hotpath and allows to hide both the negative delta
     and the large delta handling in the same slow path.

   - Add an initial minimal ktime_t abstraction for Rust

   - The usual boring cleanups and enhancements

 - Drivers:

   - Boring updates to device trees and trivial enhancements in various
     drivers.

Thanks,

tglx

13 May 2024: x86/timers for v6.10-rc1 [+ + +]
please pull the latest x86/timers branch from:

05-13

st MSRs

A single update for the TSC synchronixation sanity checks:

  The sad state of TSC being notoriously non-sychronized for several
  decades caused the kernel to grow quite rigorous sanity checks to detect
  whether the TSC is valid to be used for timekeeping.

  The TSC ADJUST MSR provides the offset between the initial TSC value
  after hardware reset and later modifications. This allows to detect cases
  where firmware tampers with the TSC and also allows to correct the
  firmware induced damage by resetting the offset in a controlled way.

  The universal correct rule is that the TSC ADJUST value has to be
  consistent within all CPUs of a socket.

  The kernel further assumes that the TSC offset should be consistent
  between sockets. That's not really correct as systems with a huge number
  of sockets are not architecurally guaranteed to reset the per socket TSC
  base synchronously.

  In case that the per socket offset is not consistent the kernel resets it
  to the offset of the boot CPU and then does a synchronization check which
  corrects for the inter socket delays.

  That works most of the time, but it is suboptimal as the firmware has
  eventually better information about the per socket offset and on sane
  systems that offset should just work in the validation checks.

Thanks,

tglx

13 May 2024: RAS update for v6.10-rc1 [+ + +]
please pull a single RAS update for v6.10-rc1.

Thx.

---

- Change the fixed-size buffer for MCE records to a dynamically sized
  one based on the number of CPUs present in the system

13 May 2024: m68k updates for v6.10 [+ + +]
m68k updates for v6.10

  - Fix invalid context sleep and reboot hang on Mac,
  - Fix spinlock race in kernel thread creation,
  - Miscellaneous fixes and improvements,
  - Defconfig updates.

Thanks for pulling!

13 May 2024: regmap updates for v6.10 [+ + +]
regmap: Updates for v6.10

Other than a few cleanups the changes here are all in the KUnit tests,
Richard Fitzgerald sent some bug fixes during the v6.9 cycle and while
adding test coverage for the issues fixed did some fairly substantial
improvements, both cleaning up the framework and building out the
coverage.

13 May 2024: SPI updates for v6.10 [+ + +]
spi: Updates for v6.10

The diffstat for this release is dominated by the new Airoha driver,
mainly as a result of this being a generally quite quiet release.  There
were a couple of cleanups in the core but nothing substantial, the
updates here are almost all driver specific ones.

 - Support for multi-word mode in the OMAP2 McSPI driver.
 - Overhaul of the PXA2xx driver, mostly API updates.
 - A number of DT binding conversions.
 - Support for Airoha NAND controllers, Cirrus Logic CS35L56, Mobileye
   EYEQ5 and Renesas R8A779H0.

13 May 2024: regulator updates for v6.10 [+ + +]
regulator: Updates for v6.10

There's one API update here, a new API factoring out a common pattern
for reference voltage supplies.  These are supplies uses as a reference
by analogue circuits where the consumer requests and enables the supply,
reads the voltage to calibrate the user and then never touches it again.
This is factored out into a single operation which just returns the
voltage and uses devm_ to manage the request and enable portion.

Otherwise this has been a very quiet release, we've got some new device
support, some small fixes, housekeeping and cleanup work but nothing
substantial.

There's also some non-regulator changes in here, a number of users for
the new reference voltage API were merged along with it and some MFD
changes were pulled in as dependencies for new driver work.

Highlights:

 - Add a new API for single operation handling of reference voltages.
 - Support for Allwinner AXP717 and D1, and NXP PCA9561A.

13 May 2024: EDAC updates for v6.10 [+ + +]
please pull a boring set of EDAC updates for 6.10.

Thx.

---

- Have skx_edac decode error addresses belonging to SGX properly

- Remove a bunch of unused struct members

- Other cleanups

13 May 2024: x86/shstk change for v6.10 [+ + +]



Enable shadow stacks for x32.

While we normally don't do such feature-enabling on 32-bit
kernels anymore, this change is small, straightforward & tested on
upstream glibc.

 Thanks,

Ingo

13 May 2024: x86/platform changes for v6.10 [+ + +]




x86/platform changes for v6.10:

 - Improve the DeviceTree (OF) NUMA enumeration code to
   address kernel warnings & mis-mappings on DeviceTree platforms.

 - Migrate x86 platform drivers to the .remove_new callback API

 - Misc cleanups & fixes

 Thanks,

Ingo

13 May 2024: x86/mm changes for v6.10 [+ + +]



x86/mm changes for v6.10:

 - Fix W^X violation check false-positives in the CPA code when running as a Xen PV guest

 - Fix W^X violation warning false-positives in show_fault_oops()

 Thanks,

Ingo

13 May 2024: x86/fpu changes for v6.10 [+ + +]



x86/fpu changes for v6.10:

 - Fix asm() constraints & modifiers in restore_fpregs_from_fpstate()

 - Update comments

 - Robustify the free_vm86() definition

 Thanks,

Ingo

13 May 2024: x86/entry change for v6.10 [+ + +]



Merge thunk_64.S and thunk_32.S into thunk.S.

 Thanks,

Ingo

13 May 2024: x86/cpu changes for v6.10 [+ + +]



x86/cpu changes for v6.10:

 - Rework the x86 CPU vendor/family/model code: introduce the 'VFM'
   value that is an 8+8+8 bit concatenation of the vendor/family/model
   value, and add macros that work on VFM values. This simplifies the
   addition of new Intel models & families, and simplifies existing
   enumeration & quirk code.

 - Add support for the AMD 0x80000026 leaf, to better parse topology
   information.

 - Optimize the NUMA allocation layout of more per-CPU data structures

 - Improve the workaround for AMD erratum 1386

 - Clear TME from /proc/cpuinfo as well, when disabled by the firmware

 - Improve x86 self-tests

 - Extend the mce_record tracepoint with the ::ppin and ::microcode fields

 - Implement recovery for MCE errors in TDX/SEAM non-root mode

 - Misc cleanups and fixes

 Thanks,

Ingo

13 May 2024: x86/bugs change for v6.10 [+ + +]



Use uniform "Oops: " prefix for die() messages.

 Thanks,

Ingo

13 May 2024: x86/build changes for v6.10 [+ + +]



x86/build changes for v6.10:

 - Use -fpic to build the kexec 'purgatory' (self-contained code that runs between two kernels)

 - Clean up vmlinux.lds.S generation

 - Simplify the X86_EXTENDED_PLATFORM section of the x86 Kconfig

 - Misc cleanups & fixes

 Thanks,

Ingo

13 May 2024: x86/boot changes for v6.10 [+ + +]



x86/boot changes for v6.10:

 - Move the kernel cmdline setup earlier in the boot process (again),
   to address a split_lock_detect= boot parameter bug.

 - Ignore relocations in .notes sections

 - Simplify boot stack setup

 - Re-introduce a bootloader quirk wrt. CR4 handling

 - Miscellaneous cleanups & fixes

 Thanks,

Ingo

13 May 2024: x86/asm changes for v6.10 [+ + +]



x86/asm changes for v6.10:

 - Clean up & fix asm() operand modifiers & constraints

 - Misc cleanups

 Thanks,

Ingo

13 May 2024: Scheduler changes for v6.10 [+ + +]



Scheduler changes for v6.10:

 - Add cpufreq pressure feedback for the scheduler

 - Rework misfit load-balancing wrt. affinity restrictions

 - Clean up and simplify the code around ::overutilized and
   ::overload access.

 - Simplify sched_balance_newidle()

 - Bump SCHEDSTAT_VERSION to 16 due to a cleanup of CPU_MAX_IDLE_TYPES
   handling that changed the output.

 - Rework & clean up <asm/vtime.h> interactions wrt. arch_vtime_task_switch()

 - Reorganize, clean up and unify most of the higher level
   scheduler balancing function names around the sched_balance_*()
   prefix.

 - Simplify the balancing flag code (sched_balance_running)

 - Miscellaneous cleanups & fixes

 Thanks,

Ingo

13 May 2024: Performance events changes for v6.10 [+ + +]



Perf events changes for v6.10:

 - Combine perf and BPF for fast evalution of HW breakpoint
   conditions.

 - Add LBR capture support outside of hardware events

 - Trigger IO signals for watermark_wakeup

 - Add RAPL support for Intel Arrow Lake and Lunar Lake

 - Optimize frequency-throttling

 - Miscellaneous cleanups & fixes.

 Thanks,

Ingo

13 May 2024: erofs updates for 6.10-rc1 [+ + +]
Could you consider this pull request for 6.10-rc1?

In this cycle, LZ4 global buffer count is now configurable instead
of the previous per-CPU buffers, which is useful for bare metals with
hundreds of CPUs.  A reserved buffer pool for LZ4 decompression can
also be enabled to minimize the tail allocation latencies under the
low memory scenarios with heavy memory pressure.

In addition, Zstandard algorithm is now supported as an alternative
since it has been requested by users for a while.

There are some random cleanups as usual.  All commits have been in
-next and no potential merge conflict is observed.

Thanks,
Gao Xiang

Changes since last update:

 - Make LZ4 global buffers configurable instead of per-CPU buffers;

 - Add a reserved buffer pool for LZ4 decompression for lower latencies;

 - Support Zstandard compression algorithm as an alternative;

 - Derive fsid from on-disk UUID for .statfs() if possible;

 - Minor cleanups.

13 May 2024: locking changes for v6.10 [+ + +]



Locking changes for v6.10:

 - Over a dozen code generation micro-optimizations for the atomic
   and spinlock code.

 - Add more __ro_after_init attributes

 - Robustify the lockdevent_*() macros

 Thanks,

Ingo

13 May 2024: chrome-platform-firmware changes for v6.10 [+ + +]

Hi Linus,


Thanks,
TzungBi

chrome platform firmware changes for 6.10

* Improvements

  - Set driver owner in the core registration so that coreboot drivers
    don't need to set it individually.

13 May 2024: chrome-platform changes for v6.10 [+ + +]

Hi Linus,


Thanks,
TzungBi

chrome platform changes for 6.10

* New

  - Support Framework Laptop 13 and 16 (AMD Ryzen).

* Improvements

  - Use sysfs_emit() instead of sprintf() for sysfs' show().

* Fixes

  - Fix flex-array-member-not-at-end compiler warnings by using
    DEFINE_RAW_FLEX().
  - Add HAS_IOPORT dependencies.
  - Fix long pending events during suspend after resume.

* Misc cleanups

  - Provide ID tables for avoiding fallback match.
  - Replace deprecated UNIVERSAL_DEV_PM_OPS().