Commit graph

1,462,193 commits

Author SHA1 Message Date
Baochen Qiang
fdea4d44e4 wifi: ath12k: fix EAPOL TX failure caused by stale tcl_metadata bits
On WCN7850, after the following sequence:

  1. load ath12k and connect to a non-MLO AP
  2. disconnect and connect to an MLO AP
  3. disconnect and reconnect to the non-MLO AP

the third connection always fails with a 4-Way handshake timeout. The
supplicant transmits message 2 of 4 four times in response to AP
retries of message 1, but the AP never sees any of them.

ath12k_dp_vdev_tx_attach() composes dp_link_vif->tcl_metadata using |=,
but dp_link_vif is embedded in struct ath12k_dp_vif and its slots are
reused across vif/peer teardown and setup. Since tcl_metadata is never
cleared on detach, vdev_id bits from a previous attach remain set when
the same link slot is reused with a different vdev_id. In this specific
issue, the same link slot is used for vdev_id 0, then vdev_id 1, then
vdev_id 0 again, the OR yields tcl_metadata == 0x9, which encodes
vdev_id 1 in the HTT_TCL_META_DATA_VDEV_ID field even though
ti.vdev_id is 0. Firmware then routes the EAPOL frame to the wrong
vdev and the AP never receives message 2.

Use plain assignment instead of |= so the field is fully recomputed
from the current arvif on every attach.

Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.1.c7-00108-QCAHMTSWPL_V1.0_V2.0_SILICONZ_UPSTREAM-3

Fixes: af66c7640c ("wifi: ath12k: Refactor ath12k_vif structure")
Signed-off-by: Baochen Qiang <baochen.qiang@oss.qualcomm.com>
Reviewed-by: Rameshkumar Sundaram <rameshkumar.sundaram@oss.qualcomm.com>
Link: https://patch.msgid.link/20260609-ath12k-fix-eapol-tcl-metadata-v1-1-d47e6f90d4ee@oss.qualcomm.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
2026-06-09 06:50:29 -07:00
Jeff Johnson
21d83c6e9e wifi: ath: Update copyright in testmode_i.h
Update Qualcomm copyrights per current legal guidance.

Assisted-by: Claude:claude-sonnet-4-6
Link: https://patch.msgid.link/20260608-ath12k-copyright-v2-4-37504d70b03c@oss.qualcomm.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
2026-06-09 06:50:29 -07:00
Jeff Johnson
ae667b0f98 wifi: ath10k: Update Qualcomm copyrights
Update Qualcomm copyrights per current legal guidance.

Assisted-by: Claude:claude-sonnet-4-6
Link: https://patch.msgid.link/20260608-ath12k-copyright-v2-3-37504d70b03c@oss.qualcomm.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
2026-06-09 06:50:28 -07:00
Jeff Johnson
053a93808d wifi: ath11k: Update Qualcomm copyrights
Update Qualcomm copyrights per current legal guidance.

Assisted-by: Claude:claude-sonnet-4-6
Link: https://patch.msgid.link/20260608-ath12k-copyright-v2-2-37504d70b03c@oss.qualcomm.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
2026-06-09 06:50:28 -07:00
Jeff Johnson
1c316d02c3 wifi: ath12k: Update Qualcomm copyrights
Update Qualcomm copyrights per current legal guidance.

Assisted-by: Claude:claude-sonnet-4-6
Link: https://patch.msgid.link/20260608-ath12k-copyright-v2-1-37504d70b03c@oss.qualcomm.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
2026-06-09 06:50:28 -07:00
Biju Das
898ab0f30e pwm: rzg2l-gpt: Add missing newlines to dev_err_probe() messages
dev_err_probe() internally calls dev_err() which uses pr_fmt() and
printk(). Kernel log messages should end with a newline character
to ensure proper log formatting. Add missing '\n' at the end of
the error strings in rzg2l_gpt_probe().

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Link: https://patch.msgid.link/20260604095647.108654-5-biju.das.jz@bp.renesas.com
Fixes: 061f087f5d ("pwm: Add support for RZ/G2L GPT")
Signed-off-by: Uwe Kleine-König <ukleinek@kernel.org>
2026-06-09 15:46:00 +02:00
Li RongQing
282305d7e9 PCI: mediatek: Fix operator precedence in PCIE_FTS_NUM_L0 macro
The original PCIE_FTS_NUM_L0(x) macro was buggy due to improper operator
precedence, where ((x) & 0xff << 8) was evaluated as ((x) & 0xff00).

Instead of just fixing the parentheses, use the standard FIELD_PREP()
macro. This makes the code more robust by automatically handling masks
and shifts, while also adding compile-time type and range checking to
ensure the value fits within PCIE_FTS_NUM_MASK.

Fixes: 637cfacae9 ("PCI: mediatek: Add MediaTek PCIe host controller support")
Signed-off-by: Li RongQing <lirongqing@baidu.com>
[mani: added the bitfield header include spotted by Sashiko]
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Reviewed-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Link: https://patch.msgid.link/20260515005552.2343-1-lirongqing@baidu.com
2026-06-09 19:14:35 +05:30
Biju Das
2b40d72de9 pwm: rzg2l-gpt: Fix period_ticks type from u32 to u64
period_ticks is used to store PWM period values that can exceed the 32-bit
range, so change its type from u32 to u64 to prevent overflow.

Cc: stable@kernel.org
Fixes: 061f087f5d ("pwm: Add support for RZ/G2L GPT")
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Link: https://patch.msgid.link/20260604095647.108654-2-biju.das.jz@bp.renesas.com
Signed-off-by: Uwe Kleine-König <ukleinek@kernel.org>
2026-06-09 15:39:11 +02:00
Michal Piekos
e53b4d7b3e arm64: dts: allwinner: a523: add gpadc node
Describe GPADC block on Allwinner A523.

Tested on Radxa Cubie A5E:
- 2 connected channels are showing voltages in agreement with
  schematics.
        BOOT-SEL-ADC ~500mV
        BOM-ADC ~1800mV
- 3rd channel exposed on 40pin header is showing correct voltages when
  connected to known voltage source.

Signed-off-by: Michal Piekos <michal.piekos@mmpsystems.pl>
Link: https://patch.msgid.link/20260516-sunxi-a523-gpadc-v3-3-a3a04cff2620@mmpsystems.pl
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
2026-06-09 21:31:38 +08:00
Marc Zyngier
a186a9742d arm64: dts: allwinner: Add EL2 virtual timer interrupt
The ARMv8.2 based CPUs used in the A523 SoC (and derivatives)
are missing the EL2 virtual timer interrupt. Add it.

Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Tested-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://patch.msgid.link/20260523140242.586031-6-maz@kernel.org
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
2026-06-09 21:31:38 +08:00
Paul Kocialkowski
9e8019bd2f ARM: dts: sun8i: a83t: Add MIPI CSI-2 controller node
MIPI CSI-2 is supported on the A83T with a dedicated controller that
covers both the protocol and D-PHY. It is connected to the only CSI
receiver with a fwnode graph link. Note that the CSI receiver supports
both this MIPI CSI-2 source and a parallel source.

An empty port with a label for the MIPI CSI-2 sensor input is also
defined for convenience.

Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
Link: https://patch.msgid.link/20260518153339.619947-8-paulk@sys-base.io
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
2026-06-09 21:31:38 +08:00
Paul Kocialkowski
64659ee650 dt-bindings: media: sun6i-a31-isp: Add optional interconnect properties
An interconnect can be attached to the sun6i-a31-isp device, which is
useful to attach the dma memory offset. Add related properties.

Signed-off-by: Paul Kocialkowski <paulk@sys-base.io>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20260518153339.619947-3-paulk@sys-base.io
[wens@kernel.org: Corrected sun6i-a31-csi to sun6i-a31-isp in commit log]
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
2026-06-09 21:31:38 +08:00
Paul Kocialkowski
7c2a29d72f dt-bindings: media: sun6i-a31-csi: Add optional interconnect properties
An interconnect can be attached to the sun6i-a31-csi device, which is
useful to attach the dma memory offset. Add related properties.

Signed-off-by: Paul Kocialkowski <paulk@sys-base.io>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20260518153339.619947-2-paulk@sys-base.io
Signed-off-by: Chen-Yu Tsai <wens@kernel.org>
2026-06-09 21:31:38 +08:00
Arnd Bergmann
aa75b5370d soc/tegra: Changes for v7.2-rc1
These changes update some maintainer contact information, add a modern
 way of reading the chip information and cleanup/enhance some existing
 code.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmobyCUACgkQ3SOs138+
 s6GPYg//dX92g9SuxAemSCQNpvJlVJ+bUY39aL4AD+94bvT9h9aXmTthJSmWiWq+
 gh75d2meLanswoD8ziRnL4TKixI21TxzCCxHEBJ0rknIVDnXx5lU/6ihPgHvcUfm
 43CZzrLad4O9EnifGxPdA1HLD/uyCl/iN2DB/3hjL03zQO/2694hFjJEV8CYDFeO
 Lwcbft9AvdjKDdRwIEXniBvIQSBvchYdQ1FUAoPAabpVKIPYvKjSdynXMfWrDuoI
 Lf0anSBP0RiRTPiaV2iSBaQ2i+IAMnyljPba4uJ6NcXaVO7o+Cjlv4eaTpxbrR3v
 NrK4zDXUSfT/1zdLThhzvQMI+3wW/Ni79P0hc676VFZW6SjdVuQWjkwlx1CFAvxr
 nIWNM/Y+ESakKl2sjmZVV9L4uoU6gMTe1jtZCYjcU6jB93cw6swCzJvyu8QDPfKE
 qEYAmSYEfDhTCy2rOn0PwotAfh33vcH+Q/G7KhMsT44vHBETMPI41DQtWpQizWqm
 Gerll7ugHSuk5D5GU1yRcZTSxbsgnPq2sYEjBFV5Px2daZ55/q5DTD7S2f7PD6Z7
 XFijgYr3XdS73k1EpJUl2zkkXcIaErZF3wSAMn4c5wVFQuWipbP6ZJuwtzRzGdXw
 5ywOp2coxfe36ks3/oP6GIybPiepsEPk1yYbYR4ssnOuO9EqAys=
 =d+5I
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmooFMgACgkQmmx57+YA
 GNlehhAAnDZM42f71/vVzCC0Ll/H365l9yCg5JtwgenvgpTBSgXmGNoYcMR9zadj
 qNa9lotrHjSf4Fh0+XKRTaiozddbRKOAykdaOXqvBQEqTR8tXYNAHWFnIb6lov6r
 1shqs09kb6hm7p4hTo1D//fQI93OAxiOKdQkPVEjJKYoSFYaWAg5Wb3nj3D4gIh1
 NLsyjcjvSTcOOEio/JPvHjNpi5/3s/urkmE7xpULagd+C0FnUL5q88pP4IcffMzi
 U4XnpMBfUVdVsrYZPgBXhN2g1ii33c8/kGaq8CKIyn+U8o4llHapmomXZm16ZXHj
 sc6idjXEbfzsbaXBHvtVIb+MdOIZ9AJ2Z3Y/PVkoC3h9Cki++44Ym1RGlb7lu4Hj
 MkdTx1j+hJImQcQval1XPnO89vt9SPcPZ9DHi6bqo2SEyXrXtum7IuAmVUpPFAl6
 39yFkzjnnc/3plau2AmGN7+8aD6qwsauWzI160CryAc51xJIFa7Oyc6plRPdRZ3r
 ICNGoL6vGlntPvhPW4oNJ+yQ4SL2CN4PkN6MRPAJ2g9l8WuL0pojtaB+WKjbc9X7
 DnbnJJUobz14yquxmBKah6waijUkv3RpguNgaDvv4yNjglJLHiG7mLCZLBxw1wo8
 dr709LRGSG20cQjRl2j+wzI1iUXuJ4AZJ2UfnUyhreHrfQf6t5c=
 =zXJz
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-7.2-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/drivers

soc/tegra: Changes for v7.2-rc1

These changes update some maintainer contact information, add a modern
way of reading the chip information and cleanup/enhance some existing
code.

* tag 'tegra-for-7.2-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  soc/tegra: Use ARM SMCCC to get chip ID, revision, and platform info
  soc/tegra: fuse: Register nvmem lookups at probe
  Documentation: ABI: Take over as contact for sysfs-driver-tegra-fuse
  MAINTAINERS: Move Peter De Schrijver to CREDITS
  bus: tegra-aconnect: Use dev_err_probe for probe error paths

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-06-09 15:27:33 +02:00
Johannes Berg
0ccb7c3bb1 mt76 patches for 7.2
- fixes
 - mt792x broken usb transport detection
 - mt7921 regd improvements
 - mt7927 support
 -----BEGIN PGP SIGNATURE-----
 Comment: GPGTools - http://gpgtools.org
 
 iF0EABECAB0WIQR10Rp9kadxD0kAQu/XfRQdAqdu9QUCaifuiwAKCRDXfRQdAqdu
 9Z+9AJ0R8q18QJa5sjra78OkI69Atc0VDwCeLxv3XyOyDzUWyq6ZEmPlpBRylc0=
 =+QHv
 -----END PGP SIGNATURE-----

Merge tag 'mt76-next-2026-06-09' of https://github.com/nbd168/wireless

Felix Fietkau says:
===================
mt76 patches for 7.2

- fixes
- mt792x broken usb transport detection
- mt7921 regd improvements
- mt7927 support
===================

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2026-06-09 15:25:18 +02:00
Ryan Chen
512cef2af6 arm64: configs: Update defconfig for AST2700 platform support
Enable options for ASPEED AST2700 SoC.

Signed-off-by: Ryan Chen <ryan_chen@aspeedtech.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20260609-upstream_ast2700-v9-4-f631752f0cb1@aspeedtech.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-06-09 15:24:15 +02:00
Paolo Abeni
0aa05daef7 Merge branch 'net-mctp-usb-minor-fixes-for-mctp-over-usb-transport-driver'
Jeremy Kerr says:

====================
net: mctp: usb: minor fixes for MCTP over USB transport driver

This series adds a couple of fixes in the ndo_open / ndo_stop path for
the MCTP over USB transport, where we are incorrectly sequencing two
error cases.

Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
====================

Link: https://patch.msgid.link/20260608-dev-mctp-usb-rx-requeue-v2-0-29a3aa507609@codeconstruct.com.au
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-06-09 15:23:15 +02:00
Jeremy Kerr
881a3113b7 net: mctp: usb: don't fail mctp_usb_rx_queue on a deferred submission
In the ndo_open path, a deferred queue open will report a failure, and
so the netdev will not be ndo_stop()ed, leaving us with the rx_retry
work potentially pending.

Don't report a deferred queue as an error, as we are still operational.
This means we use the ndo_stop() path for future cleanup, which handles
rx_retry_work cancellation.

Fixes: 0791c0327a ("net: mctp: Add MCTP USB transport driver")
Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
Link: https://patch.msgid.link/20260608-dev-mctp-usb-rx-requeue-v2-2-29a3aa507609@codeconstruct.com.au
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-06-09 15:23:13 +02:00
Jeremy Kerr
54665dce98 net: mctp: usb: fix race between urb completion and rx_retry cancellation
It's possible that sequencing between setting ->stopped and cancelling
the rx_retry work (in ndo_stop) could leave us with an urb queued:

    T1: ndo_stop                  T2: rx_retry_work
    ------------                  ----------------
                                  LD: ->stopped => false
    ST: ->stopped <= true
    usb_kill_urb()
                                  mctp_usb_rx_queue()
                                    usb_submit_urb()
    cancel_delayed_work_sync()

That urb completion can then re-schedule rx_retry_work.

Strenghen the sequencing between the stop (preventing another requeue)
and the cancel by updating both atomically under a new rx lock. After
setting ->rx_stopped, and cancelling pending work, we know that the
requeue cannot occur, so all that's left is killing any pending urb.

Fixes: 0791c0327a ("net: mctp: Add MCTP USB transport driver")
Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
Link: https://patch.msgid.link/20260608-dev-mctp-usb-rx-requeue-v2-1-29a3aa507609@codeconstruct.com.au
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-06-09 15:23:13 +02:00
Minxi Hou
9415471e01 selftests/net/openvswitch: guard command substitutions against empty output
When ip-link output is unavailable, when the upcall daemon log has not
been written yet, or when pahole does not know the OVS drop subsystem
ID, the affected command substitutions silently produce empty strings.
The caller then passes empty sha= or pid= arguments to ovs_add_flow,
or matches against wrong drop reason codes, all without a diagnostic.

Add [ -z ] guards immediately after each assignment. For test_arp_ping,
also align the MAC extraction to use awk '/link\/ether/' as in
test_pop_vlan. The drop_reason guard returns ksft_skip because an
absent subsystem ID is an environment issue, not a test failure.

Signed-off-by: Minxi Hou <houminxi@gmail.com>
Reviewed-by: Aaron Conole <aconole@redhat.com>
Link: https://patch.msgid.link/20260604163016.3929371-1-houminxi@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-06-09 15:17:51 +02:00
Namjae Jeon
5aec1efb11 ntfs: use direct pointer for inline data to avoid redundant allocation
Previously, NTFS used page allocation for IOMAP_INLINE to ensure that
the inline_data pointer was page-aligned, avoiding strict boundary checks
in the iomap core. Since the previous patch has removed the over-strict
PAGE_SIZE boundary check in iomap, NTFS can now safely point
iomap::inline_data directly to the MFT record.
This change eliminates redundant memory allocations and memcpy operations
in both read and write paths. It also simplifies the iomap_ops by removing
the need for a iomap_end callback that was previously used to free
the temporary page.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
2026-06-09 21:51:02 +09:00
DaeMyung Kang
fcf5bf0e85 ntfs: validate resident index root values on lookup
Resident $INDEX_ROOT values carry index header fields that callers
consume after lookup. Some callers already validate parts of the layout
before walking entries, but those checks are scattered and do not cover
all root header invariants, such as entries_offset alignment and lower
bound, index_length, and allocated_size consistency.

The resident root resize paths now keep these header fields consistent
while the value size changes: ntfs_ir_truncate() lowers
index.allocated_size before shrinking the resident value, and
ntfs_ir_reparent() grows the resident value before publishing a larger
root header. Lookup-time validation can therefore cover these invariants
without tripping over the driver's own resize paths.

Add $INDEX_ROOT to the minimum resident value size table and validate the
resident index header fields before returning the attribute from lookup.
Require 8-byte aligned index header fields, a sane entries_offset, an
index_length within allocated_size, allocated_size within the resident
value, and enough entry space for at least an index entry header.

The shared validator already rejects non-resident records for
resident-only attribute types, including $INDEX_ROOT.

Cc: stable@vger.kernel.org # v7.1
Signed-off-by: DaeMyung Kang <charsyam@gmail.com>
Reviewed-by: Hyunchul Lee <hyc.lee@gmail.com>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
2026-06-09 21:51:01 +09:00
DaeMyung Kang
e782ca90ce ntfs: update index root allocated size before shrink
ntfs_ir_truncate() currently shrinks the resident $INDEX_ROOT value first
and only updates index.allocated_size after re-looking up the attribute.
During that relookup, the resident value_length can already be smaller
while index.allocated_size still contains the old larger size.

That leaves a transiently inconsistent $INDEX_ROOT layout and prevents
lookup-time $INDEX_ROOT validation from being enabled: validation can
correctly reject allocated_size extending past the newly shrunk resident
value.

When shrinking, lower index.allocated_size before shrinking value_length.
If the truncate fails, restore the old allocated_size. Keep the existing
grow ordering because the old allocated_size remains within the enlarged
resident value until it is updated after the relookup. The shrink path is
safe because the new value_length still covers struct index_root, so the
index.allocated_size field remains present while it is updated first.

Cc: stable@vger.kernel.org # v7.1
Signed-off-by: DaeMyung Kang <charsyam@gmail.com>
Reviewed-by: Hyunchul Lee <hyc.lee@gmail.com>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
2026-06-09 21:50:59 +09:00
DaeMyung Kang
0bb508fb3b ntfs: grow index root value before reparent header update
ntfs_ir_reparent() moves the resident index root entries into an index
block and leaves a small root stub containing the child VCN. That root
stub can be larger than the existing resident value. For example, an
empty root with value_length 48 has an index area of 32 bytes, while the
large-index root stub needs index_length and allocated_size of 40 bytes.

The current code publishes the larger index.index_length and
index.allocated_size before resizing the resident value. If the resize
returns -ENOSPC, the recovery path can call ntfs_inode_add_attrlist(),
which looks attributes up again while the root header says
allocated_size 40 but the resident value still only provides 32 bytes of
index area. Lookup-time $INDEX_ROOT validation then correctly rejects
that transient layout as corrupt.

This reproduces as a generic/013 failure under qemu. In the failing run,
the transient root had value_len=48, index_size=32, index_length=40, and
allocated_size=40, and ntfsprogs-plus ntfsck reported "Corrupt index
root in MFT record 1177".

When the root stub grows, resize the resident value before publishing the
larger root header. If the resize fails, the old root remains valid for
recovery lookups. Keep the existing header-before-resize ordering for
shrink or same-size cases so the resident value never temporarily
exposes an allocated_size beyond its bounds.

Cc: stable@vger.kernel.org # v7.1
Signed-off-by: DaeMyung Kang <charsyam@gmail.com>
Reviewed-by: Hyunchul Lee <hyc.lee@gmail.com>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
2026-06-09 21:50:57 +09:00
DaeMyung Kang
097cdfd0a5 ntfs: reject non-resident records for resident-only attributes
The shared lookup-time attribute validator rejects non-resident
$FILE_NAME and $VOLUME_NAME records because their formats require
resident values and callers handle returned records as resident
attributes. Other resident-only attribute types still pass through the
generic non-resident mapping-pairs checks.

That leaves real resident/non-resident union confusion paths. Inode load
looks up $STANDARD_INFORMATION and then reads data.resident.value_offset
without checking a->non_resident. ntfs_inode_sync_standard_information()
does the same when updating the standard information value.
ntfs_write_volume_flags() also looks up $VOLUME_INFORMATION and reads
data.resident.value_offset directly. $INDEX_ROOT callers in dir.c and
index.c depend on the same lookup contract before consuming the resident
index root value.

Reject non-resident records for all resident-only attribute types in the
shared validator. Keep the existing $FILE_NAME and $VOLUME_NAME behavior,
but factor it through a helper and extend it to
$STANDARD_INFORMATION, $OBJECT_ID, $VOLUME_INFORMATION, $INDEX_ROOT, and
$EA_INFORMATION. For $OBJECT_ID and $EA_INFORMATION this is contract
hardening for resident-only formats; this patch only rejects the
non-resident form and does not add new resident value validation for
those types.

Cc: stable@vger.kernel.org # v7.1
Signed-off-by: DaeMyung Kang <charsyam@gmail.com>
Reviewed-by: Hyunchul Lee <hyc.lee@gmail.com>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
2026-06-09 21:50:55 +09:00
Krzysztof Kozlowski
08fec5b1d3 aspeed: First batch of ARM devicetree changes for v7.2
New platforms:
 
 - Rainiera6 (Meta)
 - SanMiguel (Meta)
 
 Updated platforms:
 
 - Anacapa: SGPIO line names and interrupt configuration
 - Clemente: Remove TMP421 nodes
 - Kommando: Enable networking via MAC2/MDIO2
 - SanMiguel: Line names and interrupt configuration
 
 AST2600 SoC updates:
 
 - Describe PWM/Tach
 - Describe I3C controllers
 - Reorganise I2C nodes
 
 Other notes:
 
 91b9aed738 ("ARM: dts: aspeed-g6: Add nodes for i3c controllers") currently
 causes a new warning:
 
   ... /ahb/apb/bus@1e7a0000/syscon@0: failed to match any schema with compatible: ['aspeed,ast2600-i3c-global', 'syscon']
 
 The patch necessary to address it has an R-b tag from Kryzsztof[2] but as best
 I can tell is yet to be applied to the MFD tree. I've left the change in for now
 as the warning will resolve once the binding patch is applied.
 
 Lastly, as part of improving support for the Kommando card Anirudh has also
 addressed[1] the persistent pain we've had with the phy-mode property for the
 AST2600 MACs. Thanks to Andrew Lunn for being on the case for a while now, and
 for those who tested Anirudh's patch.
 
 [1]: https://lore.kernel.org/all/20260525-asus-kommando-v3-0-e6a0ca1b4a3e@gmail.com/
 [2]: https://lore.kernel.org/all/20260425-poised-accomplished-hyena-d2c1a0@quoll/
 -----BEGIN PGP SIGNATURE-----
 
 iJIEABYKADoWIQSoUT1x3bOSX/nAa8ajM9GZTrjhpgUCah+R1RwcYW5kcmV3QGNv
 ZGVjb25zdHJ1Y3QuY29tLmF1AAoJEKMz0ZlOuOGmREgA/jRNiutECMQIXr4y3K33
 +c4oHhcUvdGb+xgGCsI6aQ/zAQCrmJet9FHLCcNOnklh1Ob+jpl4U+nMow1lzUn/
 2COBCA==
 =eDXl
 -----END PGP SIGNATURE-----

Merge tag 'aspeed-7.2-devicetree-0' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/bmc/linux into soc/dt

aspeed: First batch of ARM devicetree changes for v7.2

New platforms:

- Rainiera6 (Meta)
- SanMiguel (Meta)

Updated platforms:

- Anacapa: SGPIO line names and interrupt configuration
- Clemente: Remove TMP421 nodes
- Kommando: Enable networking via MAC2/MDIO2
- SanMiguel: Line names and interrupt configuration

AST2600 SoC updates:

- Describe PWM/Tach
- Describe I3C controllers
- Reorganise I2C nodes

Other notes:

91b9aed738 ("ARM: dts: aspeed-g6: Add nodes for i3c controllers") currently
causes a new warning:

  ... /ahb/apb/bus@1e7a0000/syscon@0: failed to match any schema with compatible: ['aspeed,ast2600-i3c-global', 'syscon']

The patch necessary to address it has an R-b tag from Kryzsztof[2] but as best
I can tell is yet to be applied to the MFD tree. I've left the change in for now
as the warning will resolve once the binding patch is applied.

Lastly, as part of improving support for the Kommando card Anirudh has also
addressed[1] the persistent pain we've had with the phy-mode property for the
AST2600 MACs. Thanks to Andrew Lunn for being on the case for a while now, and
for those who tested Anirudh's patch.

[1]: https://lore.kernel.org/all/20260525-asus-kommando-v3-0-e6a0ca1b4a3e@gmail.com/
[2]: https://lore.kernel.org/all/20260425-poised-accomplished-hyena-d2c1a0@quoll/

* tag 'aspeed-7.2-devicetree-0' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/bmc/linux:
  ARM: dts: aspeed: sanmiguel: Fix the CPU_CHIPTHROT linename
  ARM: dts: aspeed: sanmiguel: Add IOEXP interrupt pin settings
  ARM: dts: aspeed: clemente: Remove IOB NIC TMP421 nodes
  ARM: dts: aspeed: Enable networking for Asus Kommando IPMI Card
  ARM: dts: aspeed: rainiera6: Add Meta Rainiera6 BMC
  dt-bindings: arm: aspeed: Add Meta Rainiera6 board
  ARM: dts: aspeed: anacapa: Correct SGPIO names for monitoring
  ARM: dts: aspeed: Add Meta SanMiguel BMC
  dt-bindings: arm: aspeed: add Meta SanMiguel BMC
  ARM: dts: aspeed: g6: Add PWM/Tach controller node
  ARM: dts: aspeed: yosemite5: Add MP5998 power monitor
  ARM: dts: aspeed: anacapa: Add interrupt properties for PDB PCA9555
  ARM: dts: aspeed: msx4: enable BMC networking via MAC0
  ARM: dts: aspeed: anacapa: Add JTAG CPLD TRST pin to SGPIO map
  ARM: dts: aspeed-g6: Add nodes for i3c controllers
  ARM: dts: aspeed-g6: move i2c controllers directly into apb node

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2026-06-09 14:17:51 +02:00
Krzysztof Kozlowski
9cf333de20 RISC-V Devicetrees for v7.2
Sophgo:
 
 For CV18xx serials:
 - Add bindings for Milk-V "Duo S" board.
 
 For SG2042:
 - The CPU unit address incorrectly used decimal numbers,
   especially for those nodes which value >= 10. Now
   corrected to use hexadecimal.
 - The MSI controller actually only supports 16 interrupts;
   corrected to match the actual situation.
 - PCIe RCs are cache-coherent with the CPU. Marked it out
   for RC nodes.
 
 For SG2044:
 - The same as SG2042, use hex for CPU unit address.
 
 In additional, update Chen Wang's email address for Sopgho
 SoC maintainer.
 
 Signed-off-by: Chen Wang <unicorn_wang@outlook.com>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQTYPcWJ6By3aFu8IuKHG95Quc97dgUCah/FnAAKCRCHG95Quc97
 dhWzAQDU0rJDliEvffHvt4MBpMe5MuK5vgwxEun3YPCjCTzkpQEA6HT6IgHjlibB
 SLUn4X8cbJpupgI3czvkxogPNWeZYgE=
 =kAeE
 -----END PGP SIGNATURE-----

Merge tag 'riscv-sophgo-dt-for-v7.2' of https://github.com/sophgo/linux into soc/dt

RISC-V Devicetrees for v7.2

Sophgo:

For CV18xx serials:
- Add bindings for Milk-V "Duo S" board.

For SG2042:
- The CPU unit address incorrectly used decimal numbers,
  especially for those nodes which value >= 10. Now
  corrected to use hexadecimal.
- The MSI controller actually only supports 16 interrupts;
  corrected to match the actual situation.
- PCIe RCs are cache-coherent with the CPU. Marked it out
  for RC nodes.

For SG2044:
- The same as SG2042, use hex for CPU unit address.

In additional, update Chen Wang's email address for Sopgho
SoC maintainer.

Signed-off-by: Chen Wang <unicorn_wang@outlook.com>

* tag 'riscv-sophgo-dt-for-v7.2' of https://github.com/sophgo/linux:
  riscv: dts: sophgo: reduce SG2042 MSI count to 16
  riscv: dts: sophgo: sg2042: use hex for CPU unit address
  riscv: dts: sophgo: sg2044: use hex for CPU unit address
  riscv: dts: sophgo: Add dma-coherent to SG2042 PCIe controllers
  dt-bindings: soc: sophgo: add sg2000 plic and clint documentation
  dt-bindings: soc: sophgo: add Milk-V Duo S board compatibles
  MAINTAINERS: update Chen Wang's email address

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2026-06-09 14:15:31 +02:00
Andi Shyti
233644f6d4
Merge remote-tracking branch 'wsa/i2c/fix-registration' into i2c/i2c-host
Merge Johan Hovold's adapter registration fixes from Wolfram's
branch, addressing races, cleanup paths and resource management
issues.
2026-06-09 14:08:00 +02:00
Krzysztof Kozlowski
d1d7310e2b nuvoton: First batch of arm64 devicetree changes for v7.2
Just the one patch adding ethernet nodes for the MA35D1 development board.
 -----BEGIN PGP SIGNATURE-----
 
 iJIEABYKADoWIQSoUT1x3bOSX/nAa8ajM9GZTrjhpgUCah+JDxwcYW5kcmV3QGNv
 ZGVjb25zdHJ1Y3QuY29tLmF1AAoJEKMz0ZlOuOGmi5AA/1c36yXTxYoAmQWjYv5u
 l0sAc8TZfUoxQ33/4GvO0NUfAQCrgXgOrTTQ3RdYwb10rgF60nPwZALITRfllMZU
 ozixAw==
 =t4B5
 -----END PGP SIGNATURE-----

Merge tag 'nuvoton-7.2-devicetree-0' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/bmc/linux into soc/dt

nuvoton: First batch of arm64 devicetree changes for v7.2

Just the one patch adding ethernet nodes for the MA35D1 development board.

* tag 'nuvoton-7.2-devicetree-0' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/bmc/linux:
  arm64: dts: nuvoton: Add Ethernet nodes

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2026-06-09 14:07:26 +02:00
Krzysztof Kozlowski
9f2f61e336 aspeed: First batch of driver changes for v7.2
While bc13f14f5c ("soc: aspeed: cleanup dead default for
 ASPEED_SOCINFO") was committed just now it has been in -next for a while as
 b333a0f1c857411d83a02aa6f1d9ecc7666d6179. The commit is fresh as I moved it
 between branches.
 
 Other than that it's just the one other patch from Krzysztof tidying up the
 location of MODULE_DEVICE_TABLE().
 -----BEGIN PGP SIGNATURE-----
 
 iJIEABYKADoWIQSoUT1x3bOSX/nAa8ajM9GZTrjhpgUCah+GbhwcYW5kcmV3QGNv
 ZGVjb25zdHJ1Y3QuY29tLmF1AAoJEKMz0ZlOuOGmMwoBAISxLClOnFAZT7MmKB2b
 ixwjF31YoixIG45zDwC0t+8EAP9dMNq0apbHh19RHqDrfFsrYTGjs/FoAUG/J/sG
 TwXKBg==
 =QHRt
 -----END PGP SIGNATURE-----

Merge tag 'aspeed-7.2-drivers-0' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/bmc/linux into soc/drivers

aspeed: First batch of driver changes for v7.2

While bc13f14f5c ("soc: aspeed: cleanup dead default for
ASPEED_SOCINFO") was committed just now it has been in -next for a while as
b333a0f1c857411d83a02aa6f1d9ecc7666d6179. The commit is fresh as I moved it
between branches.

Other than that it's just the one other patch from Krzysztof tidying up the
location of MODULE_DEVICE_TABLE().

* tag 'aspeed-7.2-drivers-0' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/bmc/linux:
  soc: aspeed: cleanup dead default for ASPEED_SOCINFO
  soc: aspeed: Move MODULE_DEVICE_TABLE next to the table itself

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2026-06-09 14:05:28 +02:00
Krzysztof Kozlowski
a577cc3a46 Amlogic ARM64 DT for v7.2 v2 take 1:
- Khadas VIM4 (T7 SoC) features:
  - Memory layout fixup
  - GIC register range
  - Model name fixup
  - PWM, eMMC, SD card and SDIO support
  - PWM LED
  - I2C pinctrl node
 - Khadas VIM1s Features
  - Bluetooth
  - PWM LED
  - Power Key
  - Function Key via SARADC
  - RTC
  - Remote control keymap
 - Bluetooth node for Phicomm N1
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEPVPGJshWBf4d9CyLd9zb2sjISdEFAmoei2YACgkQd9zb2sjI
 SdGsKw//V2+z5oF3MvOeKq3zGg+/eozh8vTcz/OSzUQmDSM8k+0XN2Iohue/m6FG
 0QDaaUJj0gyiGU9jKI/c9FcI9+gsQ4yKEGJz9rcHnY8FCTBJ/YnP5DrkG3DVQJ3N
 4H/bexBbIgyrF6upDZA8hia5ZMpLY8ps3geQSX9k19gymRC/WYCiZI/HOFVH0gAx
 1/5oemCbSGInjm7ai6KdDhlgGlPuShlq18csj23EXqH0BGjQzxVBn+fP4U9BTOnZ
 +2meiuUNHSyLBieGGyZE2/O0U13B5WQy4IcCucdlc7M8zEH7FsDZm9jwSpOSKlL7
 rQguW4Ezgi/EfUDoiSB5ScvStBGIyDqEUR1FP08WcnO0yRFouJdSiu/L6tn9KzIg
 uEdy8Vf+lsUZClsTAZU9RRNUEZkcKnWtahaN4AIKW+x3aye5qlaBTdGkTNcALMC6
 vrVr5LY9a0jCvkWzTbFsqHgPS8eqE2go7Merc3GRP8JQNg4A7qS+a9HVc8wXX7jm
 vZrUl1We3uSCe4Q8zSbFfm4bLPkwXu41Im2/tSTe+72xFRGgL1OBsXVOGJ0ZJ89d
 QKycsiOEYrS3dCunqjkpqoKuf4065tf56aelbqrUznYau6pxKZeNmU8cVBKsefO+
 C/gYVu/Us38+XrrA/iPEPAeWu/+Txw85PDb0cu/Rl9xkqQDXEZs=
 =8Trw
 -----END PGP SIGNATURE-----

Merge tag 'amlogic-arm64-dt-for-v7.2-v2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/dt

Amlogic ARM64 DT for v7.2 v2 take 1:
- Khadas VIM4 (T7 SoC) features:
 - Memory layout fixup
 - GIC register range
 - Model name fixup
 - PWM, eMMC, SD card and SDIO support
 - PWM LED
 - I2C pinctrl node
- Khadas VIM1s Features
 - Bluetooth
 - PWM LED
 - Power Key
 - Function Key via SARADC
 - RTC
 - Remote control keymap
- Bluetooth node for Phicomm N1

* tag 'amlogic-arm64-dt-for-v7.2-v2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/amlogic/linux: (22 commits)
  arm64: dts: amlogic: t7: Add i2c pinctrl node
  arm64: dts: amlogic: t7: khadas-vim4: add PWM-driven status LED
  arm64: dts: amlogic: t7: khadas-vim4: reorder root node
  arm64: dts: amlogic: t7: Fix missing required reset property
  arm64: dts: amlogic: t7: khadas-vim4: Add MMC nodes
  arm64: dts: amlogic: t7: khadas-vim4: Add SDIO power sequence and WiFi clock
  arm64: dts: amlogic: t7: Add PWM controller nodes
  arm64: dts: amlogic: t7: Add MMC controller nodes
  arm64: dts: amlogic: t7: Add clock controller nodes
  arm64: dts: amlogic: meson-s4-s905y4-khadas-vim1s: use rc-khadas keymap
  arm64: dts: amlogic: meson-s4-s905y4-khadas-vim1s: enable HYM8563 RTC
  arm64: dts: amlogic: meson-s4: add VRTC node
  arm64: dts: amlogic: meson-s4-s905y4-khadas-vim1s: add Function key support
  arm64: dts: amlogic: meson-s4: add internal SARADC controller
  arm64: dts: amlogic: t7: khadas-vim4: Add power regulators
  arm64: dts: amlogic: t7: Add PWM pinctrl nodes
  arm64: dts: amlogic: t7: Add eMMC, SD card and SDIO pinctrl nodes
  arm64: dts: amlogic: meson-s4-s905y4-khadas-vim1s: add POWER key support
  arm64: dts: amlogic: meson-s4-s905y4-khadas-vim1s: add PWM LED support
  arm64: dts: amlogic: meson-s4-s905y4-khadas-vim1s: enable bluetooth
  ...

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2026-06-09 14:02:23 +02:00
Krzysztof Kozlowski
77510b39ee RISC-V SpacemiT DT changes for 7.2
For K3 SoC
 - Add Ziccrse extension
 - Add PWM support
 - Add PDMA support
 - Add USB2.0 support
 - Add CoM260-IFX board
 - Add DeepComputing FML13V05 board
 - Fix I/O power of pinctrl
 
 For K1 SoC
 - Add Micro SD card support
 - Add baudrate to console
 - Add SPI support
 - Enable thermal sensor
 - Fix 32K clock
 
 For boards of K1
 - Milk-V Jupiter
   - Enable eMMC
 - MusePi-Pro
   - Enable EEPROM/PCIe/QSPI/USB
 - OrangePi R2S
   - Enable PMIC/USB3
 - OrangePi RV2
   - Enable eMMC/I2C/PCIe/PMIC/QSPI/USB
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
 iQKvBAABCgCZFiEEtbq4ycMbcRVnAiPcMarqR1lNu+0FAmoefQAbFIAAAAAABAAO
 bWFudTIsMi41KzEuMTIsMiwyXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25z
 Lm9wZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRCNUJBQjhDOUMzMUI3MTE1NjcwMjIz
 REMzMUFBRUE0NzU5NERCQkVEAAoJEDGq6kdZTbvt6ckP/jCv7or+dzs2Pjcaa9/Z
 HaMnbriUS3u83KFRJ4Gf7O55fUzWq7Tl+fejoWrh5UF5lkSe9f5TT6sv/l9XOetE
 CB6slypX4Qzv1FNP9owMo646GeyUrOKQz8dxSsUtcZf5UpFWHfgvgz2NW5gr+s6m
 6jf+TGOsK1ge9haIKmxp3Zzhlh3j/p0pvc8WprNg9EV+wTFmn7QHRNn6Y3tkpHLM
 x4dms3oOLOHp8JXQ29cJZp3Jqkgpjx8mxUnH2zkGdW4R9xvDgN9qG48qPmKgT1eE
 JnilE3wGMjVHW5JtFDFT2PWzb6A4ZijKsHVGZ7T+YoOrsE8imY7EQxQkZwl7e8bc
 cnKPbx6/RN1Kj3ifCEDXbulQtorxMsE4wMkUeJ1BmMvlHiZ9NUMHLRjMnnVlWlpN
 ltCx/qdxwEmFLcajMf8vBxPDlETHjE+w8U66vJwb4TKXnOLfs8b7bZA5HOQMc7ZB
 EWbkxYLBtEj1R4Q32kFvlQGjPVt7vdTtBeG9ZAJWq9FqU1vVH97+lERw7/v16fHp
 SZqP7z+aApWgxa3Xxr+eUHjgTRyJEeOW/RGrIXOPU1188SWqxpejf68skASpMGoa
 kgjqnS7fN3TXHtkGFGYOGiqTKOuuCnmr1QPmOOd9ALZnFUgr37CCY5BQMH0m5ci7
 5odjSub1Wu0VTW4vwnohlXQU
 =lNAs
 -----END PGP SIGNATURE-----

Merge tag 'spacemit-dt-for-7.2-1' of https://github.com/spacemit-com/linux into soc/dt

RISC-V SpacemiT DT changes for 7.2

For K3 SoC
- Add Ziccrse extension
- Add PWM support
- Add PDMA support
- Add USB2.0 support
- Add CoM260-IFX board
- Add DeepComputing FML13V05 board
- Fix I/O power of pinctrl

For K1 SoC
- Add Micro SD card support
- Add baudrate to console
- Add SPI support
- Enable thermal sensor
- Fix 32K clock

For boards of K1
- Milk-V Jupiter
  - Enable eMMC
- MusePi-Pro
  - Enable EEPROM/PCIe/QSPI/USB
- OrangePi R2S
  - Enable PMIC/USB3
- OrangePi RV2
  - Enable eMMC/I2C/PCIe/PMIC/QSPI/USB

* tag 'spacemit-dt-for-7.2-1' of https://github.com/spacemit-com/linux: (35 commits)
  riscv: dts: spacemit: enable PMIC on OrangePi R2S
  dts: riscv: spacemit: k3: Fix I/O power settings
  riscv: dts: spacemit: k3: Add Ziccrse extension for X100 cores
  riscv: dts: spacemit: k3: Initial support for CoM260-IFX board
  dt-bindings: riscv: spacemit: Add K3 CoM260-IFX board
  riscv: dts: spacemit: k1-musepi-pro: add SD card support with UHS modes
  riscv: dts: spacemit: k3: Add pwm support
  riscv: dts: spacemit: fix uboot partition offset on Milk-V Jupiter
  riscv: dts: spacemit: enable SD card support on Milk-V Jupiter
  riscv: dts: spacemit: enable eMMC on Milk-V Jupiter
  riscv: dts: spacemit: sort aliases on Milk-V Jupiter
  riscv: dts: spacemit: set console baud rate on Milk-V Jupiter
  riscv: dts: spacemit: enable USB3 on OrangePi R2S
  riscv: dts: spacemit: Add thermal sensor for K1 SoC
  riscv: dts: spacemit: Add PDMA controller node for K3 SoC
  riscv: dts: spacemit: enable QSPI for OrangePi RV2
  riscv: dts: spacemit: k1-musepi-pro: set default console baud rate
  riscv: dts: spacemit: k1-musepi-pro: enable PCIe ports
  riscv: dts: spacemit: k1-musepi-pro: enable USB 3 ports
  riscv: dts: spacemit: k1-musepi-pro: enable QSPI and add SPI NOR
  ...

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2026-06-09 13:59:50 +02:00
ZhaoJinming
6736b18019
platform/x86/intel/tpmi: convert mutex in mem_write() to guard
Convert the explicit mutex_lock/mutex_unlock pair in mem_write() into
a cleanup.h guard(mutex)() scope-based lock acquisition. This removes
the remaining goto-based cleanup path and keeps the lock held until
the end of the mem_write() scope.

Suggested-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: ZhaoJinming <zhaojinming@uniontech.com>
Link: https://patch.msgid.link/20260521130848.2860219-2-zhaojinming@uniontech.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
2026-06-09 14:54:34 +03:00
Krzysztof Kozlowski
d7f82a3fd1 T-HEAD Devicetrees for 7.2
Enable wifi on two TH1520 boards: BeagleV Ahead and Lichee Pi 4a.
 
 The BeagleV Ahead board uses an AP6203BM WiFi module connected to SDIO1.
 The Lichee Pi 4A has an RTL8723DS WiFi module also connected to SDIO1.
 The module reset line is driven through a PCA9557 GPIO expander on the
 I2C1 bus.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQSy8G7QpEpV9aCf6Lbb7CzD2SixDAUCah4clQAKCRDb7CzD2Six
 DF2AAQDknKUINZIFy4xuYA9J45iwjHOXxwo0YAWKKX5QFu5avgEAyQN+P31Vgjyi
 dzh1ilkH+nSO/blbeh8p8kaR3T8+AQ4=
 =ovaG
 -----END PGP SIGNATURE-----

Merge tag 'thead-dt-for-v7.2' of https://git.kernel.org/pub/scm/linux/kernel/git/fustini/linux into soc/dt

T-HEAD Devicetrees for 7.2

Enable wifi on two TH1520 boards: BeagleV Ahead and Lichee Pi 4a.

The BeagleV Ahead board uses an AP6203BM WiFi module connected to SDIO1.
The Lichee Pi 4A has an RTL8723DS WiFi module also connected to SDIO1.
The module reset line is driven through a PCA9557 GPIO expander on the
I2C1 bus.

* tag 'thead-dt-for-v7.2' of https://git.kernel.org/pub/scm/linux/kernel/git/fustini/linux:
  riscv: dts: thead: Enable wifi on the BeagleV-Ahead
  riscv: dts: thead: Enable WiFi on Lichee Pi 4A
  riscv: dts: thead: Add TH1520 I2C1 controller

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2026-06-09 13:54:31 +02:00
Krzysztof Kozlowski
6b2b89b1bc Tenstorrent device tree for v7.2
Add a riscv,pmu node to the Tenstorrent Blackhole SoC device tree. This
 enables OpenSBI to expose the SBI PMU extension, allowing Linux perf to
 use the 4 programmable counters (mhpmcounter3-6) across 3 event classes:
 instruction commit, microarchitectural, and memory system events.
 
 Extend the RISC-V IOMMU device tree bindings to document the Tenstorrent
 IOMMU used in the Tenstorrent Atlantis SoC. A second register range is
 added which contains M-mode only registers like PMAs and PMPs. The
 binding will be used by OpenSBI and potentially other M-mode software.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQSy8G7QpEpV9aCf6Lbb7CzD2SixDAUCah4MhgAKCRDb7CzD2Six
 DKgDAP93cm8LE7eQTxSWGdgcgWG+tQrb+E/5qcjt8oN4vqOHkQEAw2+Fk1hxvxIz
 LvM2xAg+1REKuW3tYJjVfB/m6e9LagE=
 =bY/J
 -----END PGP SIGNATURE-----

Merge tag 'tenstorrent-dt-for-v7.2' of https://git.kernel.org/pub/scm/linux/kernel/git/tenstorrent/linux into soc/dt

Tenstorrent device tree for v7.2

Add a riscv,pmu node to the Tenstorrent Blackhole SoC device tree. This
enables OpenSBI to expose the SBI PMU extension, allowing Linux perf to
use the 4 programmable counters (mhpmcounter3-6) across 3 event classes:
instruction commit, microarchitectural, and memory system events.

Extend the RISC-V IOMMU device tree bindings to document the Tenstorrent
IOMMU used in the Tenstorrent Atlantis SoC. A second register range is
added which contains M-mode only registers like PMAs and PMPs. The
binding will be used by OpenSBI and potentially other M-mode software.

* tag 'tenstorrent-dt-for-v7.2' of https://git.kernel.org/pub/scm/linux/kernel/git/tenstorrent/linux:
  dt-bindings: iommu: riscv: Add bindings for Tenstorrent RISC-V IOMMU
  riscv: dts: tenstorrent: Add PMU node to blackhole for Linux perf support

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2026-06-09 13:46:11 +02:00
Krzysztof Kozlowski
a68c459ac6 Allwinner driver changes for 7.2
Mostly changes to the SRAM driver to allow for one SRAM region to be
 "claimed" by multiple changes. When a region is "claimed" it is removed
 or disconnected from the CPU's view. This is needed on the H6 and H616,
 which have one alias region seemingly shared between the video codec
 engine and the display engine.
 
 One minor fix for the RSB driver is also included.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAmod2AsQHHdlbnNAa2Vy
 bmVsLm9yZwAKCRA4mlQhnA8kMCUND/4h+xocrSMz4T+gHAvffsGItDQrtyLreXem
 GNIdY7whCRo+6KgipnTgXtvqRCzBhiQx9PYM3BTLNLUCURdM0NAcooE/f1kidVOI
 BHOTvfX1cy9eoGVJpZnfMAdMT/MlIw6LC7C1n1y8H14q1ERWkAOeO+k1VE9lMbIj
 jI9YWCFPvq29F+gEZAlCZXZnMWkgrJiLixnVYyi32P1k/u3ykqoNx7TKHWPsWaj5
 /lS22YJUkcf0ARAJhcTElxYLytuhUCE68KKYVD7cN8uojebbcTAJLSkO7INtEdD/
 USkY5sdq1cmDQ42ejgSPkcaL3etwBAha1NceKFLEAYVto6GUziOmXaGw8TLJVMD7
 8ILjzOVj28iUADqy43tvwkqzDNDgn1xy+wmZSiSb6b9N+htDNKHh37R8NeJd0EwY
 8YC/r5H5JqwBFQ0PWXHnjeFNlp6lBZ3G/QWU9ztnsCaDKp8P4jtl8wCF843lACtj
 BKPFCQ/+dkAlxExClaUo1JewJqhjyghpLmoWRMy/azbkdx7B100hH3DabAicN7JH
 1lJ+rvIgTmmlwmGYceQ6sdg//M1b+3emTQ2kX3cgPCra8srKnp5ZkJzwtK0J9OHv
 XEFzB9rtvBPYvKt0dk/eaQAKAZIq82j9vdrtMzI1A5LeUF3VMEr7BxXxplBdwAH6
 TSIElm0ktA==
 =n5X7
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-drivers-for-7.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/drivers

Allwinner driver changes for 7.2

Mostly changes to the SRAM driver to allow for one SRAM region to be
"claimed" by multiple changes. When a region is "claimed" it is removed
or disconnected from the CPU's view. This is needed on the H6 and H616,
which have one alias region seemingly shared between the video codec
engine and the display engine.

One minor fix for the RSB driver is also included.

* tag 'sunxi-drivers-for-7.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  bus: sunxi-rsb: Always check register address validity
  soc: sunxi: sram: Add H616 SRAM regions
  soc: sunxi: sram: Support claiming multiple regions per device
  soc: sunxi: sram: Allow SRAM to be claimed multiple times
  soc: sunxi: sram: Const-ify sunxi_sram_func data and references
  dt-bindings: sram: sunxi-sram: Add H616 SRAM regions
  dt-bindings: sram: Document Allwinner H616 VE SRAM

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
2026-06-09 13:38:15 +02:00
Sergio Paracuellos
a46f2e5720 gpio: mt7621: fix interrupt banks mapping on gpio chips
The GPIO controller's registers are organized as sets of eight 32-bit
registers with each set controlling a bank of up to 32 pins. A single
interrupt is shared for all of the banks handled by the controller.
The driver implements this using three gpio chip instances every one
with its own irq chip. Every single pin can generate interrupts having
a total of 96 possible interrupts here. It looks like there is a problem
with interrupts being properly mapped to the gpio bank using this solution.
This problem report is in the following lore's link [0].

Device tree is using two cells for this, so only the interrupt pin and the
interrupt type are described there. Changing to have three cells to setup
also the bank and implement 'of_node_instance_match()' would also work but
this would be an ABI breakage and also a bit incoherent since gpios itself
are also using two cells and properly mapped in desired bank using through
its pin number on 'of_xlate()'.

That said, register a linear IRQ domain of the total of 96 interrupts shared
with the three gpio chip instances so the bank and the interrupt is properly
decoded and devices using gpio IRQs properly work.

[0]: https://lore.kernel.org/linux-gpio/CAAMcf8C_A9dJ_v4QRKtb9eGNOpJ7BZNOGsFP4i2WFOZxOVBPnQ@mail.gmail.com/T/#u

Fixes: 4ba9c3afda ("gpio: mt7621: Add a driver for MT7621")
Co-developed-by: Vicente Bergas <vicencb@gmail.com>
Signed-off-by: Vicente Bergas <vicencb@gmail.com>
Tested-by: Vicente Bergas <vicencb@gmail.com>
Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://patch.msgid.link/20260609031118.2275735-1-sergio.paracuellos@gmail.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-06-09 13:36:22 +02:00
Arnd Bergmann
e9282defad ARM: soc: updates for v7.2
Minor update for omap_device core code.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAmom3ToACgkQWTcYmtP7
 xmW/9xAAmyL8ao7ODL7GxLl2ft5fkyqziiYvH12b/qVuPOiegQ3f3NqgI7GHCIUJ
 lrUdeRwv7NHD0brB2EAHZRwNhfx2tZhmtq5OCru6+IgJlUrtkDJXr/t/26H90EvW
 6iOCBR0aN9X0lRjW6f4DDiVWfDufYZgQFmMgsSskgl7q+0bdQ6G8pmwCBygFbRJp
 L+QqifolihspsghYvPTT7B02QCnjTFcutFY5KPcClh1Aac1SJQGQJrMsfPzWz5os
 dUuVtduGlLJB5KQnSQ5a4Wd9fT+9mSwYjV/v7iMJSqF565O9SQ61ek2FyUDYWtsU
 fpNxzhQZTCmD78jUM270C/VMwPGnVMFYOCqkwH5M50OMcpw3aCdf7eUL4Pt7fIMv
 e8BzJt2BryJdtx4EwjiNTN7OLq+OW/ZFqBoO7oq4nlxL9EUic+5oWgA9VJHbk2v1
 o0rFMmHTcJdul12Eb3/rA1+LzFpE2cUGdkvH8cpsT1JMUEmDPiBDmE6iVyTgfShz
 FrQ+KWMCs/niAa4G4ff1OiktEzpXVZd+1t/KVpkHh1wJm4TrMymlkIbYSLwvpnu+
 PrUFNWyqNtErFLIlonC+/mqLNWHoRIL3Rd6cHbAQbRE3pKs51Lh+hq5Jjh9TkCF9
 DoxfcVLYxJ6XP3FVsfhv7xDnjS9o9g5H7M6IqLwddcdtmPsxzVo=
 =7DRL
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmon+qEACgkQmmx57+YA
 GNk5lw/+L5GrJLTwOZhH3Cw/l0VhIIptgem+EQ9Jg7aewLHNgepLR73jSqbUS0px
 nmzqhPhZGaTbAS+79UWe8r7wrFwCmeKFW1SmrVos2PCYk9mH1V0f3fDH8rhTCDU8
 2UjqSztwy4HYougURwb2JddOwXLdIui4WGBudnWNvp/Zf6fsgMgGv3Fiy7Csd8g+
 jfWnZOTZNeRD90Ii8qc6n2o0vMUF5gxNUVtDqlbyIUTRtGskLoX/NifGpRTgoHBT
 bjJBmjoQrWCbEUtzEGz/8NTgKqlHqvKdFGz1Kn1rvNZ+Yd5D+apwgPBjjO58rOBh
 1jiZJHF/w6teBNCCoaOIFYQqLswt40rm/8LfdCZB0agQrh2ySF0EVJB298KusXo+
 jQCj1kEBCiNSh7rjZ28H/VcWvfwCM4zTRSgnT7Tl9QvO7IU8ykARE76PK7UXCbcI
 kaY/HgikuW5SkdrTB+X2MTvrbtgLiGRiapzwemae+7ZXm3R1MAiidUVqSUD9EtTO
 gBzmxHk2IbyqDLPFE227p5DBfzbrcMYupXT14GGjbtTVGnzOu6fIgIZqt2Ks6LxK
 bBC14hZtEWeWmNyL+9mfEbop1qrpTsfw5hspHfBITFYvH2XwaxSOwE9unTjsAyM1
 wKtyV7u01cC+9vuKmvIxhkH5YO2y/1B491bcs028ktJ4KQzSa5Y=
 =Vqea
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v7.2/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into soc/arm

ARM: soc: updates for v7.2

Minor update for omap_device core code.

* tag 'omap-for-v7.2/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap:
  ARM: omap2: simplify allocation for omap_device

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-06-09 13:35:58 +02:00
Arnd Bergmann
f044d8021c i.MX arm64 defconfig for v7.2
- Enable DP83822 PHY driver.
 -----BEGIN PGP SIGNATURE-----
 
 iQHFBAABCgAvFiEEJS45w2QNr0ezLVaoNF3oRQ23YkwFAmom3vURHGZyYW5rLmxp
 QG54cC5jb20ACgkQNF3oRQ23YkxiLQwAm/MxXPx6T7uEOljEdCmnrTSrkh7/tiy3
 i1ALY1CP2oozIhifHoFRVVM10tNAVJdXrD+OnEWYx7TVvgjO7XeFMSV6utiqX38I
 UDJSYDjKgDfx1Ck5yRK6AVKRk7PWtuA5HgSr7NB17kT8mOd/dlayXA1t1KcQeGQK
 qk1kNJ95TyR8z4Rq5z7E2V9Hc0Ze+IuvOYy2nfGrXMbMRc+hi/fn5FDinAuManiS
 xaTrQVdaZ4yFOnjJvBfbMyGyLJqK1qAYKMvtTfVCdTQEdBtqGv0xSy67srRSz0/d
 WXQWiAw5dEsc0YRD91ZBa/NEtmI+Wu3JADP7V6LJ6fgPkSYM7nFj8CJx9bqq/5SW
 1FBkKCwrwQaY7LmdGDdG5c/GQa3hrtoGlf7lmZox26VoSv04qCY1PpVCA+bfuLXY
 44LXLr060ORNdV43SKJPlOlBgvmz7kABmpl3GPi34qf6ciFXXZmn4dEAsr8D8pF7
 0RI6hSPUbkspsU0jMinHkeyqXLSi3QVh
 =4Dez
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmon+lQACgkQmmx57+YA
 GNn+Ag/9F8282hm3F9zJ+vMvChPG2GQmcZ8njO5AiNNOqPr+QI1JJ0gmXFddnBxQ
 25TKSXRfg1ldvnUYu7UnHas6qjuFfww4gVM4n0yib2GEz/PTsiiwJ7QqwyHyhtjN
 S5DB5TAGQa6fGSUuKhKCTxjG1NFnSdcf853F3kUSIFgd5bAkJBgFQ5lNZ7x9VGaO
 T8VyGrxNmkrSeU462diomJayll2gmnMy2APqEODijqODA6TxRm7SzJGhVjpIMsOu
 Xl+lHZf6A+ux0ksle9Tp9NQWOTwWzZD/HL/ue8DEBMVV4Y8g1E+Nw3uqbyYAsbeD
 CYr2sg/r0WwxOHLVxVUstvFgAcACQoDZDbhekBO28wnh0jH1TMrvlAmCqrJOiEl2
 otGv3KRxUm90eYOqQb3osR44OPiQTaYxss4BXXE0hC4Zy4BHJpdWy5giuZKg7V1Q
 z6Ilo20EW8oE6qs7pBKTWR3D8nelfLdm5tjJNwIf0o+XsDVENWFoZ+BLDqJUjaI/
 siB9Uc69dLENAKTpGrrOE5Qd93IWNdfEm5roq03b07LIV+iW1YW6XCVTRz+Eiz3i
 IyiH4UmeoEiS04nR7LEaZhIU7BtX1UlslRkJxF0NOAutAWstSIJiB64Ei5mbkQ+f
 Vctn+cFSqqllRhfhL+iNV2hVaRLVn/+Ns91yrtwrk0Oo7MlMo/s=
 =6t3B
 -----END PGP SIGNATURE-----

Merge tag 'imx-defconfig-7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/frank.li/linux into soc/defconfig

i.MX arm64 defconfig for v7.2

- Enable DP83822 PHY driver.

* tag 'imx-defconfig-7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/frank.li/linux:
  arm64: defconfig: Enable DP83822 PHY driver

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-06-09 13:34:42 +02:00
Arnd Bergmann
5087338ea4 Microchip AT91 defconfig updates for v7.2
This update includes:
 - I3C flags for the SAMA7 family of SoCs
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQTsZ8eserC1pmhwqDmejrg/N2X7/QUCaifCAAAKCRCejrg/N2X7
 /Z9+AP4jb/pJAw/ugM1claAU2kWpip+1k5CHUYGXtpl1yEa9LQEAogpbrBZjjM0Y
 NytsKYBAnZzs/0idR+EqEpXoEIc8Cgw=
 =TCNX
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmon+ecACgkQmmx57+YA
 GNmkrw//eUogiUud0IifoiW5Ev+GECHQZF9QfnpwseKWhS52dbovbkfoW6rUWg3z
 EAGWUO3ZUPh733ZmnSc3fSo3oKbHSwd1Tc0XA8avztM2JsVqo85xu1FH11FHNUq+
 FCJk8SmFyouewK6hyOLITrP84uuvMUY8S+aPO6kcFBcrRuwU+MxZ+kwd/EzbJUF/
 hhHVwbpbWtZHA+lDc6GCXTunz2xHkK3+Wcicm2spQQbEPkLLfis9mVYYfQioPYQd
 La5fNO3BSyBYJfqDu+L0YzYxNo5FPsgezQzbNS+Qg4jJZQEXEyHee4Orkt7k8m3x
 zY63bdMvs7eIj5XwRNZNVo0Cc+JvXc7LvvtRylN3plvNdOWvhcckgJhPDMr3uc79
 OCWsm7a7ph5OB0tK5UL2kGZZfL0EZfbfjIeeOPxWGLHHLviB+HeyoC/YOW2i0cZF
 hzNDvdRVGLadBazEUbMDHPZiVEy0dSVIelUAF+5XPKT/1j8Zibn4ll+/MZq60B/W
 NtVSCeUBUXPTRqWosX/8qmx9R960x02LBxbktB23UvEtvLN/Em4S9YGqdieDsN0H
 ApJ27utDK1bkGThZu6mAw/ab/eWBg/DJupShI3XKIiPbcJ1e+Hl2B6D84f+Pj5lE
 p190yNu+SoRP5xOqb7wgFCt8l3O6+c+VePgBgHefa7f/X4YmY8c=
 =IFRh
 -----END PGP SIGNATURE-----

Merge tag 'at91-defconfig-7.2' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into soc/defconfig

Microchip AT91 defconfig updates for v7.2

This update includes:
- I3C flags for the SAMA7 family of SoCs

* tag 'at91-defconfig-7.2' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux:
  ARM: configs: at91: sama7: add sama7d65 i3c-hci

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-06-09 13:32:53 +02:00
Marco Scardovi
1c1e0fc88d gpio: rockchip: fix generic IRQ chip leak on remove
The driver allocates domain generic chips using
irq_alloc_domain_generic_chips() during probe. However, on driver
remove/teardown, the generic chips are not automatically freed when the
IRQ domain is removed because the domain flags do not include
IRQ_DOMAIN_FLAG_DESTROY_GC.

This causes both the domain generic chips structure and the associated
generic chips to be leaked. Additionally, the generic chips remain on
the global gc_list and may later be visited by generic IRQ chip suspend,
resume, or shutdown callbacks after the GPIO bank has been removed,
potentially resulting in a use-after-free and kernel crash.

Fix the resource leak by explicitly calling
irq_domain_remove_generic_chips() before removing the IRQ domain in
rockchip_gpio_remove().

Fixes: 936ee2675e ("gpio/rockchip: add driver for rockchip gpio")
Assisted-by: Antigravity:gemini-3.5-flash
Signed-off-by: Marco Scardovi <scardracs@disroot.org>
Link: https://patch.msgid.link/20260607230504.35392-2-scardracs@disroot.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-06-09 13:24:20 +02:00
Samuel Moelius
446e8c31d0 gpio: mockup: reject invalid gpio_mockup_ranges widths
gpio-mockup validates only that each second gpio_mockup_ranges value is
non-negative before creating the mock chips.  The fixed-base form uses
the second value as the first GPIO number after the range, while the
dynamic-base form uses it as the number of GPIOs.

gpio_mockup_register_chip() stores the resulting number of GPIOs in a
u16 and passes it through a PROPERTY_ENTRY_U16("nr-gpios", ...).  Values
greater than U16_MAX therefore truncate silently.  For example,
gpio_mockup_ranges=-1,65537 creates a one-line mock GPIO chip instead of
rejecting the invalid request.

Reject zero-width, reversed, and over-U16 ranges before registering any
mock chip.

Assisted-by: Codex:gpt-5.5-cyber-preview
Signed-off-by: Samuel Moelius <sam.moelius@trailofbits.com>
Link: https://patch.msgid.link/20260609004538.1240091.3fba33a20b88.gpio-mockup-ngpio-u16-truncation@trailofbits.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-06-09 13:19:56 +02:00
Paolo Abeni
db7a16556f Merge branch 'ipv4-igmp-annotate-diagnostic-procfs-data-races'
Yuyang Huang says:

====================
ipv4: igmp: annotate diagnostic procfs data races

This patch series addresses several unannotated data races between lockless
RCU-protected diagnostic reads in /proc/net/igmp (igmp_mc_seq_show())
and concurrent writes in serialized paths (RTNL and group spinlocks).

Following the precedent in commit 061c0aa740 ("ipv4: igmp: annotate
data-races around im->users"), we annotate these intentional data races
using READ_ONCE() and WRITE_ONCE() macros.

- Patch 1 annotates races around `in_dev->mc_count` (interface-level joins).
- Patch 2 annotates races around active timer-related state tracking fields
  (`tm_running`, `reporter`, `expires`) on individual multicast groups.
====================

Link: https://patch.msgid.link/20260605014318.3890804-1-yuyanghuang@google.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-06-09 13:19:34 +02:00
Yuyang Huang
3289d17b7a ipv4: igmp: annotate data-races around timer-related fields
/proc/net/igmp walks the multicast list locklessly under RCU and reads
timer-related fields (im->tm_running, im->reporter, im->timer.expires)
to print the timer state of multicast memberships. Concurrently, these
fields are modified under im->lock spinlock in timer management paths
(igmp_stop_timer(), igmp_start_timer(), and igmp_timer_expire()). Fix this
intentional lockless snapshot by annotating the lockless reads with
READ_ONCE() and the updates with WRITE_ONCE().

Signed-off-by: Yuyang Huang <yuyanghuang@google.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20260605014318.3890804-3-yuyanghuang@google.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-06-09 13:19:33 +02:00
Yuyang Huang
1719841cab ipv4: igmp: annotate data-races around in_dev->mc_count
/proc/net/igmp walks the multicast list for IPv4 interfaces locklessly
under RCU and prints state->in_dev->mc_count. Concurrently, device
init/destruction and multicast join/leave paths update the count
under the RTNL lock. Fix this intentional lockless snapshot by
annotating the read with READ_ONCE() and the updates with WRITE_ONCE().

Signed-off-by: Yuyang Huang <yuyanghuang@google.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20260605014318.3890804-2-yuyanghuang@google.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-06-09 13:19:33 +02:00
Ruoyu Wang
6edb934de9 gpio: zynq: fix runtime PM leak on remove
pm_runtime_get_sync() increments the runtime PM usage counter even when it
returns an error. zynq_gpio_remove() uses it to keep the controller active
while removing the GPIO chip, but never drops the usage counter again.

Balance the get with pm_runtime_put_noidle() after disabling runtime PM.

Fixes: 3242ba117e ("gpio: Add driver for Zynq GPIO controller")
Signed-off-by: Ruoyu Wang <ruoyuw560@gmail.com>
Link: https://patch.msgid.link/20260609073313.5-1-ruoyuw560@gmail.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-06-09 13:19:13 +02:00
Anton Leontev
004e9ecfe6 hv_netvsc: use kmap_local_page in netvsc_copy_to_send_buf
netvsc_copy_to_send_buf() copies page buffer entries into the VMBus
send buffer using phys_to_virt() on the entry PFN. Entries for the
RNDIS header and the skb linear data come from kmalloc'd memory and
are always in the kernel direct map, but entries for skb fragments
reference page cache or user pages, which on 32-bit x86 with
CONFIG_HIGHMEM=y can live above the LOWMEM boundary. For such a page
phys_to_virt() returns an address outside the direct map and the
subsequent memcpy() faults on the transmit softirq path, which is
fatal.

Map the pages with kmap_local_page() instead, handling two properties
of the page buffer entries:

 - pb[i].pfn is a Hyper-V PFN at HV_HYP_PAGE_SIZE (4K) granularity,
   not a native PFN. Reconstruct the physical address first and derive
   the native page from it, so the mapping stays correct where
   PAGE_SIZE > HV_HYP_PAGE_SIZE (e.g. arm64 with 64K pages).

 - Since commit 41a6328b2c ("hv_netvsc: Preserve contiguous PFN
   grouping in the page buffer array"), an entry describes a full
   physically contiguous fragment and pb[i].len can exceed PAGE_SIZE,
   while kmap_local_page() maps a single page. Copy page by page,
   splitting at native page boundaries.

The copy path only handles packets smaller than the send section size
(6144 bytes by default); larger packets take the cp_partial path where
only the RNDIS header is copied. So entries here are bounded by the
section size and a copy is split at most once on 4K-page systems. On
!CONFIG_HIGHMEM configs kmap_local_page() folds to page_address() and
no mapping work is added.

Fixes: c25aaf814a ("hyperv: Enable sendbuf mechanism on the send path")
Cc: stable@vger.kernel.org
Signed-off-by: Anton Leontev <leontyevantony@gmail.com>
Link: https://patch.msgid.link/20260604165938.32033-1-leontyevantony@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-06-09 13:16:30 +02:00
Nihal Kumar Gupta
7c9474bd4a
dt-bindings: i2c: qcom-cci: Document Glymur compatible
Add Glymur compatible consistent with CAMSS CCI interfaces.

Signed-off-by: Nihal Kumar Gupta <nihal.gupta@oss.qualcomm.com>
Signed-off-by: Vikram Sharma <vikram.sharma@oss.qualcomm.com>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
2026-06-09 13:00:34 +02:00
Nihal Kumar Gupta
e3a8f83293
dt-bindings: i2c: qcom-cci: Document Shikra compatible
Add Shikra compatible consistent with CAMSS CCI interfaces.
It requires only two clocks.

Signed-off-by: Nihal Kumar Gupta <nihal.gupta@oss.qualcomm.com>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
2026-06-09 13:00:34 +02:00
Abdurrahman Hussain
3279986bfe
i2c: mux: reg: use device property accessors
Convert the device-tree parsing path to the generic fwnode/device
property accessors so the driver can be probed on ACPI and swnode
platforms as well as OF. The helper is renamed from
i2c_mux_reg_probe_dt() to i2c_mux_reg_probe_fw() to reflect that.

Accessor translation:

  of_parse_phandle("i2c-parent") +
    of_find_i2c_adapter_by_node()    -> fwnode_find_reference() +
                                         i2c_find_adapter_by_fwnode()
  of_get_child_count()               -> device_get_child_node_count()
  of_property_read_bool()            -> device_property_read_bool()
  for_each_child_of_node()           -> device_for_each_child_node()
    of_property_read_u32("reg")        on ACPI device nodes:
                                         acpi_get_local_address()
                                       everything else (OF, swnode,
                                       ACPI data nodes):
                                         fwnode_property_read_u32()
  of_property_read_u32("idle-state") -> device_property_read_u32()

The child-node branch uses is_acpi_device_node() rather than
is_acpi_node(): the latter also matches ACPI data nodes (the
_DSD hierarchical-property children used by PRP0001-style
firmware), which have no ACPI handle and would make
acpi_get_local_address() fall back to evaluating _ADR against the
root namespace and return -ENODATA.  Routing data nodes through
fwnode_property_read_u32() instead lets them resolve the "reg"
property the same way OF and swnode children do.

Behavioural preservations (deliberate, to avoid regressing existing
users):

  - The three-way endian fallback is kept verbatim: an explicit
    "little-endian" property wins, then "big-endian", and otherwise
    the host's compile-time byte order. device_is_big_endian() is
    not used here because it ignores "little-endian" and introduces
    "native-endian" semantics, which would diverge from the binding.

  - The "if (!mux->data.reg)" guard around
    devm_platform_get_and_ioremap_resource() in probe() is kept.
    drivers/platform/mellanox/mlx-platform.c registers i2c-mux-reg
    platform_devices with no memory resource and supplies a
    pre-set .reg / .reg_size through struct
    i2c_mux_reg_platform_data; without the guard those
    registrations would fail in probe().

  - The "if (!mux->data.reg)" ioremap block (and the paired
    reg_size validation that depends on it) is hoisted above
    i2c_get_adapter(mux->data.parent), so the fwnode path
    preserves master's ordering of "ioremap before parent-adapter
    get".  For platdata users the validation runs from a slightly
    earlier position, but mux->data.reg_size is already set from
    platdata by then, so the order is functionally neutral.

The OF-only of_address_to_resource() translation in the old
probe_dt() is dropped because the same address is available from
the platform_device resource table on OF as well as ACPI, and the
existing fallback in probe() ioremaps it.

Acked-by: Peter Rosin <peda@lysator.liu.se>
Signed-off-by: Abdurrahman Hussain <abdurrahman@nexthop.ai>
Assisted-by: Claude-Code:claude-opus-4-7
Assisted-by: sashiko:gemini-3.1-pro-preview
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
2026-06-09 13:00:33 +02:00