Commit graph

1,484,770 commits

Author SHA1 Message Date
James Hilliard
783f6f1fdc dt-bindings: net: x-powers: add AC200/AC300 EPHY packages
The AC200 and AC300 contain compatible Fast Ethernet link PHYs which
report the same Clause 22 identifier and use the same link-side register
layout. Their package control paths differ: AC200 control registers are
accessed through the I2C register interface of the companion IC, while
the AC300 control range is at a second Clause 22 address fixed at 16 plus
the link address.

Describe both variants as Ethernet PHY packages. The package reg value is
the link PHY base address and the child supplies the documented PHY ID,
because the identification registers cannot be read until package setup
has completed. The AC300 driver reaches its control range with the PHY
package offset helpers. The AC200 package instead references the companion
IC described by the separately submitted x-powers,ac200 MFD binding. Its
I2C interface provides access to the package controls.

Give fixed hardware variant-specific compatibles. Also provide an ACx00
compatible for systems which can contain either package, with one packed
NVMEM field containing calibration in bits 3 through 0, the AC300 selector
in bit 8 and its low-calibration selector in bit 9. Such a description
contains the potential resources for both backends; the driver consumes
only those selected by the configuration field.

Document the little-endian encoding and two-byte full configuration,
while allowing a one-byte calibration value for fixed AC200 packages.

Describe the package clock, supply and optional xMII receive-clock
inversion needed by some integrations. A fixed AC200 package may omit the
NVMEM field and use its internal calibration copy. Limit both the package
and child link-PHY addresses in AC300-capable descriptions to 0 through 7
so the control address remains in the documented range 16 through 23.

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Link: https://patch.msgid.link/20260909-submit-acx00-of-dynamic-v1-v11-1-eb45e89ef918@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-14 18:44:00 -07:00
Lorenzo Bianconi
a952507ca0 net: airoha: add LRO offload support
Introduce LRO offload support to the airoha_eth driver, leveraging
the EN7581/AN7583 SoC's 8 dedicated LRO hardware queues mapped to RX
queues 24-31. LRO offloading does not support Scatter-Gather (SG) so
it is required to increase the page_pool allocation order to 2 for RX
queues 24-31 (LRO queues).

Since LRO is configured per-QDMA and shared across all devices using
it, LRO is mutually exclusive with multiple devices bound to the
same QDMA block. NETIF_F_LRO availability is re-evaluated whenever the
QDMA user count changes (device registration and runtime QDMA
migration): airoha_update_netdev_features() drops the feature when the
QDMA has more than one user, while airoha_dev_set_qdma() re-enables LRO
on the destination QDMA after a migration so that a running device
keeps it active on the new QDMA block.

Set the GSO metadata (gso_type/gso_size/gso_segs) on aggregated packets,
together with CHECKSUM_PARTIAL and the pseudo-header checksum, so that
L3-forwarded traffic is correctly re-segmented by the GSO/TSO path on
the egress device.

The HW does not report the per-segment MSS (msg3[31:16] only reports
the max aggregated size), so the gso_size of an aggregated packet is
approximated as DIV_ROUND_UP(data_len, agg_count), i.e. the mean
segment size. Since this can never exceed the largest merged segment,
re-segmentation only produces smaller packets, which is safe.
Aggregated skbs are marked SKB_GSO_DODGY so that the stack recomputes
gso_segs from gso_size and does not merge the aggregate into the GRO
engine.

Performance comparison between sw GRO and LRO has been carried out using
a 10Gbps NIC:
GRO:    ~2.7 Gbps
LRO:    ~8.2 Gbps

Tested-by: Madhur Agrawal <madhur.agrawal@airoha.com>
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20260909-airoha-eth-lro-v7-1-e6317be79067@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-14 18:40:40 -07:00
Jakub Kicinski
61ef87401d Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue
Tony Nguyen says:

====================
ice: expose TSPLL state on E825 through dpll subsystem

Grzegorz Nitka says:

On E825 devices that own the source timer, the TSPLL can lose lock when
the TCXO or TIME_REF signal is disrupted. This series adds monitoring
and recovery for that condition, then surfaces the lock status and clock
source selection through the dpll subsystem. It also fixes the clock_id
generation for E825 generic DPLL devices so userspace can unambiguously
map each DPLL device to its owning interface.

Patch 1 adds TSPLL lock monitoring to ice_ptp_periodic_work(). Placing it
there ensures recovery runs regardless of whether DPLL init succeeded or
CONFIG_DPLL is enabled. Lock state is cached in pf->ptp.tspll_locked via
WRITE_ONCE()/READ_ONCE() for consumption by the DPLL worker.

Patch 2 registers the TSPLL as a DPLL_TYPE_GENERIC device for E825 owner
PFs, with a fwnode-backed "time_ref" input pin. The pin state_on_dpll_set
callback switches the clock source between TIME_REF and TCXO. Lock status
is read from pf->ptp.tspll_locked; UNLOCKED is reported unconditionally
when the clock source is TCXO to reflect the free-running oscillator state.

Patch 3 changes the clock_id generation for E825 TX-CLK and TSPLL DPLLs.
Previously they used the board-level PCIe DSN, which is identical for
all interfaces sharing the same NAC/quad, so userspace could not tell
them apart. The new scheme derives the clock_id from the permanent port
MAC (with a dedicated tag bit distinguishing TSPLL from TX-CLK), while
other DPLL objects (EEC/PPS and non-E825 paths) keep the board-level
DSN-derived clock_id.

* '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue:
  ice: use per-interface clock_id for E825 generic DPLLs
  ice: add TSPLL DPLL device and TIME_REF pin for E825
  ice: monitor TSPLL lock from PTP periodic worker
====================

Link: https://patch.msgid.link/20260908222428.872254-1-anthony.l.nguyen@intel.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-14 18:37:58 -07:00
Linkui Xiao
0019aa65bb ipmr, ip6mr: annotate data-races in vif_seq_show()
ipmr_vif_seq_show() and ip6mr_vif_seq_show() read vif->bytes_in,
vif->pkt_in, vif->bytes_out and vif->pkt_out with only rcu_read_lock()
held: since commit b96ef16d2f ("ipmr: convert /proc handlers to
rcu_read_lock()") both seq_start helpers are annotated __acquires(RCU)
and no longer take mrt_lock.

Those counters are updated from softirq context and the writers already
use WRITE_ONCE(): ipmr_prepare_xmit() and ip_mr_forward() on the IPv4
side, ip6mr_prepare_xmit() and ip6_mr_forward() on the IPv6 side. The
other lockless readers use READ_ONCE() as well - ipmr_ioctl(),
ipmr_compat_ioctl(), ipmr_fill_vif(), ip6mr_ioctl() and
ip6mr_compat_ioctl().

The two vif_seq_show() helpers are the only remaining bare readers, so
KCSAN flags them and the compiler is free to tear or reload the values
while the /proc/net/ip_mr_vif and /proc/net/ip6_mr_vif lines are being
formatted. Annotate them like the other readers; these are plain
statistics, no locking is needed.

Signed-off-by: Linkui Xiao <xiaolinkui@kylinos.cn>
Link: https://patch.msgid.link/20260910093452.2070079-1-xiaolinkui@126.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-14 18:01:21 -07:00
Paulo Alcantara
e1253a82bb smb: client: fix fattr leaking on wsl_to_fattr() failure
wsl_to_fattr() mutates fattr fields as it parses each WSL EA.  If
validation later fails, the function returns false with partially
mutated fattr fields that callers do not reset.

Fix this by parsing into local variables and only committing them to
fattr on success.

Closes: https://sashiko.dev/#/patchset/20260906200517.725015-1-pc%40manguebit.org
Fixes: 78e26bec4d ("smb: client: parse uid, gid, mode and dev from WSL reparse points")
Reviewed-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
Cc: David Howells <dhowells@redhat.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Shyam Prasad N <sprasad@microsoft.com>
Cc: Ronnie Sahlberg <ronniesahlberg@gmail.com>
Cc: Bharath SM <bharathsm@microsoft.com>
Cc: Namjae Jeon <linkinjeon@kernel.org>
Cc: stable@vger.kernel.org
2026-09-14 21:53:08 -03:00
Paulo Alcantara
e1aeaf79de smb: client: fix unaligned access in WSL reparse point parser
When wsl_to_fattr() parses WSL extended attributes, it computes a
payload pointer from ea->ea_data + ea_name_length + 1.  Since the
smb2_file_full_ea_info struct is __packed and all WSL xattr names are
6 bytes long, the value pointer always lands at an odd byte offset,
never satisfying __le32 or __le64 alignment requirements.

The code then casts this pointer to __le32 * or __le64 * and
dereferences it directly, which may cause alignment faults on some
architectures.

Replace all such casts with get_unaligned_le32() and
get_unaligned_le64() in reparse_mkdev(), wsl_make_kuid(),
wsl_make_kgid() and wsl_to_fattr().

Closes: https://sashiko.dev/#/patchset/20260906200517.725015-1-pc%40manguebit.org
Fixes: 78e26bec4d ("smb: client: parse uid, gid, mode and dev from WSL reparse points")
Reviewed-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Paulo Alcantara <pc@manguebit.org>
Cc: David Howells <dhowells@redhat.com>
Cc: Tom Talpey <tom@talpey.com>
Cc: Shyam Prasad N <sprasad@microsoft.com>
Cc: Ronnie Sahlberg <ronniesahlberg@gmail.com>
Cc: Bharath SM <bharathsm@microsoft.com>
Cc: Namjae Jeon <linkinjeon@kernel.org>
Cc: stable@vger.kernel.org
2026-09-14 21:52:55 -03:00
Jakub Kicinski
ad6ff1a67b Merge branch 'hardware-pacing-offload'
Willem de Bruijn says:

====================
hardware pacing offload

Enable safe hardware pacing offload on a first device (idpf), plus support.

- Add rtnetlink support for admin control over the device feature
- Add device support to the idpf driver

Besides the main feature, also

- Small optimization to FQ offload: avoid unnecessary ktime_.._get().
- Expand so_txtime drv-net test with hw offload testcases.

Details and detailed changelog in the individual patches.
====================

Link: https://patch.msgid.link/20260910171131.2532487-1-willemdebruijn.kernel@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-14 17:42:36 -07:00
Willem de Bruijn
ac48ee5339 selftests: drv-net: extend so_txtime with hw offload
Add two pacing hardware offload variants

1. one that uses FQ to safely offload when within bounds.
2. one that uses pfifo_fast and thus forwards all packets.

Verify that the packets are paced in hardware with new flag '-H'.

Also increase rcvtimeout significantly to reduce flakiness. Especially
for the new beyond_hw_horizon test, which is close to the 100ms limit.
But update recv_verify_empty to take MSG_DONTWAIT. That last empty
check must not delay each testcase by the receive timeout.

Hardware pacing offload can complete packets out of order. So the
reverse_order test is expected to pass with pfifo_fast too.

Do not test ETF, which does not change its dequeue behavior based on
pacing_offload.

The pfifo_fast beyond_hw_horizon testcase expects a failure because
the packet exceeds the hardware horizon and is transmitted immediately,
violating receiver arrival bounds. On slow machines (KSFT_MACHINE_SLOW),
timing variance errors are suppressed by the receiver, so relax the
failure expectation only for this timing-sensitive case while preserving
deterministic checks for other tests (such as ETF invalid txtime).

Signed-off-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20260910171131.2532487-8-willemdebruijn.kernel@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-14 17:42:34 -07:00
Willem de Bruijn
4e50c0265f selftests: drv-net: in so_txtime tell apart sw from hw pacing
Detect software pacing in so_txtime.c using SO_TIMESTAMPING.

If '-H' (hw) is passed

1. measure sw tx delay with SOF_TIMESTAMPING_TX_SOFTWARE, and
2. fail if delay exceeds a threshold, indicating pacing

This will be used in the next patch in the series.

Also extend while condition to account for possible variance.
This applies to all tests, not just the new '-H' variants.

Also reorder getopt parameters to make them alphabetical.

Signed-off-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20260910171131.2532487-7-willemdebruijn.kernel@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-14 17:42:33 -07:00
Willem de Bruijn
2d5c630e6c selftests: drv-net: refactor so_txtime errqueue handling
Prepare error queue handling for upcoming SO_EE_ORIGIN_TIMESTAMPING
messages in the next patch in this series.

Convert do_recv_errqueue_timeout into dispatcher do_recv_errqueue
and move SO_EE_ORIGIN_TXTIME specific code into a separate helper.

This will make the next patch a lot more readable.

No functional changes.

Signed-off-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20260910171131.2532487-6-willemdebruijn.kernel@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-14 17:42:33 -07:00
Willem de Bruijn
4aa8b5cade idpf: support pacing offload
If skb->tstamp is in the future, program this future delivery txtime
in the transmit descriptor.

TCP pacing offload is only offloaded if SK_PACING_FQ is negotiated and
the FQ offload_horizon is configured. But device support for pacing
offload must be more robust: it can also be reached through SO_TXTIME.

Bounds check txtime. Only packets with timestamp between now and the
horizon (max_pacing_offload_horizon) are offloaded when pacing offload
is enabled on the device via pacing_offload.

Negotiate the feature with the device using virtchnl. Support is
conditional on
- splitq mode, where tx and tx completion queues are separate, so
  completions can be returned out of order.
- flow scheduling mode, where completions can arrive out of order.
- PTP to ensure the NIC clock is synced to CLOCK_TAI.

These features are negotiated per adapter, but expect all vports to
uniformly request splitq (req_[rt]x_splitq) and flow scheduling
(flow_sch_en) when available.

Packets beyond the horizon are sent immediately with the overflow bit
set.

On device reset, EDT capabilities are re-negotiated with firmware.
If re-negotiation succeeds, dev->max_pacing_offload_horizon is refreshed.
If pacing offload is no longer supported, dev->max_pacing_offload_horizon is set to 0.

Must not be called from netpoll due to ktime_get. But netpoll does not
generate packets with EDT, so no explicit test is needed.

Do not fail device initialization on EDT init error. Log an error, but
continue without EDT, similar to PTP.

Cc: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Joshua A Hay <joshua.a.hay@intel.com>
Cc: intel-wired-lan@lists.osuosl.org
Cc: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Signed-off-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20260910171131.2532487-5-willemdebruijn.kernel@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-14 17:42:33 -07:00
Willem de Bruijn
e628a85c69 net_sched: sch_fq: clear past skb->tstamp if offloading pacing
When hardware offload is enabled, FQ will forward packets to the
netdevice for pacing. The device has to test that skb->tstamp is
in the future.

Avoid this cost for packets whose txtime has already passed, by
clearing skb->tstamp.

Also clear slightly into the future, for EDT timestamps that are
so close to now that they fall within a reasonable normal Tx
latency. This slack is set to 400 nsec.

Signed-off-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20260910171131.2532487-4-willemdebruijn.kernel@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-14 17:42:33 -07:00
Willem de Bruijn
8036cbf026 net_sched: sch_fq: check device pacing offload
Network devices can modify pacing offload administratively or device
renegotiation.

In FQ, only offload if the feature is enabled and within the supported
device horizon.

Signed-off-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20260910171131.2532487-3-willemdebruijn.kernel@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-14 17:42:33 -07:00
Willem de Bruijn
f2109e90a5 net: rtnetlink: add pacing_offload attribute to net_device
Add a new flag to administratively control pacing offload.

The feature is disabled by default. That does not cause regressions, as no
driver advertises max_pacing_offload_horizon yet.

Also add NLA_REJECT for max_pacing_offload_horizon, in line with
other such read-only members of link-attrs.

Both fields can be read with

    ynl --family rt-link --do getlink \
        --json '{"ifname": "eth0"}' | grep pacing

And pacing offload enabled with

    ynl --family rt-link --do setlink \
        --json '{"ifname": "eth0", "pacing-offload": 1}'

Signed-off-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20260910171131.2532487-2-willemdebruijn.kernel@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-14 17:42:33 -07:00
Donggeun Yoo
043777e948 net: phy: dp83867: restore LED configuration after a soft reset
The LED configuration lives in LEDCR1 (the per-LED function nibble) and
LEDCR2 (per-LED driver enable/value and polarity). The driver programs it
through the LED class callbacks -- dp83867_led_brightness_set(),
dp83867_led_hw_control_set() and dp83867_led_polarity_set() -- either once
from device tree at probe, or at runtime from sysfs and the netdev trigger.

dp83867_phy_reset(), the .soft_reset callback, issues a global software
reset (CTRL SW_RESET), which the datasheet defines as resetting all
registers, including the extended registers, to their defaults.
phy_init_hw() runs .soft_reset before .config_init on every attach and
resume -- phy_attach_direct(), mdio_bus_phy_resume() and MAC drivers -- so
the LED configuration is wiped from the first attach onward and never
restored. A device-tree polarity is lost, a manually driven LED goes dark,
and an LED offloaded to the netdev trigger whose link stays down after a
resume keeps the reset-default function until the next link event.

Shadow what the LED callbacks program, as a value and a written-bits mask
per register, and replay it from config_init(), which runs right after the
soft reset. Only bits the driver actually set are restored.

The callbacks run under phydev->lock, but config_init() must not take it:
the cable-test abort path in phy_state_machine() already holds phydev->lock
when it reaches phy_init_hw(), so config_init() taking it would deadlock.
Serialize the shadow and its replay with a dedicated lock instead.

Signed-off-by: Donggeun Yoo <donggeunyoo.kernel@gmail.com>
Link: https://patch.msgid.link/20260908235740.120112-1-donggeunyoo.kernel@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-14 17:27:33 -07:00
Jakub Kicinski
1f20151408 netfilter pull request 26-09-11
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEjF9xRqF1emXiQiqU1w0aZmrPKyEFAmqjvZ0ACgkQ1w0aZmrP
 KyG6Vw//XRHhoUFfdS6S6TqCB2d1e/r/1OxkITV7KtTOUv9hhP2MO+MQTK0vXmaw
 0vEy07qwIZo0uUK5EX5QkNqKu8CRG18qk5LfjmqXkadRqk3qxo8sVD52dCq75HLg
 E+6P3+jcOxeuGopo0kAEhh+ZTb7YlcBjMu6Curqz+BXRq8KRjebBEJ/eidKWx7wg
 t6G2NPY/vQ2Uet4uR9Mg4sWrHIsYB7Zu8KnUmir9mzfkHMWdDGpPRbqDu3Jssj64
 7pHx+Gz/M1iQTV5aZKV3tX5Xo7GbL5lr6MY2BORt3C8A45RcEFmPbAUWm0rDbUxO
 0YjA/ty3dHhgeJEp1d//yWQhrJp4VSzzf1Z7bpYE5W/GOWEGOliTXkqJgCy4z4EY
 PJ1m4kSN4QrIQ1DMv3/1wgRJm1lCeMLpkYA4rCyXReKHSFPtU8Aewzez5sSF2m5u
 Xdp7lro5JA8/3yMf+3mGYi7pG299xvfGoKuDQ2zOy30j4Y/zrmdljvx9qGaKnJ43
 xR4CbZTrkA1pbGE7j03IaHg1FNP8dmkRCFec3K/uJ9SZioOBhteWACWbf8QBmaM7
 L7Bw0kED4FR9/H/vBQtzkJqIr2U4gY2bEG9xGAefsA+6eG0YrWpLiGRTWsTwJHV1
 tbG/y3MdsOOalR5EuUgzl5LLJKye4XuDatkYD26I2t7YGFbLnqs=
 =wAaq
 -----END PGP SIGNATURE-----

Merge tag 'nf-next-26-09-11' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf-next

Pablo Neira Ayuso says:

====================
Netfilter updates for net-next

1) No need to hold spinlock when ct seqadj is NULL, from Fernando F. Mancera.

2) A series of patches to use GFP_KERNEL_ACCOUNT in x_tables matches
   and targets, nfnetlink, nf_tables, synproxy, sysctl, nat and conncount
   for better integration with memcg. This will surely need more follow
   ups but this gfp flag has been used in this tree over the time anyway.

* tag 'nf-next-26-09-11' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf-next:
  netfilter: conncount: use GFP_KERNEL_ACCOUNT
  netfilter: nat: use GFP_KERNEL_ACCOUNT
  netfilter: sysctl: use GFP_KERNEL_ACCOUNT
  netfilter: synproxy: use GFP_KERNEL_ACCOUNT
  netfilter: nf_tables: use GFP_KERNEL_ACCOUNT
  netfilter: nfnetlink: use GFP_KERNEL_ACCOUNT
  netfilter: x_tables: use GFP_KERNEL_ACCOUNT in match/target
  netfilter: seqadj: do not take ct lock if seqadj is NULL
====================

Link: https://patch.msgid.link/20260911084437.1838161-1-pablo@netfilter.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-14 17:11:14 -07:00
Maxime Chevallier (Netdev Foundation)
c0bb05f2d1 tools: ynl: Fix out-of-tree build for ynltool
After the blamed commit, running a out-of-tree build for ynltool fails :

  # make -C tools/net/ynl/ynltool O=/tmp/o1
  make: Entering directory 'tools/net/ynl/ynltool'
  make: *** No rule to make target '/tmp/o1/json_writer.o', needed by '/tmp/o1/ynltool'.  Stop.

ynltool's Makefile correctly accounts for $(OUTPUT) to get the list of
object files to generate :

OBJS := $(patsubst %.c,$(OUTPUT)%.o,$(SRCS))

but it never actually set $(OUTPUT) before the blamed commit, meaning
that out-of-tree buils of ynltool were always actually in-tree.

Now, the O= parameter is correctly accounted for, and the %o: %c rule fails.

Let's update the %o: %c rule to also use $(OUTPUT), as well as the .d
file expansion so that any header change is taken into account.

Reported-by: Bobby Eshleman <bobbyeshleman@gmail.com>
Closes: https://lore.kernel.org/all/aqCyWQxqKDuQnZYR@devvm29614.prn0.facebook.com/
Fixes: 917f713b4e ("tools: ynl: Allow cross-compiling ynl and associated tools")
Signed-off-by: Maxime Chevallier (Netdev Foundation) <maxime.chevallier@bootlin.com>
Reviewed-by: Nicolai Buchwitz <nb@tipi-net.de>
Link: https://patch.msgid.link/20260911164135.1428140-1-maxime.chevallier@bootlin.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-14 17:09:18 -07:00
Jakub Kicinski
7b37f11090 selftests: net: add ruff linter exclusions
Fedora is now shipping ruff 0.16 which added a ton of more
opinionated rules. Let's add some exclusions for checks
which are both noisy and IMO of questionable value.
We can still follow them for new code but it's a matter
of preference.

 C401: set(x for x in Y) -> {x for x in Y}

I find the set() a little more readable.

 I001: hard requirements to sort includes

A little too much

 RUF015: list(set_a - set_b)[0] -> next(iter(set_a - set_b))

list + index are more readable to a "C person" for sure.

Reviewed-by: Nicolai Buchwitz <nb@tipi-net.de>
Link: https://patch.msgid.link/20260912233926.304768-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-14 17:08:46 -07:00
Jakub Kicinski
6c21ebc813 netfilter pull request 26-09-11
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEjF9xRqF1emXiQiqU1w0aZmrPKyEFAmqj4z4ACgkQ1w0aZmrP
 KyFvYw//RFZnFWU4PPLMWFiHCKfBQXaDwCM6ADS2phgVLTLbs0OEQ8Mw+XvkOt2v
 ardyCu5Ujy7udvF2kaha0ACNw+Z3DYOVu+VkzhKJ4TrBaKhr9kob6Vuczdw3QQ10
 Kx6UAh3PYWV2BHqB+IoNzd40PBVTHs2ckeSntUNJ1nkGQb2f+kkjWLj3tY+OwaUv
 fUlD2e34GXdQDEAvYaRHn7Lkv+PMXx4r40EQ238yH9+wTtqBIgCRogTbLHQ3d1Lu
 r9RHMqHBOkJu5C+gDcVD1r7TXf6S1wBcohEGSvNO+VwF5KDHNylQYS/ONrnUgvRL
 9Mr9GmYXgwLN9FxNjYxlo7cjipXHvpONMJ4B0+iz1VE0SL0Z4BNqfpBISqsWW9xP
 Ox3l4IjnV0Ver+tBcNml6JcwGip1cggHrIi9lb1Zf4cMk+ndq3O+sSSW+EFpKpDn
 szu9mUrAaHpVOEHUeFqTYjC/Xvq1x1W7QkZ5BqNo4jycROhnRWeWvvUSebW1ruL+
 exWYMVA0w3aXPN6tfjGlHMCUuCgMLpOkSvXBgPKIILqnH7rueT5Qhh6wDqpD9NkW
 xaY1J56MEuhzn2Cf8YkVDdtSgXHc9dteRmg/dLLhnubycewEjDYZTm0vGnLDBYVb
 0xvVzNBQm8e7oEoczZQI9Z8Q83Pqi+OhVopZRc7SRaqJCH3pAUU=
 =H3Kp
 -----END PGP SIGNATURE-----

Merge tag 'nf-26-09-11' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf

Pablo Neira Ayuso says:

====================
Netfilter fixes for net

1) Fix KMSAN reports an uninit-value in nf_nat_setup_info() for netmap,
   from Theodor Arsenij Larionov Trichkine.

2) Restrict deletion of netdevice in basechain and flowtable to exact
   matching only, from Fernando F. Mancera.

3) Fix nf_nat_register_fn() error path allowing for a memleak.

4) Hold reference on ct until flow is released to address, otherwise
   access to release ct->ext or different ct due to typesafe RCU
   semantics.

* tag 'nf-26-09-11' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf:
  netfilter: flowtable: hold reference on ct until flow is released
  netfilter: nf_nat: unregister and release hooks on error
  netfilter: nf_tables: fix device name and prefix match in hook lookup
  netfilter: nft_nat: fully initialise new_addr in netmap setup
====================

Link: https://patch.msgid.link/20260913205447.1889203-1-pablo@netfilter.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-14 17:06:52 -07:00
Krzysztof Kozlowski
a15fac810c dt-bindings: display/msm: Use consistent indentation in the example
Correct indentation in the examples to consistent 2- or 4-spaces
indentation to fix dt-check-style warnings ("example 0
[indent-consistent] indent mismatch ...").  Preferred is 4-spaces, but
re-indenting entire example just for that is too much churn.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Patchwork: https://patchwork.freedesktop.org/patch/753054/
Link: https://lore.kernel.org/r/20260913123331.100293-4-krzysztof.kozlowski@oss.qualcomm.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
2026-09-15 02:09:28 +03:00
Guangshuo Li
f4fae975db drm/msm/hdmi_phy: fix runtime PM cleanup on probe failure
msm_hdmi_phy_probe() enables runtime PM before enabling the PHY
resources and initializing the PLL, but failures from either operation
return without calling the matching pm_runtime_disable().

The remove path disables runtime PM, but it is not called when probe
fails. As a result, runtime PM remains enabled after an unsuccessful
probe.

Route failures after pm_runtime_enable() through a common error path
and disable runtime PM before returning.

This issue was found by manual code inspection.

Fixes: 15b4a45238 ("drm/msm/hdmi: Create a separate HDMI PHY driver")
Cc: stable@vger.kernel.org
Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Patchwork: https://patchwork.freedesktop.org/patch/753043/
Link: https://lore.kernel.org/r/20260913085814.1509352-1-lgs201920130244@gmail.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
2026-09-15 02:09:28 +03:00
Dmitry Baryshkov
2028280686 drm/msm/dsi: round the byte clock rate after reparenting to the PHY PLL
DSI 6G v2.9 hosts (SM8650, SM8750, Kaanapali, etc.) reparent the byte and
pixel RCGs to the DSI PHY PLL at runtime from
dsi_link_clk_set_rate_6g_v2_9(), after the PHY has been enabled. However
dsi_calc_clk_rate_6g() runs earlier, in order to compute the bit clock
request for the PHY. At that point the byte RCG still has its reset
parent (XO), so clk_round_rate() returns a bogus rate, which then ends up
in the PHY bit clock request and the PLL gets programmed to a wrong
frequency, breaking the panel.

Move the rounding to dsi_link_clk_set_rate_6g(), which is called after
the RCGs have been reparented to the PLL. Storing the rounded rate at
this point still makes later link_clk_set_rate() calls no-ops in the
CCF. Derive the byte interface clock rate from the rounded byte clock
rate, otherwise it would keep requesting the idealized rate and
retrigger the PLL on every transfer.

Reported-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
Reported-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Fixes: 6cd33b6f41 ("drm/msm/dsi: round 6G byte clock rate to the PLL-achievable value")
Assisted-by: LLM
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Tested-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> # SM6115P J606F
Tested-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
Patchwork: https://patchwork.freedesktop.org/patch/750496/
Link: https://lore.kernel.org/r/20260903-fix-eliza-dsi-v1-1-3474a6c9f2e0@oss.qualcomm.com
2026-09-15 02:09:28 +03:00
Michal Koutný
057dac23d3 cgroup: Avoid iteration of dying tasks with zero refcount
The commit 260fbcb92b ("cgroup: Move dying_tasks cleanup from
cgroup_task_release() to cgroup_task_free()") extended the lifetime of
tasks on the dying_tasks list.
The iterators have provision to go through dying_tasks because of
dying threadgroup leaders or explicit CSS_TASK_ITER_WITH_DEAD, however,
it was expected that such tasks can obtain a new reference (that is
possible before cgroup_task_release()/put_task_struct_rcu_user()).
The tasks after cgroup_task_release() and before cgroup_task_free()
are subject to race when they may or may not have ->usage count > 0.

The race window is between css_task_iter_next() invocations
when css_set_lock is released and we may arrive at a new ->task_pos.
The iterator should not attempt to resurrect tasks whose ->usage count
dropped to zero. (When that happens, __put_task_struct_rcu_cb() is
already imminent and the returned task_struct would could be used
after free.)

As for the fix, we cannot simply check the signal->live count of a task
on the dying list because that won't distinguish regular zombies waiting
to be reaped from RCU remnant tasks that are going to be free'd.
Therefore add an extra check to rule out ->usage==0 tasks from any
iteration.

The repeat: loop in css_task_iter_advance() doesn't consider ->usage
count, so add a new loop to css_task_iter_next() to skip de-used tasks
on the dying_list.

Rough illustration of the possible race

  R (reader of cgroup.procs)         T (thread)                       L (group leader)
  ---------------------------------  -------------------------------- --------------------------------
                                                                      L exits, signal->live > 0
                                                                      cgroup_task_dead(L)
                                                                        css_set_skip_task_iters() // skips only cset->tasks
                                                                        list_add_tail(&L->cg_list, &cset->dying_tasks)
  css_task_iter_next()
    take css_set_lock
    css_task_iter_advance()
      leader && signal->live != 0
      => it->task_pos = &L->cg_list
    release css_set_lock
                                     T exits
                                     --signal->live == 0
				     cgroup_task_dead(T) // css_set_lock
                                     release_task(T)
                                       cgroup_task_release(T)
                                       release_task(L) // zap_leader
                                         cgroup_task_release(L)
                                         put_task_struct_rcu_user(L)
                                         ...RCU...
                                         put_task_struct(L)
                                           L->usage = 0
                                           /* L still on dying_tasks */
                                           ...RCU...
                                           __put_task_struct(L)
  css_task_iter_next() // another iteration
    take css_set_lock
    it->task_pos = &L->cg_list
    get_task_struct(L)
      => addition on 0
    drop css_set_lock
                                           cgroup_task_free(L)
                                             css_set_skip_task_iters() // dying skip comes too late
                                           free_task(L)
  cgroup_procs_show()
    task_pid_vnr(L)

Fixes: 260fbcb92b ("cgroup: Move dying_tasks cleanup from cgroup_task_release() to cgroup_task_free()")
Cc: stable@vger.kernel.org # v6.19+
Link: https://lists.debian.org/debian-kernel/2026/08/msg00220.html
Reported-by: Noah Elias Feldt <N.Feldt@mittwald.de>
Reported-by: Salvatore Bonaccorso <carnil@debian.org>
Tested-by: Salvatore Bonaccorso <carnil@debian.org>
Signed-off-by: Michal Koutný <mkoutny@suse.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
2026-09-14 12:43:50 -10:00
Filipe Manana
f59d86d25e btrfs: tree-checker: fix error message regarding free space extent items
The error message mentions a free space info item, but we are processing a
free space extent item, so fix the message.

Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2026-09-14 21:59:50 +02:00
Filipe Manana
a1167d9420 btrfs: tree-checker: print dev extent offset in error message
If a dev extent's offset is not sector size aligned, the error message is
printing the dev extent's objectid instead of the offset. This is a copy
paste error, as before this check we check the objectid field.

Fixes: 008e2512dc ("btrfs: tree-checker: add dev extent item checks")
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2026-09-14 21:59:50 +02:00
Hongling Zeng
0594e3423f btrfs: take commit root semaphore when iterating in mark_block_group_to_copy()
mark_block_group_to_copy() iterates over the commit root with
skip_locking=true. A concurrent transaction commit can swap and free
the commit root during iteration, causing use-after-free when
accessing extent buffers.

Fix it by using path->need_commit_sem to protect the commit root search.

Fixes: 78ce9fc269 ("btrfs: zoned: mark block groups to copy for device-replace")
CC: stable@vger.kernel.org
Assisted-by: Codex:gpt-5.5
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Hongling Zeng <zenghongling@kylinos.cn>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2026-09-14 21:59:50 +02:00
Johannes Thumshirn
3a35e787ac btrfs: zoned: handle RAID profiles in btrfs_can_activate_zone()
btrfs_can_activate_zone() only accounts for the single and DUP profiles.
For a RAID0, RAID1, RAID1C3, RAID1C4 or RAID10 block group the profile
switch matches no case, so 'ret' stays false and the function reports
that no zone can be activated, even when the devices have plenty of
active zones left.

As a side effect BTRFS_FS_NEED_ZONE_FINISH gets set and, since
btrfs_can_activate_zone() bails out early once that bit is set, data
allocations will fail permanently: writers loop on -EAGAIN and hang in
btrfs_new_extent_direct() waiting for the bit to clear.

Each of these profiles needs one active zone per device, just like
single, so handle them the same way.

Reviewed-by: Boris Burkov <boris@bur.io>
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2026-09-14 21:59:50 +02:00
Nicolas Escande
820b8cff81 wifi: ath11k: cleanup arsta in ath11k_mac_peer_cleanup_all()
When mac80211 removes a sta, it calls .sta_state() which in turn calls
ath11k_mac_station_remove(). In that function we clean up both peers &
arsta related resources.

But when the firmware crashes, ath11k calls ieee80211_restart_hw(), which
assumes that all driver related resources are cleaned up beforehand. This
cleanup is supposedly done by ath11k_mac_peer_cleanup_all() but does not
in fact free arsta->rx_stats / tx_stats.

Extract the arsta cleanup from ath11k_mac_station_remove() into a
new ath11k_mac_station_cleanup() and call it from both there and
ath11k_mac_peer_cleanup_all().

This should handle kmemleaks reports like:
	unreferenced object 0xffffff801ae66400 (size 1024):
	  comm "hostapd", pid 1306, jiffies 4295011565
	  hex dump (first 32 bytes):
	    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
	    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
	  backtrace (crc d61c08ec):
	    kmemleak_alloc+0x3c/0x50
	    __kmalloc_cache_noprof+0x2b0/0x3e0
	    ath11k_mac_op_sta_state+0x1dc/0xb10
	    drv_sta_state+0xac/0x6f8
	    sta_info_insert_rcu+0x314/0x5e0
	    sta_info_insert+0x14/0x38
	    ieee80211_add_station+0x10c/0x1a0
	    nl80211_new_station+0x3e8/0x680
	    genl_family_rcv_msg_doit+0xc0/0x120
	    genl_rcv_msg+0x1b4/0x258
	    netlink_rcv_skb+0x4c/0x108
	    genl_rcv+0x38/0x60
	    netlink_unicast+0x190/0x278
	    netlink_sendmsg+0x15c/0x370
	    ____sys_sendmsg+0x120/0x290
	    ___sys_sendmsg+0x70/0xa0

Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.9.0.1-01977-QCAHKSWPL_SILICONZ-1

Fixes: d5c65159f2 ("ath11k: driver for Qualcomm IEEE 802.11ax devices")
Signed-off-by: Nicolas Escande <nico.escande@gmail.com>
Reviewed-by: Rameshkumar Sundaram <rameshkumar.sundaram@oss.qualcomm.com>
Reviewed-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Link: https://patch.msgid.link/20260731145830.769811-1-nico.escande@gmail.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
2026-09-14 11:43:31 -07:00
Fan Wu
d9be5e7553 wifi: wcn36xx: Fix potential use-after-free in TX ack timer teardown
wcn36xx_dxe_deinit() tears down the TX ack timer with timer_delete(),
which only dequeues the timer and does not wait for a callback that is
already executing; the preceding free_irq() calls synchronize the
interrupt handlers only. The callback, wcn36xx_dxe_tx_timer(), can
therefore be running past the teardown and use the wcn freed along
with the ieee80211_hw in wcn36xx_remove(): it takes wcn->dxe_lock,
reads wcn->tx_ack_skb and passes wcn->hw to
ieee80211_tx_status_irqsafe().

Fix this by using timer_shutdown_sync(), which waits for a running
callback and also prevents the timer from being rearmed again. The
timer is set up again by wcn36xx_dxe_init() on the next start, so the
start/stop cycle is unaffected.

This issue was found by an in-house static analysis tool.

Fixes: fdf21cc371 ("wcn36xx: Add TX ack support")
Cc: stable@vger.kernel.org
Assisted-by: LLM
Co-developed-by: Song Li <songl@zju.edu.cn>
Signed-off-by: Song Li <songl@zju.edu.cn>
Signed-off-by: Fan Wu <fanwu01@zju.edu.cn>
Reviewed-by: Loic Poulain <loic.poulain@oss.qualcomm.com>
Link: https://patch.msgid.link/20260910020907.3353-1-fanwu01@zju.edu.cn
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
2026-09-14 11:43:30 -07:00
Krzysztof Kozlowski
ce9d5197d6 wifi: ath12k: ahb: Revert undocumented ABI and dead code
Commit 96f46607bb ("wifi: ath12k: add AHB platform descriptor
support") added undocumented OF ABI, by relying on a very specific node
name.  This is not allowed and was never acked by Devicetree
maintainers.

Additionally that part of code is not even used, because all devices
have exactly the same user pd, so this was added "for future".  Adding
dead code just "for future" is heavily discouraged in kernel coding.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Link: https://patch.msgid.link/20260825081313.71351-2-krzysztof.kozlowski@oss.qualcomm.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
2026-09-14 11:43:30 -07:00
Linus Torvalds
5878583675 nfsd-7.3 fixes:
Issues reported with v7.3-rc:
 - Fix handling of NFSEXP_PNFS in the netlink codepath
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEKLLlsBKG3yQ88j7+M2qzM29mf5cFAmqn+4sACgkQM2qzM29m
 f5etmBAAwfbEZZHcpDaE7uOyF45k9bNUjeP9D8Y9eQC2kCyqQzY3mafO/YfVOBlN
 h/VNreCgN8fynPcuzca1ZfvzHTM/hEs2SN/uUPTcdLutwr+nELx0a11nrTZNiMhb
 b82AI+VV1j+7Rws5ugSGjqTdrsF73ypkMexzJohCMLlDQmrhg7IT3wC8ttZyX21b
 4f48jc52NMBv2PPSktFSB+bL1RvIAN+I99mTwpLga+BLE0jwEqkgjky5yeP9dzsp
 NRl3ZKJdeubvN12CS/TEsbLfbIdfb1Kb+Jwo67avu8d8+nlXUphD2rE+4m4EZydi
 3UPYmx/knR9UGN0gK1sNwd4sXaXUyjJjEKL9VdR3gIOxhPCBEm94nlyagOYhtolC
 AMH9W1sMmNtcx4tPioe7xdIcrd1z9NMP9q9Bk5eDtiB4uK7VWBel1goQ3XUwbYPc
 gxCmc0jCEAEgM532AGBRd4KIYfkTXqkhf57Busmg3suVp2iVlAQcTIAojxFM1F0A
 83rGZUhiOql8rTBReACqfJCbW24soTPN0QBflaAOkxyO8oZ7fTK0bTobTy7ToV1T
 1eau38k5pz1ESHS+ZVaks9GsonIgxCv/3aVdlSEF8JIpCeDf4Fuq1f72SXwASISS
 AMO1BekhbTvTJpvACAaQvBWEm11UjOB3mZZ84aBnFwUz94AHjec=
 =ruNX
 -----END PGP SIGNATURE-----

Merge tag 'nfsd-7.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux

Pull nfsd fix from Chuck Lever:

 - Fix handling of NFSEXP_PNFS in the netlink codepath

* tag 'nfsd-7.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux:
  nfsd: fix handling of NFSEXP_PNFS in the netlink codepath
2026-09-14 10:41:30 -07:00
Linus Torvalds
59826bc5a4 This is a single fix for a 9p/netfs regression that got in 7.1
(and was backported to 7.0)
 
 We need to rework how cached attributes, and in particular i_size, are
 handled in 9p more thoroughly but that will take more time and this
 appears to be enough for the most obvious problems
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE/IPbcYBuWt0zoYhOq06b7GqY5nAFAmqnvp4ACgkQq06b7GqY
 5nCy9A//exHLeO1m7x071zuNl8nEFKUyNALRqb0sXavk/KIHn8gAl1Ll8gB/ic20
 SOvXR+NhlLEzMFG5WJd0sCDNALhEPsNzxf2JLqvCtXTGQkC4Dh+rJzy4C0FDKW6E
 I0kC60XuPiX+ZzqseBLm4T0LAVTGp3RZCb9GF1xpV0uzkMvF4QuyRSNRMukL3A65
 7Zk2e9FVHnt6BhEpG7HIjtZLTr1tTtXvUQFMHhMSSQCAR5DMS5pNedmH4nFjdyhf
 cLFKnppYGY9QWW1jvv3BhfO00UilUJLIx6hLXwyin/79BH30OChcWj8brm6cewS0
 V90uTxN6/X5plzc7VBnXB9Pt4Tf6stahgRqdUsWs3rYwtYaONE2a3yww4aMW4aPR
 8nIkpAD5GydTCSS1PS/82Ul2RuQRiqn9RV7yaTFw4r7G+CWMu0RKPhsitPKVL+jK
 3YdoHsjXR/XpVb1V7UQbi7xEAsBe8lRad1Z91DDrmSTkpHY1BeR99XCj/x9RKptx
 qTyHGcnmrAWUcueoQ2Hlj3SR9prEhbgNBG3VdPR2BlOOkTQTcRbW3u9OesGNyg6v
 C8YXfPj6WMgp4m4pW2RVJByyeQybppxaCzNIbH3Ntzqg9tQeuOmDDPFZO58NeYPB
 78sU2ZNUl11TkAvwZxZXoLTDHP1w/zY5kfF18OvqH72jxPEtH/o=
 =CCZT
 -----END PGP SIGNATURE-----

Merge tag '9p-for-7.3-rc4' of https://github.com/martinetd/linux

Pull 9pfs fix from Dominique Martinet:
 "This is a single fix for a 9p/netfs regression that got in 7.1 (and
  was backported to 7.0)

  We need to rework how cached attributes, and in particular i_size, are
  handled in 9p more thoroughly but that will take more time and this
  appears to be enough for the most obvious problems"

* tag '9p-for-7.3-rc4' of https://github.com/martinetd/linux:
  9p: Fix v9fs_issue_write() to update i_size and remote_i_size
2026-09-14 10:20:28 -07:00
Linus Torvalds
01414b70cb RDMA v7.3 first rc pull
Lots of bug fixes from the last weeks:
 
 - Various error unwind bugs
 
 - Several more races and bugs in siw and rxe, including remote triggerable
 
 - HFI1 corruption with its credit scheme
 
 - Remove a bogus user triggerable dev_warn
 
 - Lock __ethtool_get_link_ksettings() properly
 
 - Fix a lockdep loop with diassociation
 
 - Several storage related bugs, some triggerable remotely
 
 - Do no leak physical addresses to userspace in bnxt_re
 
 - Fix wrong irq context for the xarrays in erdma
 
 - User triggerable race in ucma with multicast
 
 - Race in ipoib with multicast flushing and destruction
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRRRCHOFoQz/8F5bUaFwuHvBreFYQUCaqfmFwAKCRCFwuHvBreF
 YfkUAP9+/5LQUpCcX4mVtuXsFz+ZOno8g4gC/xbCsFpt/KdjBQEAxmRWOXTdmrce
 cSFNY7eibNChLB4rVaj1VirVMtGtWQ4=
 =5QAG
 -----END PGP SIGNATURE-----

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma

Pull rdma fixes from Jason Gunthorpe:
 "Lots of bug fixes from the last weeks:

   - Various error unwind bugs

   - Several more races and bugs in siw and rxe, including remote
     triggerable

   - HFI1 corruption with its credit scheme

   - Remove a bogus user triggerable dev_warn

   - Lock __ethtool_get_link_ksettings() properly

   - Fix a lockdep loop with diassociation

   - Several storage related bugs, some triggerable remotely

   - Do no leak physical addresses to userspace in bnxt_re

   - Fix wrong irq context for the xarrays in erdma

   - User triggerable race in ucma with multicast

   - Race in ipoib with multicast flushing and destruction"

* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (28 commits)
  RDMA/siw: Bound fragmented header copies by the remaining length
  RDMA/efa: Keep EQ resources alive while IRQ is registered
  RDMA/efa: Keep admin queues alive while IRQ is registered
  RDMA/core: fix refcount bug in iwpm_get_nlmsg_request()
  IB/IPoIB: Avoid restoring OPER_UP after multicast flush
  RDMA/ucma: Serialize join and leave on copy_to_user failure
  RDMA/rtrs-clt: Fix CQ pool leak when connect is interrupted
  RDMA/irdma: Enforce local fence for IB_WR_REG_MR
  RDMA/erdma: Use IRQ-safe XArray helpers for QP and CQ tables
  RDMA/mad: Fix receive buffer leak when PKey enforcement fails
  RDMA/uverbs: Fix potential leak of resources->collection in flow_resources_alloc()
  RDMA/bnxt_re: Avoid exposing umdbr to userspace
  RDMA/rtrs: guard against null kobj name
  RDMA/bnxt_re: check create_singlethread_workqueue() in DCB setup
  IB/isert: wait for deferred control PDU completions before releasing the connection
  IB/iser: reject a remote invalidation of an unregistered direction
  RDMA/srp: Fix srp_remove_target()
  IB/mlx4: Fix use-after-free on pkey sysfs registration failure
  RDMA/uverbs: Fix mmap_lock/disassociation_lock circular dependency
  RDMA/core: Reject unregistering netdevs in ib_get_eth_speed
  ...
2026-09-14 09:58:12 -07:00
Linus Torvalds
ebb58ec7f8 memblock: fix for regions display in debugfs and MAINTAINERS update
* Make sure that multiple flags on a memblock region are all displayed in
 debugfs
 
 * Update memblock tree tags in MAINTAINERS
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEeOVYVaWZL5900a/pOQOGJssO/ZEFAmqngKwACgkQOQOGJssO
 /ZEC6wf/UmxuXyH6jMZY0fLlHe0i0sH6v9h2qna7MxNuGaYVaBBgsMQitfD89JJD
 Z7JqGS3SBFQ5SOfBL49zDNQP/5mN5cMiubyhoQI2TvmqLkQn5OggXHXs+xPkbIEd
 aJqAmhlGtVNcG2iwEgbfNyqCApefsNj4wKKIhF67mYWCBdnBNb8cDeLDQm5EWFkc
 s3TACvuT1osIjpObj0mwbN7HUJhpODYbQt3fwRTqX2hXJA0pakxhY7iCMfbUpnND
 sfdjFtfmFKm3057l4yBFQtyL/vMd0rUlZ35iTFnDJUixL4tNNtIMKOVukUw6HXZv
 uWjW6torX1z25cAFkSTNhxQA1QZDAA==
 =I6ix
 -----END PGP SIGNATURE-----

Merge tag 'fixes-2026-09-14' of git://git.kernel.org/pub/scm/linux/kernel/git/mm/memblock

Pull memblock fixes from Mike Rapoport:
 "Fix for regions display in debugfs and MAINTAINERS update:

   - Make sure that multiple flags on a memblock region are all
     displayed in debugfs

   - Update memblock tree tags in MAINTAINERS"

* tag 'fixes-2026-09-14' of git://git.kernel.org/pub/scm/linux/kernel/git/mm/memblock:
  MAINTAINERS: update memblock tree URLs
  mm: memblock: show all region flags in debugfs
2026-09-14 09:36:43 -07:00
Slavin Liu
c9e6e5f38b ALSA: hda: trace PCM open only after assigning a stream
Stream assignment can fail when hardware streams are exhausted.
Move the tracepoint after the NULL check because its payload accesses
the assigned stream tag.

Detected by static analysis and reviewed with AI-assisted source auditing.

Fixes: 184865085b ("ALSA: hda - rename hda_intel_trace.h to hda_controller_trace.h")
Assisted-by: LLM
Signed-off-by: Slavin Liu <bolin.liu@seu.edu.cn>
Link: https://patch.msgid.link/20260913125154.109944-1-bolin.liu@seu.edu.cn
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-09-14 18:09:41 +02:00
Benjamin Tissoires
b6f69097c8 selftests/hid: add unnumbered variant to the hid_bpf tests
A bug appeared in hid_bpf_dispatch.c where it wasn't properly handling
unnumbered reports. Add a device variant without report IDs so we can
also test them.

Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
2026-09-14 18:06:03 +02:00
Benjamin Tissoires
c4afa4862b HID: bpf: fix __hid_bpf_hw_check_params report length
Turns out that USB, I2C and other transport drivers (except uhid which
just passes the data) still need to have the report ID in the first
byte.

Because they expect the first byte to be the report ID or 0, when the
report ID is 0, they strip that first byte before forwarding to the
device. This means that the transport layer forwards a buffer of size
N-1 to the device, which gets rejected.

Fixes: 5599f80196 ("HID: bpf: export hid_hw_output_report as a BPF kfunc")
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
2026-09-14 18:06:03 +02:00
Benjamin Tissoires
9d1e523b92 selftests/hid: add define for commonly used buf size
If we want to add another report descriptor without report IDs with a
report size bigger than 10, we have multiple magic values to replace.

Put a #define once and for all, so we don't have dangling ones.

Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
2026-09-14 18:06:03 +02:00
Linus Torvalds
164f652b6e 14 hotfixes. 10 are cc:stable. 11 are for MM.
All are singletons - please see the changelogs for details.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQTTMBEPP41GrTpTJgfdBJ7gKXxAjgUCaqd9PAAKCRDdBJ7gKXxA
 jh2vAP4xdo8yWk9qZB55kCHfgsXC25o+ycn0odOoVw391KN7qAEA9PEXTx6taV+N
 slCGe5cW1Cxnsx23PipcYGdq6LKfMQE=
 =4b4Y
 -----END PGP SIGNATURE-----

Merge tag 'mm-hotfixes-stable-2026-09-13-21-50' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm

Pull misc fixes from Andrew Morton:
 "14 hotfixes.  10 are cc:stable.  11 are for MM.

  All are singletons - please see the changelogs for details"

* tag 'mm-hotfixes-stable-2026-09-13-21-50' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
  mm/folio: EXPORT_SYMBOL_FOR_KVM(lru_cache_drain_for_folio)
  mm/shrinker: fix bogus set_shrinker_bit() with cgroup.memory=nokmem
  mm/vma: correctly unaccount on mmap_prepare() failure
  mm/mlock: use the IRQ-safe accessor for NR_MLOCK in __munlock_folio()
  remove old lib/alloc_tag.c
  fs/dax: check zero or empty entry before converting xarray entry
  fs: fix missed removal of super_fs_objects_eligible()
  mm: filemap: retain mapped dropbehind folios
  mailmap: update entry for Christopher Obbard
  memcg: avoid charging the root memcg from obj_cgroup_charge_pages()
  mm, swap: fix SWAP_USAGE_OFFLIST_BIT collision with real usage count
  mailmap: map Coiby Xu's address
  mm/mremap: account mm->locked_vm correctly for MREMAP_DONTUNMAP
  mm/huge_memory: bypass THP tuneables for huge pfnmap mappings
2026-09-14 08:59:09 -07:00
Asai Neko
5ab3dc6477 ALSA: usb-audio: skip the broken mute control on AVerMedia GC553Pro
Skip the nonfunctional master mute control on the AVerMedia Live Gamer
ULTRA S GC553Pro (07ca:1553).

USB tracing shows that GET_CUR returns zero bytes instead of the required
one-byte value, both through usbfs and during ALSA initialization.
SET_CUR succeeds, but switching capture off does not mute HDMI audio.

Before the change, the driver exposed a misleading PCM Capture Switch
and logged: 3:2: failed to get current value for ch 0 (-22)

With the patch applied, the switch and warning are absent. A ten-second
sound recording through PipeWire confirmed that stereo 48 kHz, 16-bit
capture still works.

Tested on NixOS with the patched 7.3.0-rc3 kernel. The USB audio driver
object builds with Clang and W=1; sparse and strict checkpatch pass.

Signed-off-by: Asai Neko <sugar@sne.moe>
Link: https://patch.msgid.link/20260914-avermedia-gc553pro-alsa-v1-1-4c694e8b0cd5@sne.moe
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-09-14 17:52:46 +02:00
Jaeho Cho
1c4f620287 ALSA: hda/realtek: Enable mute LEDs on HP OmniBook 7 17-dc0xxx
The HP OmniBook 7 Laptop 17-dc0xxx (SSID 103c:8d9c) has mute and
mic-mute LEDs on its F6 and F9 keys, but neither lights up. Its quirk
entry only sets up the two CS35L41 amplifiers, so no LED control is
registered for either key.

Writing to the ALC245 by hand with hda-verb, the mute LED responds to
COEF 0x0b bits 2-3 and the mic-mute LED to GPIO 0x04, lit when the pin
is low. That appears to match what ALC245_FIXUP_HP_X360_MUTE_LEDS
already does, so add a fixup that chains the two-amp I2C setup to it
and use it for this model.

Tested on 7.2.4 with the patched module: hda::mute and hda::micmute
are registered, and both LEDs follow the speaker and microphone mute
state, including from the F6 and F9 keys.

Signed-off-by: Jaeho Cho <jaeho2025@gmail.com>
Link: https://patch.msgid.link/20260914142445.3476212-1-jaeho2025@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-09-14 17:51:13 +02:00
Guangshuo Li
c702a5f18b hwmon: (w83793) release probe data through kref
w83793_probe() initializes data->kref to manage the lifetime of the
driver data. The normal remove path drops the driver-owned reference
with kref_put(), while watchdog users take and release additional
references through the same kref.

However, the probe error path still frees data directly with kfree().
This bypasses the kref-managed lifetime and discards the initial
reference without a matching kref_put(), leaving the reference
accounting unbalanced.

Drop the probe-owned reference with kref_put() instead and let
w83793_release_resources() perform the final free, matching the normal
remove path.

This issue was found by manual code inspection.

Fixes: 5852f9609d ("hwmon: (w83793) Add watchdog functionality")
Cc: stable@vger.kernel.org
Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
Link: https://patch.msgid.link/20260914073638.1662500-1-lgs201920130244@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-09-14 08:31:09 -07:00
Guangshuo Li
0ff9c7775e hwmon: (w83791d) remove fan/pwm 4-5 sysfs group on remove
When the fan/pwm 4-5 pins are not used as GPIO, w83791d_probe()
creates the w83791d_group_fanpwm45 sysfs group on the I2C client
device.

The probe error path removes this group when a later initialization
step fails, but the normal remove path only removes w83791d_group.
As a result, the optional fan/pwm 4-5 sysfs files can remain after the
driver is unbound.

The callbacks associated with these files access the driver data,
which is devm allocated and released after driver unbind. Leaving the
sysfs files behind can therefore result in accesses to stale driver
data.

Remove w83791d_group_fanpwm45 during normal teardown as well.

This issue was found by manual code inspection.

Fixes: 6e1ecd9b8f ("hwmon: (w83791d) fan 4/5 pins can also be used for gpio")
Cc: stable@vger.kernel.org
Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
Link: https://patch.msgid.link/20260914062809.1650538-1-lgs201920130244@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-09-14 08:30:01 -07:00
Cong Nguyen
bdf5f73195 hwmon: (gpio-fan) return IRQ_HANDLED from the shared alarm IRQ handler
fan_alarm_irq_handler() always schedules alarm_work but returns IRQ_NONE,
so the kernel treats every alarm interrupt as unhandled. On a shared
line that risks the whole line being disabled as spurious.

v1 just fixed that, but it was still IRQF_SHARED, and always returning
IRQ_HANDLED there defeats spurious-interrupt detection for the line --
if the interrupt ever fires without a real event, nothing catches it,
and a fault could spin the CPU in the handler.

Sashiko flagged this in v1, and Guenter confirmed: this interrupt must
not be shared. So v2 drops IRQF_SHARED too.

Fixes: d6fe1360f4 ("hwmon: add generic GPIO fan driver")
Reported-by: Sashiko AI review <sashiko-bot@kernel.org>
Link: https://lore.kernel.org/r/20260901160931.DD3811F00A3D@smtp.kernel.org
Assisted-by: Claude:claude-opus-4
Signed-off-by: Cong Nguyen <congnt264@gmail.com>
Link: https://patch.msgid.link/20260914104136.1797979-1-congnt264@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-09-14 08:24:55 -07:00
Karl Mehltretter
073a30d75f
drm/vc4: Use managed KMS polling to fix UAF on unbind
vc4_kms_load() calls drm_kms_helper_poll_init() but the driver provides
no matching drm_kms_helper_poll_fini(). The output poll work stays
scheduled after unbind and runs on the freed drm_device:

  # modprobe vc4; rmmod vc4; sleep 10
  BUG: KASAN: slab-use-after-free in delayed_work_timer_fn
  BUG: KASAN: slab-use-after-free in drm_client_dev_hotplug [drm]
  Workqueue: events output_poll_execute [drm_kms_helper]
  Allocated by task 171: __devm_drm_dev_alloc
  Freed by task 262 (rmmod): drm_dev_put / component_del

Use drmm_kms_helper_poll_init() so polling is finalized with the device,
as other drivers do.

Fixes: c8b75bca92 ("drm/vc4: Add KMS support for Raspberry Pi.")
Assisted-by: Claude:claude-fable-5
Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
Link: https://patch.msgid.link/20260822143110.68594-1-kmehltretter@gmail.com
Reviewed-by: Maíra Canal <mcanal@igalia.com>
Signed-off-by: Maíra Canal <mcanal@igalia.com>
2026-09-14 12:11:42 -03:00
Arnd Bergmann
869e97e66d Arm firmware fixes for v7.3
SCPI fixes address resource leaks and invalid firmware responses, while
 FF-A gains shutdown cleanup needed for normal kexec.
 
 - Release the device node reference acquired during SCPI domain lookup.
 - Validate SCPI DVFS OPP counts and indices returned by firmware to
   prevent out-of-bounds accesses and invalid clock rates.
 - Register the SCPI cpufreq device only once across DVFS providers,
   preserving the registered device pointer for cleanup and allowing
   retries after registration failure.
 - Run FF-A teardown during orderly shutdown so notifications, partition
   devices and RX/TX mappings are released before a replacement kernel
   boots through normal kexec.
 
 Also includes replacing a literal platform device ID with
 PLATFORM_DEVID_NONE and correcting an SCMI comment typo.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEunHlEgbzHrJD3ZPhAEG6vDF+4pgFAmqga1IACgkQAEG6vDF+
 4piNYg//fMyEAKgjG0VkVH5/s+saxVFoh9GKhyqunZr39uc9R/ES5hDIY35tTiui
 d4GIoKJlRbas6d/6oK8J669aAMpEP/YIRHQizH59cpkIRIzaFo4rJ+2Cl3CYeHG5
 i6gFIlCdNk0Jv9evv6wQ2PSnkXo4Sgzx1wWBr3KbMUWXafa16bA7gTY7z2xYII1s
 Ocv/VvDnQNlEGVIiMUZI3JAS3Z4CAcxL8iLyDpmwh1ZXNs/OYkDnuY1fWtTbqBir
 anDQnNCM7U4uhvtBFmdXH0A/ySUD39igMmebIUS1z1wSN8Cu67VxmR3yY8sQZdbF
 SEPnQKkY/nBRcMGAf8NBYEo5O1VoCmfxUOnArYfNQlDnWGobPRtNyombPYIu+JcZ
 AsQdKOLbv28R3q+G3yMTOul5bhKSni7txdh7jgTe0kW+qvuzkC42Z5sNP+msCOUv
 oeFAtPVT39qDTMtsF0oKRGiQ9CiXOw7fGdaJk/KZbSMZsQcHWWBgaFngLHX6apW8
 Em8fi+Vazq4lz8gmtnaQPNvskex4OnkmtSYMy93PQBYtUbSO0i7Nzx913VOCHocF
 7GmqXoQG6Jgc4sZJR4ujTFB+xyv1i7xTVgcEp8CeTtzPUgy5l6A2MAec7Wl52Zz9
 Evf6wA2+L6HVoy7L6msDBCzpsTTmaQ+zewsdOMcw33MEC7JrYXA=
 =XE7J
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmqoDIQACgkQmmx57+YA
 GNmLpg//T50aSO0dK31LotTisraS9AGdUWuFLOYmBCeic1eN3SCVq31Q0MFK5+US
 iI1iGjAW/+QJvpr+gSZsmIwaRdxyZwUBda8fanSj/5EEkWE4egQOHnZlkGKTuamO
 Dq5pncqpxiU5m5AAVwYBZf/CrXU8lY+4yjeJESItAFsd2TWUa1tua7GyDRTA0E4n
 8h97fYujgwr/ULMAyaZO11OxqE2Gl7yRGI19iW+V+B8/0Sc+LOstFCORQBWTnsNH
 rQUF/qFH4Czx/mtqvlWWN2roX4/2HyLpAdz1m6idh20ryFJkhvVBlvUFsdmIEQOK
 cPLP1+Auo4MwnSQ+tmRGMXZ7W+f3aXBUUkuZVnqDtGeLuvv+CfYiJBxgteWRlqNR
 FjkRyoi7dTEk06jYJqYy3OEBUKRm/9jgJxnRKgTOeeNLNzRqcb0DU8TqjpsDE6Ie
 K2QlYssVIZk3jgMGFoUvrRxJK4HbH7dWcnJeZHdtljf61Qnf9GcR9EjjGXeyaPz/
 RdduIYHOi/XzTXuaLQcRfJZO6BxMiV5s4tCU/8djy9ZyVa6Sb5kE5q1bzSgW4fyj
 FTttAXx9yyjWHhYdEs3g9Tfg1VewYzoDh0W7gpCe5pYb/CyA7BHH+f64lV7CW+ZF
 lFBI4S55qzAnspl7l/R2WGNT6bPJsesd5Lwmah7Adj/UfwRAl8s=
 =I4bY
 -----END PGP SIGNATURE-----

Merge tag 'scmi-ffa-fixes-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into arm/fixes

Arm firmware fixes for v7.3

SCPI fixes address resource leaks and invalid firmware responses, while
FF-A gains shutdown cleanup needed for normal kexec.

- Release the device node reference acquired during SCPI domain lookup.
- Validate SCPI DVFS OPP counts and indices returned by firmware to
  prevent out-of-bounds accesses and invalid clock rates.
- Register the SCPI cpufreq device only once across DVFS providers,
  preserving the registered device pointer for cleanup and allowing
  retries after registration failure.
- Run FF-A teardown during orderly shutdown so notifications, partition
  devices and RX/TX mappings are released before a replacement kernel
  boots through normal kexec.

Also includes replacing a literal platform device ID with
PLATFORM_DEVID_NONE and correcting an SCMI comment typo.

* tag 'scmi-ffa-fixes-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
  firmware: arm_scmi: Fix typo "upto" in comment
  firmware: arm_ffa: Tear down driver during shutdown
  clk: scpi: use PLATFORM_DEVID_NONE for scpi-cpufreq
  clk: scpi: register scpi-cpufreq once and clear on failure
  clk: scpi: bound-check DVFS index in scpi_dvfs_recalc_rate
  firmware: arm_scpi: reject DVFS OPP count above MAX_DVFS_OPPS
  firmware: arm_scpi: fix device_node leak in scpi_dev_domain_id

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-09-14 17:02:19 +02:00
Arnd Bergmann
2d5adffc11 Renesas fixes for v7.3
- Fix Ethernet stalls on RZ/V2H, RZ/V2N, RZ/G3E, RZ/T2H, and RZ/N2H.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCaprEkQAKCRCKwlD9ZEnx
 cMpLAP9H6eVF6pfnOLjgqE41gQUaMdn5SDmlIteD8Xyx8PQRngEA+CAMdw1oJeIy
 mtENt2HlmGqIYnNZhZ4Ip/VPQ5BIBwY=
 =usMX
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmqoDGkACgkQmmx57+YA
 GNmJqg//Vh6VARqCnKv9ZY0jvalvXg7ff3PLJ26bNbZEYY1u/u6II5XgJoeUP0im
 3kPZihu1ZxT0vCDPOFsH1l4XUyVDhD7G36kQl9uq2stD1/N7t8uXMlObymL4jUCE
 LNUBaHxyOZSzdGHtPmDAZpyUrz+VZTOJmz5HFDQVHvV+JSLcy4qsQsxTOjJCTe0h
 TDEko4XmOBPfbjIfo9y+gAR1caD5F1EsOtS3OjjZWTLHPmHGpqQ3fBoWch0kyW7H
 8RSEpxnVwxJCiBoazYdPpWuHiYk95lNlwdyhAPZAPLJmQm9CrpZsOFFEvIkuafVf
 K+zGvXEkrvJBDTCA3i3GbX+tuIdNjrTKneL1QqmK1bHlyrAUP1Kd5d1zmZh3AY0X
 mwiHSaNId0NZDkGgEWxdOHDZL8Ln+aaYMFqz+ebc7kuaL+IN18goKSxLwwgcSELN
 S6i1nr07r0HyLoFyz/KHoA4ormWJgLe/3Z7trxZ/Ic4An/5HAOFH/N3WyWOhpSYb
 jno71gz/XRjVCHBFLruc9bR3VrKhSDEL+WixIQsUNajOAkgQia8NwpwJGC4Nji1z
 GPmCaa8Rs3CL4FdjEvcY8zAnMdZlrXe7QCA+fWmjGT51jfdJLh+nES98wGs2HmWw
 uuIjvBPwv+BtT7k09j3H3rnEJ8i9IxBCHWlLih0KVGpUpGYtfno=
 =2JAV
 -----END PGP SIGNATURE-----

Merge tag 'renesas-fixes-for-v7.3-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into arm/fixes

Renesas fixes for v7.3

  - Fix Ethernet stalls on RZ/V2H, RZ/V2N, RZ/G3E, RZ/T2H, and RZ/N2H.

* tag 'renesas-fixes-for-v7.3-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel:
  arm64: dts: renesas: r9a09g087: Switch GBETH TX queue scheduling to WRR
  arm64: dts: renesas: r9a09g077: Switch GBETH TX queue scheduling to WRR
  arm64: dts: renesas: r9a09g047: Switch GBETH TX queue scheduling to WRR
  arm64: dts: renesas: r9a09g056: Switch GBETH TX queue scheduling to WRR
  arm64: dts: renesas: r9a09g057: Switch GBETH TX queue scheduling to WRR

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-09-14 17:01:58 +02:00
Arnd Bergmann
ebdad7d867 SoCFPGA DTS fix for v7.3
- Fix DTS file access permissions
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEoHhMeiyk5VmwVMwNGZQEC4GjKPQFAmqe40AACgkQGZQEC4Gj
 KPR2yBAAlKHiNj+Jm4+cKypqiaE0RNd1YEsaLVfzLUFxnjUiFLwsZ+hdgH8y1H+Z
 2oVaXykvNdWMCURmDnc+md5Dve1rWV2hA2w29ESUg/IW6J5rfjbBawl1L/nEXwwa
 OcsQFWCZg5FnQd8OW+ZT/BtNSV5MFIyYB/S0TKkCd1y3WsUSb2ZZxbN2IDeUvqjb
 FDv85FXhPS5uO11SkIvgAik0nTHW86FdCwmaICggYNeMorlYHOCi/ZT4WP+AkW4D
 z6tCFyYCypLB5vwRcy6pVJMycPg/7chO//PKiMA34Hn4cYRz5P7+qt63rOmKhhny
 D2n7QKB61n0uOnTFVaTUDXuVCDEX8/uGIYSkGPd2vq2a7IRI2xIVsIlEcxYm4tJW
 VvpKFmP/5rq3dBdIdjyxVJ4q5tNAz+uOAaWKnbQs5HylgOYECYr8Qc3hO3fO0Gza
 vOQe+/TKnUuMbVM8dTWYymzof5nIN6coxQJh8VcWihlmKB1M2p6kwx+VaTvYzluL
 Embxge1w4P0J5JTa4rAhRjMY77YjgxxLA1wiEU/1CU0HwSCPOXjEu2kgB26gAOaA
 X2x9iyGqY2xmdXzkFOtQTbQyvGOpKo1F7zTmKujJAPWcDl5f+I+jBqD2/QgZa0Po
 UGyGBR9kkt4/uAk4jCOTgAd9q6YW8tHJK4PrvN6tx3JURTbzQ3I=
 =oz9W
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmqoDEIACgkQmmx57+YA
 GNn3pw//YlboS3mV4S+uizgUVZF1/kUdrRuen19LgDXi/0CrnsWEkEKh/tKNztz7
 Z4LldyNQVjmnd7poN+PB2uS1Su4U4mAkaGqTp3gCQhNmNqWDGyFIda1d1I4yGvxY
 awrJBHp4bKtD9KEwUcp70ey5PQ8ngIIVjWqKxWfMzgl6HzgYs9kDD/26CA534hDK
 MZ6vU4I/S+7vYhi1Uw4R6lT/9dU2wu4wLSP+wy9XOYVtF97ZGLQzkMY8+H13b0Tv
 bShneO/fgchoirmDJ1RCZ2aT5cgazX+KbBb2XGbDFHDGPXMlq9BC4N0sQb3Y3HI3
 67qkBSmiS2TT5/Ia0SnWfUApROZ6Jn+/LubsU70YwRKqpo5VR64XC4SzVIkqSJVK
 nCa5izvfhJvEh7aeRiyVqaOYUwz5cr4DeZEirv4IC53/ZwEY0edlCtZ4yr18D+6h
 EarJNigEl5V3pz9ii7YHcNo6z6YhaE+raoZVTZWr92DeLYvm+H2aVBJL2zKgfr8Z
 AXHGATzC5Nsr28H4IGvPE1XhJ6QkSTRJdMcBAVmeP1Hcf5Zh3fxxCaToD8l2ZgbK
 Og9A9RapNfZ2eGK72u5waGT5VrLrLEF+UIL/ZxIxbDKT8v4CCZxt5M8z1gm0c3k4
 BtvvbW17bH4YE1O2XWrQsvnJDsQ4FiijlcfK81QCKxo9kVjwxQA=
 =kOVb
 -----END PGP SIGNATURE-----

Merge tag 'socfpga_dts_fix_for_v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into arm/fixes

SoCFPGA DTS fix for v7.3
- Fix DTS file access permissions

* tag 'socfpga_dts_fix_for_v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux:
  arm64: dts: socfpga: change access permission from 755 to 644

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-09-14 17:01:19 +02:00
Arnd Bergmann
8c8a0cac6f SoCFPGA fix for v7.3
- Fix PL310_ERRATA_753970 Kconfig option
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEoHhMeiyk5VmwVMwNGZQEC4GjKPQFAmqe4XYACgkQGZQEC4Gj
 KPTAQg//U7gbQs//XbjkgGZwN2RB42Sz8AqH1DeAH9LE/N4Mc1eLnQY+t3qv2S2W
 6hR4kRvRqRXI3Kk/vZA7t3dx8l2BM8lFJr6kgnWbGHdFqsO07I8rYBk1O7IyMj4+
 zxJJYp644x8eAXRowqATR//1CpGGEzFKbgNCiL0aHu18aHX2xaGbuNcxLZJO8wou
 BZeLzwlzpMr6rNdKeLPqlELfU7HwL3wgmSDXhlahLiNg9gIGtxGk4JOOlgGmJpN4
 0DQ3UMLYAXHuBZ9YKkSMliDK2HOmL1B6D2+zgkhBN4YzCjM+HW3t9xwErNoE8wPU
 3lx5Pjtm4DrDmkWh3FsIsKVoQ6SnQX1kL72PzU5gfG2IIqi3pleaGJGOqZQxmmUi
 5WMwVhmU1dxvs5ahy0whjQd7ExMmh0oK29jOLOMDV257KWQ0jSq49S7fkXPcbns7
 tLf1f/gLTrgMn+fGKhx5aJHxbOLj4fK8H+yIkh2donr4tYHl1lKmc8WHkWKJy660
 01bFh2zhu7Ngy0YUPuA2bEZ5fMVb3Yr6GoETm8ZdHcrNCGss3cYBcIItGWYdNniE
 YRdkO2uGe+k4UH5SdiuwFp/CUXKrwIO/aUVVY7W++WEshkVem21fQ2XFeq6ol9FX
 BQKxB6GAFEJi5P0w8paJytiMDuFP7MgHwJZVaGMsQDf1ToXc6AI=
 =SIMB
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmqoDC4ACgkQmmx57+YA
 GNnndg//SpH4rVpU1I67e0Z31qMgxkvUGV4EjMjsRiExo3cMIHtw189USGQgpIDh
 ThkSdh7ewq+IZkQlD775++5NN8tUQiEwLYr/cwWgk7BIdjRk99oVYtFTM9KSZT3o
 wWXbt7NPoe5tFMeGtqkEmzJtS37f5QLDO9jCTKyHtD0OzG5OnBCIWchrJYi+DbGE
 9/KwneKPUwR7ViFrkOnTXUipC28EMyg3ROFKVWzbiYD88mFAxQMypEliCKIYos1a
 JvvVHqsPacT7hVM4cbCGC+65qlpe1gVexOfcHqpQ4yTHi46wEXyb6uZCJx+Pg8Ny
 lI4fNxEi3OcmqsJf7VEmarm3MOViTzae+HdVD3A31pL1JibgkwlokFwv+xuXHWn6
 m8S5EIv82VK+sFR5NjA94LMGzl13FoZR523MtawLx9uFi+0FTUKIcNpx7ov/Dt2Q
 G0FtvY9APyIchGJyPZhz8nLWiCdEjWffR9xma8u89osLs91Po0HSJDG5Hrjj3RBD
 GRDZ7r72UJ87WEGNxCzo3LInSL9+IeUc8xcIVKM8oNWFyJJkKwXVNhXx2nJJ8F0n
 KcST4dlmheZFN1jDijgO2Ip+aarfZ98gZxzYkQKtLeo3euro4frxUhRhOt2uHHwp
 7ZFQUFy/VWyljYhhB49b3Z8jPowzil/bieuoFzTDOhsXEOpzToo=
 =ocHH
 -----END PGP SIGNATURE-----

Merge tag 'socfpga_fix_for_v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into arm/fixes

SoCFPGA fix for v7.3
- Fix PL310_ERRATA_753970 Kconfig option

* tag 'socfpga_fix_for_v7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux:
  ARM: socfpga: select the PL310 erratum 753970 workaround

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-09-14 17:00:58 +02:00
Rosen Penev
27b084bdd0 wifi: rt2x00: Use device-managed register buffers
The rt2x00 PCI and USB probe paths allocate EEPROM and RF storage with
plain kzalloc() and then free it from bus-specific teardown helpers.  The
USB path also manages the CSR cache the same way.  These buffers are
tied to the device lifetime, so the explicit free paths add probe and
disconnect cleanup without providing separate ownership.

Allocate the buffers with devm_kzalloc() before the mac80211 hardware is
allocated, then attach the resulting storage to struct rt2x00_dev after
the driver-private state exists.  This lets driver detach and probe
failure rely on device-managed cleanup and removes the duplicated
bus-specific buffer freeing.

Assisted-by: Codex:GPT-5.5
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>
Link: https://patch.msgid.link/20260904211628.83180-1-rosenp@gmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2026-09-14 16:52:28 +02:00