Commit graph

1,468,510 commits

Author SHA1 Message Date
Antonio Quartulli
cc12f7240c ovpn: rehash peer in by_transp_addr table on CMD_PEER_SET
When userspace updates a peer's remote endpoint via OVPN_CMD_PEER_SET,
ovpn_nl_peer_modify() installs a new ovpn_bind through
ovpn_peer_reset_sockaddr(), but ovpn_nl_peer_set_doit() only calls
ovpn_peer_hash_vpn_ip() to refresh the VPN-IP hashtables. The peer is
left in the bucket of peers->by_transp_addr corresponding to its old
remote address.

As a consequence, datagrams arriving at the UDP RX path from the newly
configured remote hash to a different slot and the lockless lookup in
ovpn_peer_get_by_transp_addr() (called from ovpn_udp_encap_recv()) does
not find the peer, until either a float event or a peer re-add fixes
the bucket.

Introduce ovpn_peer_hash_transp_addr() (modeled after
ovpn_peer_hash_vpn_ip()) and invoke it from ovpn_nl_peer_set_doit()
whenever the request carried a new remote address. The helper bails
out in P2P mode and on peers without a bind (TCP), and relies on
hlist_nulls_del_init_rcu()'s pprev==NULL short-circuit to handle the
case of an entry not currently linked in the table.

Fixes: 1d36a36f6d ("ovpn: implement peer add/get/dump/delete via netlink")
Signed-off-by: Antonio Quartulli <antonio@openvpn.net>
2026-07-30 11:28:30 +02:00
Antonio Quartulli
33ec10567f ovpn: skip rehash for peers already removed from by_id
ovpn_nl_peer_set_doit() resolves the target peer via
ovpn_peer_get_by_id() before taking ovpn->lock. In the window between
the lookup (which only takes a refcount) and the subsequent
spin_lock_bh(&ovpn->lock), a concurrent OVPN_CMD_PEER_DEL, keepalive
expiry, or socket teardown can take ovpn->lock first, run
ovpn_peer_remove() to unhash the peer from all four tables (by_id,
by_vpn_addr4/6, by_transp_addr) and release the lock. set_doit then
acquires ovpn->lock and calls ovpn_peer_hash_vpn_ip(), which
re-inserts the now-removed peer back into the rehashing tables.

The same race affects the float path: ovpn_peer_endpoints_update()
holds only a refcount and acquires ovpn->lock very late (after async
AEAD decrypt and a netlink notification), then rehashes the peer
in the by_transp_addr table.

The resurrected peer becomes reachable again from the RX lookup
(ovpn_peer_get_by_transp_addr) and the TX VPN-IP lookup, even though
userspace believes it is gone. Once the data-path refcount drops the
peer is freed via call_rcu while the hash entries embedded in it
remain linked, opening a UAF window.

Bail out of the rehash when hash_entry_id is unhashed, mirroring
the sentinel already used by ovpn_peer_remove() to detect the
already-removed state. The check is safe under ovpn->lock, which
serializes every mutation of hash_entry_id, and is a no-op for the
add path because ovpn_peer_add_mp() inserts hash_entry_id before
calling ovpn_peer_hash_vpn_ip().

Fixes: 1d36a36f6d ("ovpn: implement peer add/get/dump/delete via netlink")
Signed-off-by: Antonio Quartulli <antonio@openvpn.net>
2026-07-30 11:28:30 +02:00
Marco Baffo
935dc3bb20 ovpn: limit keepalive values to one day
Large keepalive values can overflow the delayed-work delay on 32-bit
systems, causing the keepalive worker to be repeatedly scheduled.

A correct configuration should not require such large keepalive values,
and an upper limit of one day is already generous and unnecessary in
practice. Limit both the keepalive interval and timeout to 86400 seconds.

Signed-off-by: Marco Baffo <marco@mandelbit.com>
Signed-off-by: Antonio Quartulli <antonio@openvpn.net>
2026-07-30 11:28:30 +02:00
Arnd Bergmann
253b1036b9 MediaTek ARM64 DeviceTree updates
This adds a couple of fixes and improvements for multiple
 MediaTek SoCs.
 
 In particular:
 - Indentation/whitespace fixes for some devicetrees
 - Documentation improvements for MediaTek Mute-X
 - dtbs-check warnings fixes
   - MT8390 Tungsten boards: removal of unnecessary cells
   - MT6795 SoC: removal of deprecated property in UART DMA
 - MT6359 PMIC's RTC now uses the correct compatible string
 - MT8183/86/88/92/95 SoCs gain support for the UART DMA IPs
 - MT8186 gets a new CCI OPP table to resolve lockups
 - MT8188/83 Chromebooks now got the correct SPI NOR supply
 - MT8192 Asurada drops support for the (unused) MMC1 port
 - MediaTek Genio 510/700/1200 EVKs and Radxa NIO-12L now get
   their PMIC power input tree completed with assignment of
   the correct supplies
 -----BEGIN PGP SIGNATURE-----
 
 iLoEABYKAGIWIQQn3Xxr56ypAcSHzXSaNgTPrZeEeAUCamsKqBsUgAAAAAAEAA5t
 YW51MiwyLjUrMS4xMiwyLDIoHGFuZ2Vsb2dpb2FjY2hpbm8uZGVscmVnbm9AY29s
 bGFib3JhLmNvbQAKCRCaNgTPrZeEeMdDAP49I6x+l77XLzg/PRjbNu7Af5TB30dZ
 8U9Lg/JVkt3ErgEAuTKsOhlN43fk0iBcvmK/A6nLMWW0lb7RnbhAXyRXXwI=
 =3hmo
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmprGWkACgkQmmx57+YA
 GNnmLBAAq7OGHXTWuWaRNdsUq/LeA+CifO3Hah0giYBQDEJ940XRgosfBIw5/nEA
 rPym1hIYQ5G9eJNQHzBGLlVk83dEcCB6RpqXJUwG176sPuaSDULnkL0c8nNDtMIY
 Rgpm/WhizEBlZlqawbNLGHlY6Nii0xNZJuHqq8SiP6vwyYR9bBfrfXEAzvA/ymS0
 rnVUtPh2NA4OZ2/7RW+STr6X9XrtRL5a3DEtJSsVJevfxDn3/XAicdgRRqd3vqGj
 +1VaNffXhFRQRHMbFgVn49e8xhcq8S9tBTgp82mRB2UK4e5yrlJLbI/vJJQvj3+S
 AZjoitLf3rdmYMn8pPQ0ohuMSszoh8VkLEscDav42zQ+0LIb++usz5vEoUA9qXLy
 wQZx2fmiwuH50J7jOLdUQ9rF/0lmrb0VF7LtwnlvzBuTarZBDR7evb4+eTUb5M4E
 Fs7oeaxLI4bV73X8OBCzFv8mxX5hlMKXgftaRDwlhq7uBoyobkj8AdTuMMK01wkn
 gXBCMACwoNk13zAJVW86qG6Sr3mzNTxqnuL4lKLCHnt8QuuMmpDRFe1A/HNR3IxA
 Ouv18uzqfAzwq+murnpXUFPEQqj58J47HKRzZGL0JrEnfFnQS6Ch4jph/U4Jrt6i
 4n//bYqn4XTeMkqm+aeQddWNQulMqN9c9xHEJ7yq5UUbKNYB9OQ=
 =iRpe
 -----END PGP SIGNATURE-----

Merge tag 'mtk-dts64-for-v7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/dt

MediaTek ARM64 DeviceTree updates

This adds a couple of fixes and improvements for multiple
MediaTek SoCs.

In particular:
- Indentation/whitespace fixes for some devicetrees
- Documentation improvements for MediaTek Mute-X
- dtbs-check warnings fixes
  - MT8390 Tungsten boards: removal of unnecessary cells
  - MT6795 SoC: removal of deprecated property in UART DMA
- MT6359 PMIC's RTC now uses the correct compatible string
- MT8183/86/88/92/95 SoCs gain support for the UART DMA IPs
- MT8186 gets a new CCI OPP table to resolve lockups
- MT8188/83 Chromebooks now got the correct SPI NOR supply
- MT8192 Asurada drops support for the (unused) MMC1 port
- MediaTek Genio 510/700/1200 EVKs and Radxa NIO-12L now get
  their PMIC power input tree completed with assignment of
  the correct supplies

* tag 'mtk-dts64-for-v7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux:
  arm64: dts: mediatek: mt6359: use proper compatible for rtc
  arm64: dts: mediatek: mt8395-radxa-nio-12l: Add MT6365 PMIC supplies
  arm64: dts: mediatek: mt8395-genio-common: Add MT6365 PMIC supplies
  arm64: dts: mediatek: mt8390-genio-common: Add MT6365 PMIC supplies
  arm64: dts: mediatek: mt8192-asurada: Disable mmc1 on Spherion
  dt-bindings: soc: mediatek: mutex: Improve title and description
  arm64: dts: mediatek: mt8195: Add and use UART AP_DMA controller
  arm64: dts: mediatek: mt8192: Add and use UART AP_DMA controller
  arm64: dts: mediatek: mt8188: Add and use UART AP_DMA controller
  arm64: dts: mediatek: mt8186: Add and use UART AP_DMA controller
  arm64: dts: mediatek: mt8183: Add and use UART AP_DMA controller
  arm64: dts: mediatek: mt6795: Remove deprecated UART DMA property
  arm64: dts: mediatek: tungsten-smarc: Remove unnecessary cells
  arm64: dts: mediatek: Correct indentation and whitespace
  arm64: dts: mediatek: mt8188-geralt: Add supply for SPI NOR flash
  arm64: dts: mediatek: mt8183-kukui: Add supply for SPI NOR flash
  arm64: dts: mediatek: mt8186: change CCI OPP scaling mapping

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-07-30 11:28:26 +02:00
Arnd Bergmann
fb1cb3242b MediaTek ARM32 DeviceTree updates
This fixes a minor indentation issue in the MT8127 devicetree
 and adds support for the Auxiliary ADC found in the MT6323 PMIC.
 -----BEGIN PGP SIGNATURE-----
 
 iLoEABYKAGIWIQQn3Xxr56ypAcSHzXSaNgTPrZeEeAUCamsCiBsUgAAAAAAEAA5t
 YW51MiwyLjUrMS4xMiwyLDIoHGFuZ2Vsb2dpb2FjY2hpbm8uZGVscmVnbm9AY29s
 bGFib3JhLmNvbQAKCRCaNgTPrZeEeBPiAP9lr1/GKI8x8ic4JtzZRYfTf9wOJUjL
 L+k64fFBWZHn8wD+MBGSwiCXpudcN4GkLS0HKN7UkDL5gcdlCgZ4DbeLAgA=
 =PxxN
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmprGPcACgkQmmx57+YA
 GNnbGhAAmoaFmscdDKzVodn4eQB+TIGpD2XxE6qrYbD9k7LE2Kp2tnrjjvfsTsr4
 JBeHQUnjZgAXVmpdWBqxan5GrgXThvKoWvsPtADR06SiIEk2wxCS4Pwh97629FQE
 w+zpABMuq/sgPhAiSvVZIsAlhPUzvx8ILuA69HE7wBiHHpDh3Zl9yZiskcikc3K9
 Egd2Q2tw+OkgYfW1ccIgQFwyum5ot/tcQoKGLPugvzDa6fHj8gXfiUOFSlqK7ak0
 oQCT8Ue+l2MiCVcURLKMEukuxe7sq+PdHtW+V6q0LpVfUskYJ3rWs+qT7e0lWH2n
 9zlL0xh8zBTOgVC22uJJvpRcCHrp0tbusXZzbGKQOFVBZSJOhlMkW3uUqk0sAg8B
 RldqDsTFH2WfoZjsI4SWV1hRoM1gqvHUu1gDroJYglwcFMjsLJMlMdNmHI7MupsO
 DCvG2gAx+Kj5Gz4Gf+LDFx5khS3ucIsjPl+VR+1foGxLcoWYvI0KgV5lqMWecaKr
 7NowJYN1SHfqNozyMUkNb/qGJrX+1jBjUHuPp758GC2FnMXh0hB8/XJuFc5n09E7
 U/T9DvEdltgx+7dDYrL5BP/ZkxeGY6F/kd47zCd5LVeQovJAiE5wD+lbGN09oYsf
 54tTfbIwiO7NH/+uiR2HIa3EMbSV0xIalFe9VS9iXuK5nUE43xc=
 =rAn0
 -----END PGP SIGNATURE-----

Merge tag 'mtk-dts32-for-v7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/dt

MediaTek ARM32 DeviceTree updates

This fixes a minor indentation issue in the MT8127 devicetree
and adds support for the Auxiliary ADC found in the MT6323 PMIC.

* tag 'mtk-dts32-for-v7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux:
  ARM: dts: mediatek: mt6323: add AUXADC support
  ARM: dts: mediatek: mt8127: Correct indentation

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-07-30 11:27:06 +02:00
Arnd Bergmann
ed9bfc3a91 ARM: dts: imx device tree updates for v7.3
Cleanup CHECK_DTBS warnings:
 - Remove undocumented properties (nand-ecc-*, clock-names, default-state)
 - Rename display@0 to display0 (ls1021a-iot)
 - Add led suffix to node names (ls1021a-moxa-uc-8410a)
 - Replace spansion,s25fl164k with jedec,spi-nor (ls1021a-moxa-uc-8410a)
 - Use ethernet-phy-ieee802.3-c22 compatible string (ls1021a-moxa-uc-8410a)
 - Rename eim-cs1 node to eim-cs1-bus (imx53-ard)
 - Add power-supply for LCD panel (ls1021a-twr)
 - Add fsl,ls1021aqds-fpga compatible string (ls1021a-qds)
 
 Fixes:
 - Change #io-channel-cells to 1 for voltage divider (imx6dl-plym2m)
 
 New features:
 - Describe Bluetooth controller (imx7d-pico)
 - Add power-supply to PCIe Root Port (imx6sx-sdb, imx6qdl-sabresd)
 -----BEGIN PGP SIGNATURE-----
 
 iQHFBAABCgAvFiEEJS45w2QNr0ezLVaoNF3oRQ23YkwFAmpqUe0RHGZyYW5rLmxp
 QG54cC5jb20ACgkQNF3oRQ23YkzaTgwAzcjgy6li8+Iy8VcXWRukvv8rjmMVj5BW
 GumyOumzaaynMXmbsH9EKXuvy4hil+UWYp0ED8cI73aWTjWN/RFeoYbeLdI4Kzj/
 4FmmnAXxrd1zt1hcwi0HdF4FAjgbN10sOYHHb3LlRu9MC7mOPPeM9VQ2fEC7J07n
 zOcbwTyRHBlUOELQtQQMOy8v0EQI9sCWkqIb5LbNsaNOvicv6/aZUA4RUS5VxIpl
 QJZznRX20lZ3uF9vISWAGjQ47kzh0h7wmSH2li7stzhF/m/JbZXynk95pW6/XjU6
 ds7CJLGS4fSce4VY7qSbs9FAWKRYZRCLViUI1QTYv3pn4q/34vEGy5G/B8nxnJAc
 UgIoUf7KNE1qZ4JvI2iJ8LzPDjj6S4uCs6YViW1kUn5UzAxchPUnePNR51B19kcY
 QI6GJKkb6TqtZsQq0iT5EUQOhSWBO+WYrnPWNWjdjLwIf4MmgA3vGaKWGHzI78P3
 pF8SMNywsZ2bvXz3crnM5D1ctmSKJq9Y
 =X3yF
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmprGBUACgkQmmx57+YA
 GNmM9A/9GoZ1Hc4j4ExwK+U5zovNyUv2PWoHqVQ5GeyZZDyXHCvm8i9yxCF0hZjT
 V1ZQ89RZHe4LVfU3rYr/vCLrMKWsJSLTcPiv3LEV9VPsLIDUWWxvnGw/VulZnEGE
 3rgf1zNhfVrU50p5fCrn36e3wQmOulULVbHOB1jhDdiHBv2ZjQYlWbIIawnErxLO
 kYCGvIoweXUd4dW2zZMK5ChZ0ShEb85aHX0acoZrgnf7WhqOfLJ6nO+lXvLr7G1V
 aw/VclaxKoBZovG/Z63sUEG6nDcpNCG58d+nONbTbEQub6BDfxxHnEimIrnBJ9kd
 paDyUdGKNuhwI48fKeb2bNIbIYSGFjkvrrfWkJi6EBwmqtGQgjeltXLpjE0sB0dm
 3zvDfTwP7M8pGGnKZgvApO9Np13paZWazNw1HtV2/hb8jltufbYfPn+WP5UU6mCt
 DY6DHX+WBfSHAMYMGcEu3W+iajSH63FujJNpFs8JZozSS6NE1I02VpjUoOnAiqoB
 gHJCn6yq6y5FV8FSYcDlakIPyvYH78n3K7wB6/lQQaFmWP6anQjMU5sguo5tNb/4
 WuJHQrtA5JSnD5a0a4h3rR2fSRwXB6MtH3adx6RPGIRSXm5qxnCegoJ+DGTO1H3M
 a/HB4Qsm1Nvl8681Gai9X4MoTLCgQ4zfw+LScWwj4/6xbAJrk5o=
 =48bC
 -----END PGP SIGNATURE-----

Merge tag 'imx-dt-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/frank.li/linux into soc/dt

ARM: dts: imx device tree updates for v7.3

Cleanup CHECK_DTBS warnings:
- Remove undocumented properties (nand-ecc-*, clock-names, default-state)
- Rename display@0 to display0 (ls1021a-iot)
- Add led suffix to node names (ls1021a-moxa-uc-8410a)
- Replace spansion,s25fl164k with jedec,spi-nor (ls1021a-moxa-uc-8410a)
- Use ethernet-phy-ieee802.3-c22 compatible string (ls1021a-moxa-uc-8410a)
- Rename eim-cs1 node to eim-cs1-bus (imx53-ard)
- Add power-supply for LCD panel (ls1021a-twr)
- Add fsl,ls1021aqds-fpga compatible string (ls1021a-qds)

Fixes:
- Change #io-channel-cells to 1 for voltage divider (imx6dl-plym2m)

New features:
- Describe Bluetooth controller (imx7d-pico)
- Add power-supply to PCIe Root Port (imx6sx-sdb, imx6qdl-sabresd)

* tag 'imx-dt-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/frank.li/linux: (21 commits)
  ARM: dts: ls1021a-iot: rename display@0 to display0
  dt-bindings: display: imx: Add deprecated property display and display0
  ARM: dts: imx6ull-engicam-microgea: remove nand-ecc-strength and nand-ecc-step-size
  ARM: dts: imx6ul-isiot: remove undocument property clock-names of fsl,sgtl5000
  ARM: dts: imx53-smd: remove undocument property clock-names of ovti,ov5642
  ARM: dts: imx6dl-plym2m: change #io-channel-cells to 1 of voltage divider
  ARM: dts: ls1021a-moxa-uc-8410a: remove undocument property default-state of gpio-keys
  ARM: dts: ls1021a-moxa-uc-8410a: replace spansion,s25fl164k with jedec,spi-nor
  ARM: dts: ls1021a-moxa-uc-8410a: use compatible string ethernet-phy-ieee802.3-c22
  ARM: dts: ls1021a-twr: add power-supply for lcd panel
  ARM: dts: ls1021a-moxa-uc-8410a: add led suffix to fix CHECK_DTBS warnings
  ARM: dts: imx53-ard: change node name eim-cs1 to eim-cs1-bus
  dt-bindings: soc: imx: Add fsl,eim-bus
  ARM: dts: ls1021a-qds: add compatible string "fsl,ls1021aqds-fpga" for on boards FPGA chip
  dt-bindings: fsl,fpga-qixis: Add fsl,ls1021aqds-fpga compatible string
  ARM: dts: imx6qdl-tqma6: add nvmem-layout
  ARM: dts: imx6ul-tqma6ul: add nvmem-layout
  ARM: dts: imx6sx-sdb: Add power supply property to Root Port node
  ARM: dts: imx6qdl-sabresd: Add power supply property to Root Port node
  ARM: dts: nxp: ls: Correct indentation
  ...

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-07-30 11:23:18 +02:00
Arnd Bergmann
aa469c0c55 MediaTek SoC driver updates
This adds a fix for a missing error check in mtk-socinfo, and
 also a missing MODULE_DEVICE_TABLE() in the mtk-dvfsrc driver.
 
 Besides from that, this also reworks how the MMSYS tables are
 specified with the macro, separating the component's hardware
 instance from the actual type, resolving a prerequirement for
 the restructuring of mediatek-drm.
 -----BEGIN PGP SIGNATURE-----
 
 iLoEABYKAGIWIQQn3Xxr56ypAcSHzXSaNgTPrZeEeAUCamsBiRsUgAAAAAAEAA5t
 YW51MiwyLjUrMS4xMiwyLDIoHGFuZ2Vsb2dpb2FjY2hpbm8uZGVscmVnbm9AY29s
 bGFib3JhLmNvbQAKCRCaNgTPrZeEeFUuAQCcdpIBGxycSOIoG5uxijcx8w7uhmf9
 FJMPm4LiDF5LgwD/bn2CqDMCrkNQysoErQkhVlOczLbKJSQ69QGFuSGLlwo=
 =TyOH
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmprF7wACgkQmmx57+YA
 GNnb0BAAg54DnXer5nJLPZyqfKbgscGZbVLFW2X9k/Cx1utJpVW4ozxRCUTK4sb4
 15t+wUOSsdzj1ZIYCccZR3QtqBxbPRnLECHeP/tEqf0+4Qu0jOaYXIstIVsrInkr
 zDtXFReq0D+2V8Nf46gw7zi65q2xZUbNSeJTUgy3s5miOaB0w1/as6c97SJzzZgU
 DqLEmo/gi74+k3PfYcgLiJJXJSYba8qtGUorrJbXvil+wWPbcDIpokpt7V/ktGjE
 jVBdtHNR0IhpMZUjK/4CUi2EgQHpnGeSLN0je3O9PfdUVcIvauwd2Fy5RUSfOk8x
 Hs877b4OcJry+fAS1Hw+/v2f1nlMyMcfuPll+8GHkP11c511M55o3zbYR0RKlrtz
 DT12QiSTHyLir+4fdTyh808hBJw8B2CPt59AtHbTT1YNAFfqOmo/5EmYlCOIiFNk
 WRYz7lQRLY2ElOgUQAtmAS4LiPg7aen0bICIggFdK68abdUfon7oSanxkYxEL1By
 0+/fQMbOlotlJar5cyi5l1/bKshs8IIm/+aLXFsqtIBZHbKXo6Z9NXM3HDXOj1oK
 II+sfmw8GxfmGVQbLUCns3J4IlVUqndw10Bad8u2djLruWeL9AgfkRQZqOTEi1B2
 4BL6aB4H9Co0amwb1mPUFh7atfLgqaQkf623Lis6i+hqR5+4cGc=
 =Ew69
 -----END PGP SIGNATURE-----

Merge tag 'mtk-soc-for-v7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/drivers

MediaTek SoC driver updates

This adds a fix for a missing error check in mtk-socinfo, and
also a missing MODULE_DEVICE_TABLE() in the mtk-dvfsrc driver.

Besides from that, this also reworks how the MMSYS tables are
specified with the macro, separating the component's hardware
instance from the actual type, resolving a prerequirement for
the restructuring of mediatek-drm.

* tag 'mtk-soc-for-v7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux:
  soc: mediatek: add missing MODULE_DEVICE_TABLE()
  soc: mediatek: mtk-mmsys: Use MMSYS_ROUTE() in default routing table
  soc: mediatek: mtk-mmsys: Rework routes to specify component ID
  soc: mediatek: mtk-socinfo Add error handling in devm_kasprintf()

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-07-30 11:21:59 +02:00
Tzuyi Chang
6435d21cbd gpio: realtek: Add driver for Realtek DHC RTD1625 SoC
Add support for the GPIO controller found on Realtek DHC RTD1625 SoCs.

Unlike the existing Realtek GPIO driver (drivers/gpio/gpio-rtd.c),
which manages pins via shared bank registers, the RTD1625 introduces
a per-pin register architecture. Each GPIO line now has its own
dedicated 32-bit control register to manage configuration independently,
including direction, output value, input value, interrupt enable, and
debounce. Therefore, this distinct hardware design requires a separate
driver.

The RTD1625 GPIO controller has a hardware quirk where both 'assert'
and 'de-assert' interrupts are fired simultaneously on any edge toggle.
The driver works around this quirk to correctly handle edge interrupts.

Interrupt support is optional for this device, matching the dt-bindings.
If the interrupts property is not provided, the driver simply skips IRQ
initialization and operates purely as a basic GPIO controller.

Reviewed-by: Linus Walleij <linusw@kernel.org>
Signed-off-by: Tzuyi Chang <tychang@realtek.com>
Co-developed-by: Yu-Chun Lin <eleanor.lin@realtek.com>
Signed-off-by: Yu-Chun Lin <eleanor.lin@realtek.com>
Reviewed-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Link: https://patch.msgid.link/20260726125209.140307-10-eleanor.lin@realtek.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-07-30 11:05:07 +02:00
Yu-Chun Lin
de36d18cfc gpio: regmap: Add IRQ enable/disable helpers
Add gpio_regmap_enable_irq() and gpio_regmap_disable_irq(). Since struct
gpio_regmap is opaque, drivers cannot access the embedded gpio_chip directly.

Reviewed-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Suggested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Yu-Chun Lin <eleanor.lin@realtek.com>
Link: https://patch.msgid.link/20260726125209.140307-9-eleanor.lin@realtek.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-07-30 11:05:07 +02:00
Yu-Chun Lin
ab91ecbc32 gpio: regmap: Add set_config callback
Add a new set_config callback to allow drivers to implement
hardware-specific configuration such as debounce settings, or other
platform-specific GPIO properties.

Reviewed-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Signed-off-by: Yu-Chun Lin <eleanor.lin@realtek.com>
Link: https://patch.msgid.link/20260726125209.140307-8-eleanor.lin@realtek.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-07-30 11:05:07 +02:00
Yu-Chun Lin
5f28e3dbd2 gpio: regmap: Add value_xlate callback
Introduce a new optional 'value_xlate' callback. This routine allows drivers
to translate or modify the register value and mask immediately before a write
operation. It is particularly useful for hardware that requires additional
control bits, such as a write-enable bit, to be appended to the data
dynamically.

Reviewed-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Suggested-by: Michael Walle <mwalle@kernel.org>
Signed-off-by: Yu-Chun Lin <eleanor.lin@realtek.com>
Link: https://patch.msgid.link/20260726125209.140307-7-eleanor.lin@realtek.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-07-30 11:05:07 +02:00
Yu-Chun Lin
6c53312b7e gpio: regmap: Add gpio_regmap_operation to extend reg_mask_xlate callback
Extend the reg_mask_xlate callback with an operation type parameter
(enum gpio_regmap_operation) to allow drivers to return different
register/mask combinations depending on the specific GPIO operation.

Consequently, update all existing drivers utilizing the gpio-regmap
framework (across drivers/gpio, drivers/iio, and drivers/pinctrl)
to accommodate the new reg_mask_xlate function signature.

Acked-by: William Breathitt Gray <wbg@kernel.org>
Acked-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com> #for-iio
Suggested-by: Linus Walleij <linusw@kernel.org>
Signed-off-by: Yu-Chun Lin <eleanor.lin@realtek.com>
Link: https://patch.msgid.link/20260726125209.140307-6-eleanor.lin@realtek.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-07-30 11:05:06 +02:00
Andy Shevchenko
cf0f6ddd08 gpio: regmap: Order kernel-doc descriptions with the actual appearance
Order kernel-doc descriptions with the actual appearance.

Reviewed-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Yu-Chun Lin <eleanor.lin@realtek.com>
Link: https://patch.msgid.link/20260726125209.140307-5-eleanor.lin@realtek.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-07-30 11:05:06 +02:00
Andy Shevchenko
2da8b903cf gpio: regmap: Apply default resource callbacks for regmap IRQ chip
When GPIO regmap creates an IRQ chip on behalf of the user, it also
takes an ownership of the respective callbacks and driver data.
With that being done, apply default resource callbacks that keep
tracking the IRQ requests and releases.

Reviewed-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Yu-Chun Lin <eleanor.lin@realtek.com>
Link: https://patch.msgid.link/20260726125209.140307-4-eleanor.lin@realtek.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-07-30 11:05:06 +02:00
Andy Shevchenko
65caf947fe gpio: regmap: Provide default IRQ resource request and release callbacks
When GPIO regmap based driver supplies its own IRQ domain, it might
still want to keep track of the IRQ requests and releases, in particular
to prevent a GPIO, which is used and locked as IRQ, to be requested
via standard ways. Provide default callbacks for such cases and keep
struct gpio_chip private to GPIO regmap implementation.

Reviewed-by: Michael Walle <mwalle@kernel.org>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Yu-Chun Lin <eleanor.lin@realtek.com>
Link: https://patch.msgid.link/20260726125209.140307-3-eleanor.lin@realtek.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-07-30 11:05:05 +02:00
Yu-Chun Lin
921ea990b6 Revert "gpio: realtek: Add driver for Realtek DHC RTD1625 SoC"
This reverts commit a57e27c43b.

The driver will be rewritten to use the gpio-regmap infrastructure
once Andy Shevchenko's patches for gpio-regmap are applied.

Acked-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Acked-by: Linus Walleij <linusw@kernel.org>
Signed-off-by: Yu-Chun Lin <eleanor.lin@realtek.com>
Link: https://patch.msgid.link/20260726125209.140307-2-eleanor.lin@realtek.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
2026-07-30 11:05:05 +02:00
Aurelien Jarno
e273d298b7 riscv: dts: spacemit: Add cpu scaling for Milk-V Jupiter
Enable CPU DVFS on Milk-V Jupiter by including the OPP tables and wiring the
CPU nodes to the CPU regulator supply.

Reviewed-by: Yixun Lan <dlan@kernel.org>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Link: https://patch.msgid.link/20260729160749.1621415-2-aurelien@aurel32.net
Signed-off-by: Yixun Lan <dlan@kernel.org>
2026-07-30 09:02:11 +00:00
Arnd Bergmann
7c8af4b5b6 i.MX SoC Changes for v7.3
- Fix OF/device_node reference count leaks in imx_src_init(),
   imx7_src_init(), and the AVIC interrupt controller driver
 - Drop obsolete/unused declarations from `arch/arm/mach-imx/common.h`
 - firmware: imx: scu: Refactor mailbox channel management to use a
   per-instance handle instead of a global one
 - firmware: imx: sm-misc: Add NULL check for `kmalloc` return value in
   syslog_show
 - soc: imx9: Add error handling for `devm_kasprintf` return value
 -----BEGIN PGP SIGNATURE-----
 
 iQHFBAABCgAvFiEEJS45w2QNr0ezLVaoNF3oRQ23YkwFAmpqVNkRHGZyYW5rLmxp
 QG54cC5jb20ACgkQNF3oRQ23Ykww1gv/e6t/433X0gei3wrBnqMGn+eGrW278YBK
 rFsTe8/UZgQpH689WHdsKRhgLPaAi9Tm2i8plyPfSZTNxiIvp564kBdpwi3BvpwI
 /83s0vRC+6tw4ngyR1awFfr8AP0F9KxSdk7KfWjDqGYXZ5pgIMXhch+196undVf+
 8wL5c2WWlBSkIaakQwhTEcmR43mkFHoKh9k3K/ub0PceqxdzodvlqcqaxqeVXLyC
 ZyQOR5mbVBTFLFtIj/JBKZQb6GsqsH41Yifk4udEtknx3mjoWMBhwqLiWvToJICo
 KkEyg7Dc5JlQ6CMp+uEjji5FpckRsYjMf/NfSYf7lDuUMJf+j7IHz14DnBh4b0g0
 gy6nq3vEBo/RpfaVe8v38j1IaA90gx7BJxLbh90+vJG4XvgP5tf5apTyyZ+9ecTZ
 Qd9Iz/TIbarD6sShBm0KIfsmS0Js+r/2yWt4rUDwDJZh/bYYMcbUJcfSM8Fd/RUV
 achgxY/zy88Vx65vrlOmL0CK8OoFcGra
 =uGEB
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmprEtoACgkQmmx57+YA
 GNma9A//ec/5uPQplFVfWrIMD1RwgpddbckUrvgulmPAsQ2rSnWma+rQdR/yXoZS
 sw5fP/0ebPpDMRojHcB7DGqEJ9f2IJJr+orpbBHGT4Cbznqq4+ZxyG7xvmrcojxW
 7rEHDSi0/qmYvxNhs3iXiWgUGXrpAMGBm/yw74I/6+zxAT10VtasLBXOlyPHagn0
 qxomPQKGSNlNhCdpJXaXu6fyNJohY5lwpxQLTEsYQPQksJQg9xe1DcIu5WOJHuVa
 Q2er7vzDf5ARChzGhJic0zxpnIX/UDRyGr6716Ay94DwELl6mdKCZvpBmdDpASPs
 P8BD9jVThVuH8bZonfhSlBIyhLNkF4aXKG/PG7nq4GMYrBmkzikSrBCY2kn4nKB5
 NVNpjAPTiabOw0oWtszk26Jnav6oMrw4RN4/oh3eKIEvoIfoMw9fKHrqLC9eXULo
 /joJQotoqmxm5U3mRY5K9n/FmUNPkbJwko9663ymk9vyLTkkwFnRV/zjeGXmNpda
 YxEH+9zCpUNK1nAvVtgIsiOJU+GXDiy0zJ8f7odk6uW2iQASpVEcBlf7m3+bM3rV
 +5y7elg/VUXqhYkGuIe9/fS0/jcW6Je2YD/U5czmJwfFURYuIzMJPbv1wf9Ato9R
 6UYGYnaE4DWaLzDNCGUXIG2GTtJLuZJhIZsULzg0CuoloJ7KEN0=
 =4zKa
 -----END PGP SIGNATURE-----

Merge tag 'imx-soc-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/frank.li/linux into soc/arm

i.MX SoC Changes for v7.3

- Fix OF/device_node reference count leaks in imx_src_init(),
  imx7_src_init(), and the AVIC interrupt controller driver
- Drop obsolete/unused declarations from `arch/arm/mach-imx/common.h`
- firmware: imx: scu: Refactor mailbox channel management to use a
  per-instance handle instead of a global one
- firmware: imx: sm-misc: Add NULL check for `kmalloc` return value in
  syslog_show
- soc: imx9: Add error handling for `devm_kasprintf` return value

* tag 'imx-soc-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/frank.li/linux:
  firmware: imx: scu: manage mailbox channels and global handle
  soc: imx9: devm_kasprintf error handling
  ARM: imx: Drop obsolete stuff from common.h
  firmware: imx: sm-misc: Add NULL check for kmalloc in syslog_show
  ARM: imx: fix device_node refcount leaks in imx7_src_init()
  ARM: imx: fix device_node refcount leak in imx_src_init()
  ARM: imx: avic: Fix OF node reference leaks

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-07-30 11:01:06 +02:00
Arnd Bergmann
111b787c9e Qualcomm Arm64 DeviceTree fixes for 7.2
Correct the ESPI interrupt specifiers for PCIe SMMU and QUP nodes in
 Glymur.
 
 Correct the GIC address cells on Monaco, to avoid DeviceTree validation
 failures introduces in v7.2-rc1.
 
 Drop the secondary interrupt from the GPU SMMU on Purwa.
 
 Fix the invalid PDC IRQ mapping for SC8280XP to ensure associated GPIOs
 have functional interrupt handling. Correct the EC interrupt on Huawei
 Matebook E Go.
 
 Reduce the depth of the requested sleep state for SDM850-based Lenovo
 Yoga C630, to work around the regression of suspend crashing the
 machine.
 
 Adjust the IPA IMEM address on SM8650, to avoid clobbering the wrong
 memory region in IMEM.
 
 Correct the DSI1 PHY reference clock on Eliza, to ensure that the right
 clock rate is used.
 -----BEGIN PGP SIGNATURE-----
 
 iQJCBAABCgAsFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmpqsW4OHGJqb3JuQGty
 eW8uc2UACgkQCx85Pw2ZrcU6fQ//bZlL/BVwOfu33LliZ6JCBOpejPmKsLjmKH+J
 /DoZPUSeGhADMGke75/GltV5BqEeHkpO3eevnbj6AGnW4ch3VjJB4SbN/KBb6LCy
 7NQV7DQgVwz2GKuhQ4HpoSb4VrKC3g+oWV1Sj85ztVAvgXDSHBDbohcxPZZDfq0H
 YIPYOmqhJYNpt/MLdWNXrXczxrI5v0bNAvByX5rdu3GbGcUuXbVRZgkVGXWgieHX
 KoYmR5k+MbEVXs+uz6GB13i/TmjWJNCKEma5F44lYIjKHXWgBNSQWlvIXcOvHbLZ
 2B9UGgstJWDrqgslPIpJOh1fwJQyTG0NjDytrnzDCXC3qGVtf0gjgpsRIWrInVUX
 dL8cZmmzqr+dRSOn+awMyFuSh7gdUkHKmRRCjxLXqe1T0hKx5H4XPVtHiDUtoAQQ
 hkQyc247+S/t7MyOBK0nCi7u+JKId98xzedJAj0Y6+RGGdeJ92TTiP/eOpA1ODkX
 D6jr5Semx+bgyTrt4r7VwhVPobG9PmDKXiDH1udQeaQohjlUrgcYE2AFAj6LDUjy
 mTm6CMzhRNLQM2Z0O+0b5J3Nq72wts/EbQzxTCv4q3xhpBUx62vmngyxy8Ppsjw5
 wQiYqTVQQJYjQ3E2Ivfi9Gs/bIqpCwYpwuDsBWagDJcvb4t1kVhq3AFrRfxklqbv
 WRlAmms=
 =ajjy
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmprEhIACgkQmmx57+YA
 GNkgSxAAgbcm+LMbhD4/6lsA6nOkHrgdpFI5qLJnl2GiL72Cg1T554umf2L/i6yh
 I46wQpSA+Tiz1RyT7Z6bFmH0WffpG+rxkqbjtNyvkog2hK4Jf3/U01gf08QHT1JY
 +TzzNgmg3AerM0olBkcNzjk10DApa5TEGrf6ztTyNQFYAotunvRc/Hn9QdZbu3G6
 RiBD1gVJ+M8W1sIMTJusSaHaPM46wWHTVyl3Dj1+TkEewtMOy3eeYJbuZhI82dAe
 RoR5zqOK3q2p1zdqCONho/iPLpVm1DtuKARojYB/v7yfZVGMhnRq0Iv8POuGdqto
 YYyCmiuMmSYjxSp98Gzdp7UCTrSagS5Jt7KTjB1MO0eIxQqR0NmA1ESTteKfEHW7
 cmTYYoJcMYf0kSjhSOZF+EQgfN9Fu1f1cUXx/fk6yU2Csl4kyWAzH6l/UH6N3Dty
 WP16zjG0fbBkYhYre1frPOlcvgy4N+Wlq1VC+bviEUG3kLZ+ce1SrZWtkNJASK/d
 CYynHU+sdczG8PVhc+erRfCys4Vf55/4soUc68Dr4sT6DRo+HU2n4k4ms0tH8VFP
 BbOSNCZe2jfWvv728CNfetVIsGaGWT68sysix7U/vEN5cy6olC6oPe0fwFnSHoR9
 ZMyKpRC7gfxbTgsvhxCKl5sR9/IydsjvLiLvLtZpH3K6fqimxwM=
 =zvJZ
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm64-fixes-for-7.2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes

Qualcomm Arm64 DeviceTree fixes for 7.2

Correct the ESPI interrupt specifiers for PCIe SMMU and QUP nodes in
Glymur.

Correct the GIC address cells on Monaco, to avoid DeviceTree validation
failures introduces in v7.2-rc1.

Drop the secondary interrupt from the GPU SMMU on Purwa.

Fix the invalid PDC IRQ mapping for SC8280XP to ensure associated GPIOs
have functional interrupt handling. Correct the EC interrupt on Huawei
Matebook E Go.

Reduce the depth of the requested sleep state for SDM850-based Lenovo
Yoga C630, to work around the regression of suspend crashing the
machine.

Adjust the IPA IMEM address on SM8650, to avoid clobbering the wrong
memory region in IMEM.

Correct the DSI1 PHY reference clock on Eliza, to ensure that the right
clock rate is used.

* tag 'qcom-arm64-fixes-for-7.2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  arm64: dts: qcom: eliza: Fix DSI1 phy reference clock rate
  arm64: dts: qcom: sdm850-lenovo-yoga-c630: lower PSCI cluster idle
  arm64: dts: qcom: sc8280xp: gaokun3: correct EC interrupt pin
  arm64: dts: qcom: sc8280xp: add several missing pdc map entries
  arm64: dts: qcom: sm8650: Fix IPA IMEM slice
  arm64: dts: qcom: monaco: Add default GIC address cells
  arm64: dts: qcom: purwa: Fix GPU IOMMU property
  arm64: dts: qcom: glymur: fix QUP serial engine IRQs
  arm64: dts: qcom: glymur: fix PCIe SMMU interrupts

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-07-30 10:57:49 +02:00
Aurelien Jarno
a65e9b73b0 riscv: dts: spacemit: k1-bananapi-cm6: fix maximum CPU core voltage
On the Banana Pi BPI-CM6 module, the buck1 and buck2 voltage regulators,
which supply the CPU core voltage, are configured with a maximum output
voltage of 3.45V, while the highest operating point requires only
1.050V. This means that a kernel bug, OPP misconfiguration, or
privileged userspace could request a voltage above the safe operating
limit, causing possible permanent CPU damage.

Set the maximum regulator voltage to 1.050V instead.

Fixes: 46a8c01700 ("riscv: dts: spacemit: k1: Add Banana Pi BPI-CM6 IO board")
Link: https://sashiko.dev/#/message/20260728211020.1248676-2-aurelien%40aurel32.net
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Yixun Lan <dlan@kernel.org>
Link: https://patch.msgid.link/20260729150722.1598630-7-aurelien@aurel32.net
Signed-off-by: Yixun Lan <dlan@kernel.org>
2026-07-30 08:56:12 +00:00
Aurelien Jarno
d66267c350 riscv: dts: spacemit: k1-orangepi-r2s: fix maximum CPU core voltage
On the OrangePi R2S board, the buck1 and buck2 voltage regulators, which
supply the CPU core voltage, are configured with a maximum output
voltage of 3.45V, while the highest operating point requires only
1.050V. This means that a kernel bug, OPP misconfiguration, or
privileged userspace could request a voltage above the safe operating
limit, causing possible permanent CPU damage.

Set the maximum regulator voltage to 1.050V instead.

Fixes: 793cc54475 ("riscv: dts: spacemit: enable PMIC on OrangePi R2S")
Link: https://sashiko.dev/#/message/20260728211020.1248676-2-aurelien%40aurel32.net
Cc: stable@vger.kernel.org
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Yixun Lan <dlan@kernel.org>
Link: https://patch.msgid.link/20260729150722.1598630-6-aurelien@aurel32.net
Signed-off-by: Yixun Lan <dlan@kernel.org>
2026-07-30 08:56:12 +00:00
Aurelien Jarno
f045253a03 riscv: dts: spacemit: k1-musepi-pro: fix maximum CPU core voltage
On the MusePi Pro board, the buck1 and buck2 voltage regulators, which
supply the CPU core voltage, are configured with a maximum output
voltage of 3.45V, while the highest operating point requires only
1.050V. This means that a kernel bug, OPP misconfiguration, or
privileged userspace could request a voltage above the safe operating
limit, causing possible permanent CPU damage.

Set the maximum regulator voltage to 1.050V instead.

Fixes: e2dac7c7a3 ("riscv: dts: spacemit: k1-musepi-pro: add PMIC and power infrastructure")
Link: https://sashiko.dev/#/message/20260728211020.1248676-2-aurelien%40aurel32.net
Cc: stable@vger.kernel.org
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Yixun Lan <dlan@kernel.org>
Link: https://patch.msgid.link/20260729150722.1598630-5-aurelien@aurel32.net
Signed-off-by: Yixun Lan <dlan@kernel.org>
2026-07-30 08:56:12 +00:00
Aurelien Jarno
ae0c38f0a2 riscv: dts: spacemit: k1-orangepi-rv2: fix maximum CPU core voltage
On the OrangePi RV2 board, the buck1 and buck2 voltage regulators, which
supply the CPU core voltage, are configured with a maximum output
voltage of 3.45V, while the highest operating point requires only
1.050V. This means that a kernel bug, OPP misconfiguration, or
privileged userspace could request a voltage above the safe operating
limit, causing possible permanent CPU damage.

Set the maximum regulator voltage to 1.050V instead.

Fixes: c02c047b92 ("riscv: dts: spacemit: Define the P1 PMIC regulators for OrangePi RV2")
Link: https://sashiko.dev/#/message/20260728211020.1248676-2-aurelien%40aurel32.net
Cc: stable@vger.kernel.org
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Yixun Lan <dlan@kernel.org>
Link: https://patch.msgid.link/20260729150722.1598630-4-aurelien@aurel32.net
Signed-off-by: Yixun Lan <dlan@kernel.org>
2026-07-30 08:56:12 +00:00
Aurelien Jarno
56a77ddae7 riscv: dts: spacemit: k1-milkv-jupiter: fix maximum CPU core voltage
On the Milk-V Jupiter board, the buck1 and buck2 voltage regulators,
which supply the CPU core voltage, are configured with a maximum output
voltage of 3.45V, while the highest operating point requires only
1.050V. This means that a kernel bug, OPP misconfiguration, or
privileged userspace could request a voltage above the safe operating
limit, causing possible permanent CPU damage.

Set the maximum regulator voltage to 1.050V instead.

Fixes: 7d307daa12 ("riscv: dts: spacemit: Define the P1 PMIC regulators for Milk-V Jupiter")
Link: https://sashiko.dev/#/message/20260728211020.1248676-2-aurelien%40aurel32.net
Cc: stable@vger.kernel.org
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Yixun Lan <dlan@kernel.org>
Link: https://patch.msgid.link/20260729150722.1598630-3-aurelien@aurel32.net
Signed-off-by: Yixun Lan <dlan@kernel.org>
2026-07-30 08:56:12 +00:00
Aurelien Jarno
b496282ee4 riscv: dts: spacemit: k1-bananapi-f3: fix maximum CPU core voltage
On the Banana Pi BPI-F3 board, the buck1 and buck2 voltage regulators,
which supply the CPU core voltage, are configured with a maximum output
voltage of 3.45V, while the highest operating point requires only
1.050V. This means that a kernel bug, OPP misconfiguration, or
privileged userspace could request a voltage above the safe operating
limit, causing possible permanent CPU damage.

Set the maximum regulator voltage to 1.050V instead.

Fixes: 09a412d397 ("riscv: dts: spacemit: define regulator constraints")
Link: https://sashiko.dev/#/message/20260728211020.1248676-2-aurelien%40aurel32.net
Cc: stable@vger.kernel.org
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Yixun Lan <dlan@kernel.org>
Link: https://patch.msgid.link/20260729150722.1598630-2-aurelien@aurel32.net
Signed-off-by: Yixun Lan <dlan@kernel.org>
2026-07-30 08:56:12 +00:00
Arnd Bergmann
0e1ffa6f9d MAINTAINERS: ARM/FREESCALE: Update for v7.2
- Merge Layerscape entry into i.MX entry
 -----BEGIN PGP SIGNATURE-----
 
 iQHFBAABCgAvFiEEJS45w2QNr0ezLVaoNF3oRQ23YkwFAmpqVlIRHGZyYW5rLmxp
 QG54cC5jb20ACgkQNF3oRQ23YkwbuAwApkP+9LYp8BY8yvMyaQMZUzb3zVnb5NR5
 sIHFYivq4wbFF1SvUeSvZyA00nfVpl8GibClWXoIyIqN0Kg918cI8iTftEjczBlr
 1KYB/42Gi1w+zbMduV5hzgkqOLhKBoqa9ZEVYYBmJxbAlihftsJOPSG3CPmmQDZ8
 RJMnvnMlt9KF0xuSSn5lKkhgjrsocDn7GINJl/pQhzP725V66o5XKilL7PPUzbfA
 nSRQtUWHfeqr8goYIrbwibYI4OWktHgvHjytHRrDq1jajf0mUBGWMlYEcE3HslFi
 zbQ2JHE0DjFklO/MCfLe75YcV8E+2djm+XY6uf7QDTpGheayI8Ov2OC/vqTH+Bqq
 s+yQaVbVLgfiSx/aSjAwwbP493vbD2ZD6txoiLJlJTPMet7KQmgCiQz8lV+d0aJg
 xjWEglSzGErjzaxOoPKIG2IHclCZ5imdOaIxRucbA3bPryJ2WEfsKh6wnuXvvnA3
 urdJt3YBaEi7hJu/hfk4/Pe1rZc2+vTs
 =Wxwj
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmprENAACgkQmmx57+YA
 GNmuORAAigMjBLDOm+XJDXra/xzj06DcLaoi5KKnPj8Yol9UMGX4FnavBYa7OEPO
 A7VGZbTjOHDeSvGDH2eQLz2OUuywFxnXmhtRUfwoihq0mlKjJKnAHKutCJXQseCa
 buNt4cIwXR1yP82y5/Ap63XuXzTMoYm6064TyWSIh1ZGUVGsgD358/pz8zKPkuQZ
 Sm9LdeJ7R7BzLiX3Boq3VZszydSwhb3ecVTgR8iz41naOU8zU/gygXdMf70RjO14
 xc4lwrkImYlSyQuRrKhvt8lyGUVxilaZwYObdQGIhvUliXT698N4pkrBfjZZA1W9
 HjrMMIH5YY0iccLMfdxr6ZDei0te93zqeZRtNdhoIrp9Wu3HlNwQVcsmHo/5zp1v
 MvsfKzfWvCgIePHWXO86JOlQ6ulo7hktxL6y2bgjh3fqJYDMagQUvb2yFIjrYUkT
 2VzKky9lyqGnkreDgo3RsxgDKq2qQkCPrtJcm2bL42hwq2NXT037i5oT6yP/e6pg
 uoqwzuSnAnM56nYYkyALYPUpA2xHVoEa72HdLHqFAu40wM4WyU0DcKL7XKd3Vm16
 pjMerhAITeWb/UHa25fORmrNhlzKJHLcgQxpDIuKhyFDP8U7quq5w8Wvbyy14qxa
 SBNIHPiSFcxDz+vYUk+mWxO9HeY3lXdvRgI/yStxa4rBFa2C1Vs=
 =1hK0
 -----END PGP SIGNATURE-----

Merge tag 'imx-maintainers-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/frank.li/linux into arm/fixes

MAINTAINERS: ARM/FREESCALE: Update for v7.2

- Merge Layerscape entry into i.MX entry

* tag 'imx-maintainers-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/frank.li/linux:
  MAINTAINERS: ARM/FREESCALE: merge Layerscape entry into i.MX entry

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-07-30 10:52:30 +02:00
Richard Weinberger
285d820463 crypto: af_alg - Allow cbc(paes)
Commit 7524070f26 ("crypto: af_alg - Drop support for off-CPU cryptography")
breaks a special use case.  The cbc-paes-caam driver implements the
algorithm cbc(paes), it offers a way to use AES in CBC mode with key
material unknown to userspace.  Instead of an AES key a CAAM BLOB is
passed to the kernel.  So, this crypto operation cannot be
implemented in a userspace library and needs always help from the
kernel.

Explicitly allow this use case.

Cc: Demi Marie Obenour <demiobenour@gmail.com>
Suggested-by: Eric Biggers <ebiggers@kernel.org>
Fixes: 7524070f26 ("crypto: af_alg - Drop support for off-CPU cryptography")
Signed-off-by: Richard Weinberger <richard@nod.at>
Reviewed-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2026-07-30 17:44:21 +10:00
Pengpeng Hou
ec76205786
soc: mediatek: add missing MODULE_DEVICE_TABLE()
The driver has an OF match table wired to .of_match_table, but does
not export the table with MODULE_DEVICE_TABLE().

Add the missing MODULE_DEVICE_TABLE(of, ...) entry so module alias
information is generated for OF based module autoloading.

This is a source-level fix.  It does not claim dynamic hardware
reproduction; the evidence is the driver-owned match table, its use by
the platform driver, and the missing module alias publication.

Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn>
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
2026-07-30 09:41:54 +02:00
AngeloGioacchino Del Regno
dd63310b94
soc: mediatek: mtk-mmsys: Use MMSYS_ROUTE() in default routing table
All of the mtk_mmsys_routes tables for all SoCs were converted to
use the MMSYS_ROUTE() macro but the default one used for MT2701,
MT2712 and SoCs from that generation was not: convert this one as
well.

This brings no functional change.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
2026-07-30 09:41:54 +02:00
AngeloGioacchino Del Regno
2fa28edca0
soc: mediatek: mtk-mmsys: Rework routes to specify component ID
In preparation for a refactoring of multimedia related MediaTek
drivers, including mmsys, mutex and mediatek-drm, rework all of
the MMSYS routes to specify a hardware component instance number
(or "SubID") alongside the hardware component type.

This also is one step of preparation towards the removal of the
catch-all mtk_ddp_comp_id enumeration and towards the migration
from a predefined-coupling static hardware component IDSubID
mapping (carrying around a very long enumeration and also some
multiple big arrays in mediatek-drm) to a more flexible map of
Component ID (Type) decoupled from Component SubID (HW Instance)
as then, anyway, techniques to handle components are always the
same on a type basis.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
2026-07-30 09:41:54 +02:00
Thorsten Blum
6b36f13891 crypto: starfive - use scatterlist length before DMA mapping
Using sg_dma_len() is only valid after mapping a scatterlist with
dma_map_sg(). However, starfive_aes_aead_do_one_req() uses it before
mapping the scatterlist.

Use the original scatterlist length because the DMA length has not been
populated yet when CONFIG_NEED_SG_DMA_LENGTH=y.

Fixes: 7467147ef9 ("crypto: starfive - Use dma for aes requests")
Cc: stable@vger.kernel.org
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2026-07-30 17:30:50 +10:00
Thorsten Blum
9c75402286 crypto: qce - fix error path in devm_qce_register_algs
If ops->register_algs() fails, the error path repeatedly calls the same
ops->unregister_algs() from the failed registration. Use the loop index
to unregister the previously registered algorithms instead.

Fixes: e80cf84b60 ("crypto: qce - unregister previously registered algos in error path")
Cc: stable@vger.kernel.org
Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2026-07-30 17:30:50 +10:00
Florian Westphal
1132c38927 rhashtable: fix false-positive lockdep splat on rhltable destruction
Blamed commit removed ht->mutex usage during destruction but forgot to
switch rhashtable_free_one() to rcu_dereference_raw(), this triggers a
lockdep splat when an rhltable gets zapped.

Fixes: 09ae540e1d ("rhashtable: drop ht->mutex in rhashtable_free_and_destroy()")
Signed-off-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2026-07-30 17:30:50 +10:00
Vladislav Dronov
360f2974fc crypto: tegra - fix rctx->cryptlen calculation in tegra_gcm_do_one_req()
Perform rctx->cryptlen calculation in tegra_gcm_do_one_req() the same way
it is done in tegra_ccm_crypt_init(). The current formulae may lead to a
crash if a caller does not call tegra_gcm_setauthsize() and so ctx->authsize
remains zero. Then a decrypt operation with incorrect rctx->cryptlen will
lead to a write beyound rctx->dst_sg buffer.

As a follow-up cleanup delete struct tegra_aead_ctx->authsize field since
it appears to be completely unused. Also simplify tegra_ccm_setauthsize()
and tegra_gcm_setauthsize() functions respectively.

Fixes: 0880bb3b00 ("crypto: tegra - Add Tegra Security Engine driver")
Signed-off-by: Vladislav Dronov <vdronov@redhat.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2026-07-30 17:30:50 +10:00
Herbert Xu
438f4896f7 crypto: ccm - Set rfc4309 maxauthsize from child
Set the maxauthsize of rfc4309 using that of the child algorithm.

Fixes: 4a49b499df ("[CRYPTO] ccm: Added CCM mode")
Reported-by: Seohyeon Maeng <bioloidgp@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2026-07-30 17:30:50 +10:00
Sang-Heon Jeon
78fac571b0 mm/mm_init: remove unnecessary initialization of pgdat->per_cpu_nodestats
free_area_init_node() sets pgdat->per_cpu_nodestats to NULL and later
calls free_area_init_core(), which unconditionally overwrites it with
&boot_nodestats. Nothing reads the field in between, so the store has
no effect.

Remove unnecessary initialization. No functional change.

Signed-off-by: Sang-Heon Jeon <ekffu200098@gmail.com>
Link: https://patch.msgid.link/20260729155143.177790-1-ekffu200098@gmail.com
Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
2026-07-30 10:04:45 +03:00
Mika Westerberg
9cbc63400f thunderbolt: Initialize ->domain_released completion before it is being used
Both Woody and Marek reported following crash:

 BUG: unable to handle page fault for address: fffffffffffffff8
 Call Trace:
  <TASK>
  device_release+0x43/0x90
  kobject_cleanup+0x3c/0x180
  icm_probe+0x19c/0x550 [thunderbolt]
  nhi_probe+0x1a4/0x370 [thunderbolt]
  local_pci_probe+0x41/0x90
  pci_call_probe+0x5b/0x1a0
  ...

This only triggers on the error path when icm_probe() fails and the
domain structure is released, it tries to complete() uninitialized
completion.

Fix this by initializing the completion earlier.

Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Closes: https://lore.kernel.org/linux-usb/amdezCBiW4fd_DuB@mail-itl/
Reported-by: Woody Suwalski <terraluna977@gmail.com>
Tested_by: Woody Suwalski <terraluna977@gmail.com>
Closes: https://lore.kernel.org/linux-usb/62caf7f8-b403-d0dd-15bc-b31b56f71c28@gmail.com/
Fixes: f5cc545f59 ("thunderbolt: Wait for tb_domain_release() to complete when driver is removed")
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2026-07-30 06:47:32 +02:00
Hongyan Xu
e5954d3031 platform/chrome: cros_ec_debugfs: Unregister panic notifier
cros_ec_debugfs_probe() registers notifier_panic with the EC panic
notifier chain. The remove path tears down debugfs and the console log,
but leaves the notifier registered. A later panic notification can call
back into the removed instance and queue work that accesses released
data.

Unregister the panic notifier before tearing down the debugfs and
console log state.

This issue was found by a static analysis tool.

Fixes: d90fa2c64d ("platform/chrome: cros_ec: Poll EC log on EC panic")
Signed-off-by: Hongyan Xu <getshell@seu.edu.cn>
Link: https://lore.kernel.org/r/f3ab74ef8034be63bb45a325f3d54656d658817f.1785320940.git.getshell@seu.edu.cn
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
2026-07-30 01:43:14 +00:00
Jakub Kicinski
dd16f1b572 Merge branch 'net-dsa-realtek-use-devm_mutex_init'
Luiz Angelo Daros de Luca says:

====================
net: dsa: realtek: use devm_mutex_init

This series fixes mutex teardown in the Realtek DSA drivers.

With CONFIG_DEBUG_MUTEXES enabled, mutex_destroy() must be called before
the mutex is discarded. Using devm_mutex_init() lets the driver core
handle that automatically.

The changes are split into individual commits based on the feature that
introduced each lock to allow proper backports to stable trees.
====================

Link: https://patch.msgid.link/20260726-realtek_mutext-v2-0-5d62ba998791@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-07-29 18:42:31 -07:00
Luiz Angelo Daros de Luca
442ecdc83d net: dsa: realtek: use devm_mutex_init for l2_lock
With CONFIG_DEBUG_MUTEXES enabled, mutex_destroy() needs to be called
before the lock is discarded. Use devm_mutex_init() instead so the
cleanup is handled automatically.

Fixes: 336e3e4a1a ("net: dsa: realtek: rtl8365mb: add FDB support")
Reviewed-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Reviewed-by: Alvin Šipraga <alvin.sipraga@analog.com>
Link: https://patch.msgid.link/20260726-realtek_mutext-v2-4-5d62ba998791@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-07-29 18:42:27 -07:00
Luiz Angelo Daros de Luca
a95f3e9b89 net: dsa: realtek: use devm_mutex_init for vlan_lock
With CONFIG_DEBUG_MUTEXES enabled, mutex_destroy() needs to be called
before the lock is discarded. Use devm_mutex_init() instead so the
cleanup is handled automatically.

Fixes: 9da2c8672f ("net: dsa: realtek: rtl8365mb: add VLAN support")
Reviewed-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Reviewed-by: Alvin Šipraga <alvin.sipraga@analog.com>
Link: https://patch.msgid.link/20260726-realtek_mutext-v2-3-5d62ba998791@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-07-29 18:42:27 -07:00
Luiz Angelo Daros de Luca
050e07f876 net: dsa: realtek: use devm_mutex_init for regmap lock
With CONFIG_DEBUG_MUTEXES enabled, mutex_destroy() needs to be called
before the lock is discarded. Use devm_mutex_init() instead so the
cleanup is handled automatically.

Fixes: 907e772f6f ("net: dsa: realtek: allow subdrivers to externally lock regmap")
Reviewed-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Reviewed-by: Alvin Šipraga <alvin.sipraga@analog.com>
Link: https://patch.msgid.link/20260726-realtek_mutext-v2-2-5d62ba998791@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-07-29 18:42:27 -07:00
Luiz Angelo Daros de Luca
70fd0cf29b net: dsa: realtek: rtl8365mb: use devm_mutex_init for mib_lock
With CONFIG_DEBUG_MUTEXES enabled, mutex_destroy() needs to be called
before the lock is discarded. Use devm_mutex_init() instead so the
cleanup is handled automatically.

Fixes: 4af2950c50 ("net: dsa: realtek-smi: add rtl8365mb subdriver for RTL8365MB-VC")
Reviewed-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Reviewed-by: Linus Walleij <linusw@kernel.org>
Reviewed-by: Alvin Šipraga <alvin.sipraga@analog.com>
Link: https://patch.msgid.link/20260726-realtek_mutext-v2-1-5d62ba998791@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-07-29 18:42:27 -07:00
Hongyan Xu
5d187600c4 platform/chrome: cros_ec_debugfs: Clean up console log on probe failure
Add a dedicated error label for failures after successful console log
setup.

Fixes: d90fa2c64d ("platform/chrome: cros_ec: Poll EC log on EC panic")
Signed-off-by: Hongyan Xu <getshell@seu.edu.cn>
Link: https://lore.kernel.org/r/c00974953a1b952f51f0f021d7f9fad134159909.1785320940.git.getshell@seu.edu.cn
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
2026-07-30 01:40:34 +00:00
Wei Fang
54ad7ea45d ptp: netc: fix potential interrupt storm caused by incorrect unbind order
In netc_timer_remove(), hardware interrupts are disabled by clearing
TMR_TEMASK before ptp_clock_unregister() is called. This may cause a
race condition during driver unbind that could leave hardware interrupts
active. For example, a concurrent PTP_CLK_REQ_EXTTS ioctl can re-enable
TMR_TEMASK after it has been cleared, leaving a pending hardware
interrupt when the driver unbinds.

Since the NETC Timer does not support PCIe FLR, hardware state is not
reset during probe. When the driver is rebound and the IRQ is registered,
the pending interrupt fires immediately. At that point priv->tmr_emask
is still zero, so netc_timer_isr() does not clear the interrupt status
and unconditionally returns IRQ_HANDLED, resulting in an uninterruptible
infinite interrupt storm.

Fix this in several ways. First, request the IRQ with IRQF_NO_AUTOEN so
it is not enabled when request_irq() runs, and clear TMR_TEMASK in
netc_timer_init() before enabling it. The IRQ is only enabled at the end
of probe once the timer has been reprogrammed and the PTP clock has been
registered. This ensures a stale pending interrupt from a previous unbind
or an unclean shutdown cannot be delivered before the driver is fully
initialized.

Second, in netc_timer_remove() call disable_irq() before
ptp_clock_unregister() and move the TMR_TEMASK/TMR_CTRL clearing after
it. disable_irq() masks the line and waits for any in-flight
netc_timer_isr() to finish, so no ISR can dereference priv->clock after
ptp_clock_unregister() has freed it. Unregistering the PTP clock before
clearing the mask also guarantees that no in-flight or concurrent ioctl
can re-enable hardware interrupts.

Finally, return IRQ_NONE from netc_timer_isr() when the masked event
status is zero, so the kernel's spurious interrupt detection can disable
a stuck line instead of looping forever.

Fixes: 671e266835 ("ptp: netc: add periodic pulse output support")
Reported-by: Sashiko <sashiko-bot@kernel.org>
Closes: https://sashiko.dev/#/patchset/20260720012508.23227-1-wei.fang%40oss.nxp.com
Signed-off-by: Wei Fang <wei.fang@nxp.com>
Link: https://patch.msgid.link/20260727060348.1887464-1-wei.fang@oss.nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-07-29 17:54:06 -07:00
Aditya Garg
e67cc80b50 net: mana: Return error code from mana_create_rxq()
mana_create_rxq() returns a struct mana_rxq pointer and returns NULL on
any failure. The caller, mana_add_rx_queues(), cannot tell what went
wrong and hardcodes the error as -ENOMEM. As a result the actual failure
reported by the lower layers (for example -EPROTO from a failed HW
request) is masked and every RX queue creation failure looks like an
out-of-memory error.

Return an ERR_PTR() encoded error code from mana_create_rxq() on failure
instead of NULL. The caller now propagates the returned error code
directly instead of substituting -ENOMEM.

Fixes: ca9c54d2d6 ("net: mana: Add a driver for Microsoft Azure Network Adapter (MANA)")
Signed-off-by: Aditya Garg <gargaditya@linux.microsoft.com>
Reviewed-by: Joe Damato <joe@dama.to>
Link: https://patch.msgid.link/20260727113759.2881500-1-gargaditya@linux.microsoft.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-07-29 17:46:35 -07:00
Jakub Kicinski
4107af9967 Merge branch 'net-openvswitch-fix-skb-leak-on-flow-key-update-failure'
Ilya Maximets says:

====================
net: openvswitch: fix skb leak on flow key update failure

Fixes for two issues reported by Sashiko while reviewing other patches.
The root cause is the same, fixes and the Fixes are slightly different,
so two separate patches.
====================

Link: https://patch.msgid.link/20260727181851.306076-1-i.maximets@ovn.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-07-29 17:42:35 -07:00
Ilya Maximets
bc62e843bc net: openvswitch: fix skb leak on flow key update failure during ct
ovs_ct_execute() always steals or frees the skb on failure while
ovs_flow_key_update() does not.  So, if it fails and we return right
away, the skb ends up leaked.

Fix that by breaking instead and letting the common error handling
code at the bottom of the loop to free the skb properly.

This is a very unlikely scenario as it requires the packet to become
unparseable by applying a set of actions on a previously parseable skb,
but should be fixed nevertheless.

Reported by Sashiko.

Fixes: ec0d043d05 ("openvswitch: Ensure flow is valid before executing ct")
Cc: stable@vger.kernel.org
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Reviewed-by: Aaron Conole <aconole@redhat.com>
Link: https://patch.msgid.link/20260727181851.306076-3-i.maximets@ovn.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-07-29 17:42:33 -07:00
Ilya Maximets
e1cf066244 net: openvswitch: fix skb leak on flow key update failure during recirculation
do_execute_actions() returns right away when execute_recirc() fails on
the last action as it assumes this function always takes ownership of
the skb when 'last' is true.  But when the flow key update fails, the
function doesn't free the skb and it ends up leaked.

This is a very unlikely scenario as it requires the packet to become
unparseable by applying a set of actions on a previously parseable skb,
but should be fixed nevertheless.

Reported by Sashiko.

Fixes: 971427f353 ("openvswitch: Add recirc and hash action.")
Cc: stable@vger.kernel.org
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Reviewed-by: Aaron Conole <aconole@redhat.com>
Link: https://patch.msgid.link/20260727181851.306076-2-i.maximets@ovn.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-07-29 17:42:33 -07:00
Nazim Amirul
b041ed62aa net: stmmac: Fix E2E delay mechanism
For E2E delay mechanism, "received DELAY_REQ without timestamp" error
messages show up for dwmac v3.70+ and dwxgmac IPs.

This issue affects socfpga platforms, Agilex7 (dwmac 3.70) and
Agilex5 (dwxgmac). According to the databook, to enable timestamping
for all events, the SNAPTYPSEL bits in the MAC_Timestamp_Control
register must be set to 2'b01, and the TSEVNTENA bit must be cleared
to 0'b0.

Commit 3cb958027c ("net: stmmac: Fix E2E delay mechanism") already
addresses this problem for all dwmacs above version v4.10. However,
same holds true for v3.70 and above, as well as for dwxgmac. Updates
the check accordingly.

Fixes: 14f347334b ("net: stmmac: Correctly take timestamp for PTPv2")
Fixes: f2fb6b6275 ("net: stmmac: enable timestamp snapshot for required PTP packets in dwmac v5.10a")
Fixes: 3cb958027c ("net: stmmac: Fix E2E delay mechanism")
Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
Signed-off-by: Rohan G Thomas <rohan.g.thomas@altera.com>
Signed-off-by: Nazim Amirul <muhammad.nazim.amirul.nazle.asmade@altera.com>
Link: https://patch.msgid.link/20260728060904.31993-1-muhammad.nazim.amirul.nazle.asmade@altera.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-07-29 17:39:34 -07:00