Commit graph

1,264,895 commits

Author SHA1 Message Date
David Howells
ba132d841d rxrpc: Record the Tx serial in the rxrpc_txbuf and retransmit trace
Each Rx protocol packet contains a per-connection monotonically increasing
serial number used to correlate outgoing messages with their replies -
something that can be used for RTT calculation.

Note this value in the rxrpc_txbuf struct in addition to the wire header
and then log it in the rxrpc_retransmit trace for reference.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: "David S. Miller" <davem@davemloft.net>
cc: Eric Dumazet <edumazet@google.com>
cc: Jakub Kicinski <kuba@kernel.org>
cc: Paolo Abeni <pabeni@redhat.com>
cc: linux-afs@lists.infradead.org
cc: netdev@vger.kernel.org
2024-02-29 15:49:56 +00:00
Arnd Bergmann
34eb16dedb New boards: Powkiddy RGB10MAX3, Pine64 PineTab2, NanoPi R6C+R6S, Anbernic
RG-ARC S and RG-ARC D.
 New peripherals: rs485 on Theobroma Systems boards, usb3 on Indidroid Nova,
 Edgeble NCM6A (usb2, m.2, ethernet, wifi, cpu-regulator), Rock-5b rfkill
 for wifi, cache information for rk3399.
 Snmaller DT fixes (hdmi nodes, aliases, redundant card-detect gpios, max-
 frequency for spi-flashes on rock-pi 4 boards, missing pmu-io-domains on
 Ringneck)
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmXWfhUQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgUVICACa6sSVP4b+X58wYaYQ51khrgtXm0FqrXPV
 WzilDDZg3zf8QDaLJsUsKkZH1vq6FzwaWeJ0mOuhLArHpRuovUrAmcGgZeUPBF3I
 a3aWf0ZzpiwGPBJI/VaQ4irhuF2SsMnnLKt1izCSJ56/0WmJwu6/EpLkVi16e/ZW
 hPdnMKU7G0QTRkDYwcsVY3tjd2zqKNXlj0ut/nF4SU7Siu8epU0Lpy8kj8VW2/2E
 j+RQrgEtQN9onMAB5YG9pHTfU2kR9eSCV7M8qSdOwo2cwAziwgSqHiRl1peelzKO
 KfTasFWTeze+t9sMS7txIHRSrJSxmtIALQENjfqrUZKm6RO2MPtW
 =eM2B
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmXgoTUACgkQYKtH/8kJ
 UiffFA//XRP2sJpA9cfySME1Q5XxPFcd7fOLzDVEPVobVmNSHAEpstT3J8MFP32H
 2rB2gyoxmSq8D/nV2rHnpx7poM+0Yu9do4+1av4cv8PqIUSY8IQly93WoaTVPz61
 0GkiIHOpIeJ0aCv1rGAoQZD/eRhej3YwvaMHUeTtP5HoP7Jruof5VHBwQ51Jezyp
 dG0DxWAHbkFJrZ8UI1fB0bGYNWPJeHDiiS5cEFQGFRP+4xFM07jjPziLKAVidtqS
 OgF+Qt93HkbFsPAFYV43dOiooU8Xz+MkFZGKCjij+XOkQbVvGKGTCTvNc8ubwqeG
 zIDMCvZ9my+DJCXrC2357/LkxLmuirraRHyaB8tkFDmAh92wLniID2QKGDmCt9ra
 OCvcwz/0jXPmUaQHaL5bmyz/jteBWEKi+mV8dDpZH2GDvT3MRo+dwmoHnI55OgEI
 KumsfAehO2otFk4j3eCFP3TVGuMCTkNvm78fYXN9boKDL1Auco0w9YQGpA9neUkj
 D2Ptmp2yq0kL9iF24ntFbW3HIz1t/f6LB3sroqN4sWEtX5dJWHo92oj7WZi+f5EX
 CNiXDAOcPeljbBiK1Cof1ip6mn+30f4WAw6GKnUKctkTvf8ARCd6il04fqdGDRJz
 VHaeKu1qE8QTe8rd12qm/Buv/z4iHUyrkWMIN3XpnEuKzW+5vIY=
 =tEbr
 -----END PGP SIGNATURE-----

Merge tag 'v6.9-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt

New boards: Powkiddy RGB10MAX3, Pine64 PineTab2, NanoPi R6C+R6S, Anbernic
RG-ARC S and RG-ARC D.
New peripherals: rs485 on Theobroma Systems boards, usb3 on Indidroid Nova,
Edgeble NCM6A (usb2, m.2, ethernet, wifi, cpu-regulator), Rock-5b rfkill
for wifi, cache information for rk3399.
Snmaller DT fixes (hdmi nodes, aliases, redundant card-detect gpios, max-
frequency for spi-flashes on rock-pi 4 boards, missing pmu-io-domains on
Ringneck)

* tag 'v6.9-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: (38 commits)
  arm64: dts: rockchip: Add USB3.0 to Indiedroid Nova
  arm64: dts: rockchip: adjust phy-handle name on rock-pi-e
  arm64: dts: rockchip: fix rk3399 hdmi ports node
  arm64: dts: rockchip: fix rk3328 hdmi ports node
  arm64: dts: rockchip: remove redundant cd-gpios from rk3588 sdmmc nodes
  arm64: dts: rockchip: add rs485 support on uart5 of px30-ringneck-haikou
  arm64: dts: rockchip: add rs485 support on uart2 of rk3399-puma-haikou
  arm64: dts: rockchip: Add Powkiddy RGB10MAX3
  dt-bindings: arm: rockchip: Add Powkiddy RGB10MAX3
  arm64: dts: rockchip: Update powkiddy rk2023 dtsi for RGB10MAX3
  arm64: dts: rockchip: Add devicetree for Pine64 PineTab2
  dt-bindings: arm64: rockchip: Add Pine64 PineTab2
  arm64: dts: rockchip: Add Touch to Anbernic RG-ARC D
  arm64: dts: rockchip: fix nanopc-t6 sdmmc regulator
  arm64: dts: rockchip: remove duplicate SPI aliases for helios64
  arm64: dts: rockchip: add spi controller aliases on rk3399
  arm64: dts: rockchip: Add support for NanoPi R6C
  arm64: dts: rockchip: Add support for NanoPi R6S
  dt-bindings: arm: rockchip: Add NanoPi R6 series boards
  arm64: dts: rockchip: Increase maximum frequency of SPI flash for ROCK Pi 4A/B/C
  ...

Link: https://lore.kernel.org/r/3622360.hdfAi7Kttb@diego
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-02-29 16:22:29 +01:00
Arnd Bergmann
5d9f164317 DTS fixes for the ARM Versatile boards:
- Use the "mtd-rom" compatible for the Realview ROM
 - Fix up two VGA connector cells and labels
 - Fix up the Cortex spelling
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEElDRnuGcz/wPCXQWMQRCzN7AZXXMFAmXWedgACgkQQRCzN7AZ
 XXPplg/+IZaEpq/diyrYylaaU4yHuMJBPcY5B29TDLKK6ZSWGYoN1yfvvKdtCaAc
 Gn8mkLUgctDbYVXqbnlAQtaEYLUKj3xu7jwPgs2tUVr9qnqRWiXjbd0M2V4I1yvu
 c1zMT7ca/HlZF9AMT9yNGS8mRWLBkePMSI6bfktwymWRTOJ3Z1xeKUIBFBf8QW5Q
 3wClEHDxcK2ACHmAnUXVbvsv3FBdt3z/GTFSF+fd6WH2mafuzAHCbS6ygRLsnbUz
 aURM0W/lEJxMRPC8Kr4vI41Ot9A+8haBd79bjHXsf516Dxd/GvAf5eA2/4IscX3f
 E78PK9UsB2RZMsL0gNQQBsCR/WGT94N/8ltyWtSBvVhefr81Z1z9jC7pAFtq7Bm1
 m/l4eJo3xMtvp1Cs9QZRmETxVaAAtOyRby4prdoKA1BeLNa2RG1OaGyfpQCSp6oj
 ignFckpPNXvpwLOSaJOWJyUwZSAYv+rcUZPrUtjrMfvLZjnTwT93Rz/QTLdW7ilv
 s0wulpP9RY72VdQu64iebMa9pz7v1dkXlV/LKmfGdcY8VotHYuLhzEIyBQDvEarC
 NJhWGhVXgPtyJ62n3iKywkcS8fneCU+UytQLgsafQRHu9om5Uybtcx0Dd5F9u6g/
 Li6XTgPKvxxd+kO52H+H/TGuRoH1F5rca2si6BWgTjdhxqKQsZc=
 =hncO
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmXgoLIACgkQYKtH/8kJ
 UieymxAAh3qf5NZEgX/wzBFWg7HZau8HUupke+GcOn0c8LXrw1eD8jJCfHiR7FoM
 wk/P+kb7LA/wSzYN7Z5fVp/TxRYeaHJXTwOejUwZP0TX2GMGSDmXNhZyxXXx7J4X
 Y1RBPLWa9RPYeHRktqoz6ASG0TEdX/gAyx+jJY2SJRhtUg4Si0lYHPqutWjaMX6a
 JVF7korL2Pf/tv6N2oOVSSDVYbu5v28T9P9gzKXS/CZpFL38N8WO1W2h2WWG/BM4
 mKBtZckeTNjRt9Qdw00ZQIfvzGRAu2FBYwOpMWS0fThme0/hoK03VBUMEnO+kfFF
 txW8ZozeFdpomKJWwGU71Ftmtsb5wVWsBuon83MmQIaK6Rsq9qaGtTFWGCSyxacU
 9QJehMrEZJveZ6C2mLyV4ElWdY0dh/I/PVtGXAAbBuDg5lELSkD5aZJx/GU1in1U
 AtpP8WsqNmwaD0x4VcuGR3x9SieNSjvyG/02OxxcRzLi/1//SG9Jp1940JwWCD+1
 brOi6aXvLrYQq7+2ku6XZ1kAHZXt3j8Konav+I2ILbn8H7e1dskoKoC5tSsOVdo7
 JiJsYU9tvXkaLBV81M8zIC9w9BF1Z3Jiu65ctJWbHsd4ppl1xp+m2Iih6n4NTjGC
 g5uwHGzJgmOSw6IVQEtU7ldCGnfvk9fRMQBUYttO2CVIHcX6UT0=
 =Ah8J
 -----END PGP SIGNATURE-----

Merge tag 'versatile-dts-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into soc/dt

DTS fixes for the ARM Versatile boards:

- Use the "mtd-rom" compatible for the Realview ROM
- Fix up two VGA connector cells and labels
- Fix up the Cortex spelling

* tag 'versatile-dts-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator:
  dt-bindings: arm: realview: Spelling s/ARM 11/Arm11/, s/Cortex A-/Cortex-A/
  ARM: dts: integrator: Fix up VGA connector
  ARM: dts: versatile: Fix up VGA connector
  ARM: dts: arm: realview: Fix development chip ROM compatible value

Link: https://lore.kernel.org/r/CACRpkdaL6j6OdixHFHoMms4e=tXEw_6ynBMFb6m8=7KkVgEedA@mail.gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-02-29 16:20:18 +01:00
Arnd Bergmann
ca369f9628 Gemini DTS changes for the v6.9 kernel:
- Fix the node names of the DSA switch in DIR-685.
 - Fix the node names of the Vitesse DSA switches.
 - Fix up the Wiligear compatible strings
 - Use KEY_RESTART where applicable.
 -----BEGIN PGP SIGNATURE-----
 
 iQIyBAABCgAdFiEElDRnuGcz/wPCXQWMQRCzN7AZXXMFAmXV+ccACgkQQRCzN7AZ
 XXNVCw/3XFUYTCF9hxV68KfWa+ejm6JcSXq49QT4h7qoIxx3oP+DcqffYyJYrMOO
 CoEvRQP3PmGFix0PPGKXltiWnbS7qfG9KSL6dub7OKdMo3oX8I9ejw2KzGDDxrqR
 XmGiGIrQuVsBPD382mxXOND3RyweJ1AyUJ8FDLOQ2DlxKIoeCQaJPKru3YdLRvfV
 QlwEDxG014D1jdQ8Mv75is27ET932ggeeGs4ZrWFArFXD3768b0/5dXZkB9WPDNW
 oZDhEHzl4QL543XkAj0xUX0zRF23XO5m+QBYUP5JTkTz7yA3kZzN1GftGMsR+FE8
 jspNg8KARBYCN/mq3HFa0gFParN78Cm4mtF6LQRauiDwBFagZa2bBf3cPHCy7Cra
 +WWXPlllXgdJbYYz+qbktkZsZLk5skbojJmL2egN3y+dVCmJyniXSMbCRLZeXIT9
 0gmOjSGfqqxyWDumVPwG58nBvXhDU8fSq6Tf0esP5Y1VDAUhC9TcA6LD7rxDKFhs
 HWHNvMBT53h+pfAUxnQkqrcmPQaBoAdbDjSi4uETeXOyO3CVYJ6nU4A2pASNDqb5
 PIZ1kVXUuxsmZeM7b1RXe7ydiP8q3gs1Ros/uPBFA1bZoE+aCbwvv02pIJ2Pa9C9
 JhqLIMjAiG5Bpg8gcTiE0OOIaAMRwZ/uYVwWVgiY8CbnBtAl7w==
 =47BO
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmXgoHYACgkQYKtH/8kJ
 UicudQ//Ssu30IGtfQUcqPNWTc/v3jBCUY+wtiedOQmk/DUtvCzVoREQ/ktT75HR
 TBDgkSQFVB38ha7EUwcej+Bcm8/SrImzDOLRxqn+nMaZcoclzbyZ5inxidCNhIf7
 Rf8xSmx3e8jltIyRP8oIPkFbaABpIsHraD9UqDr3DFXr/gUQzwYnT7vveol+xZ6p
 FSLQcbgd2jLRLEGPnfS4wstrOsPcyNAWz1doW7GTJoRRo8EFge4hdmqo/sN+grts
 0EBdqTlO9oZAmScfviR34StaWCMpAQ3Yn9knyQarEhIMTaWPS4QGpz3RstWGlL6/
 bbm7mkO4aCgN4LC8ZPNMkeMphhu98UJp5SfWFcWGI3CA77OT8/ewr0knoaZ7tXq9
 CtJw+bYxDO7TzJKO3oPx3W8M5jE3+7qupo5fA1ovXYBxTR2fXY8Qn1rcjanx3T+C
 bzV+z2q3sIn8XEby85uKGF2RHO30HZasf/e1vqeYrRF2LbEsptoE8V0p/rnEn6sb
 OvpPnMmYPNBWtceZ73iOXD5PDC83hfoLx3wguhUjy1B991UDRpt4i8ZPUeIWklRF
 6xl1RyPUKPw5k/VbS044y1Qna7rVI/urMNBXGbfrPIeKnZSKpsA3lCcCO1g1UI8b
 tvC9+j8ohQlCF9DMJXBkDnDGdXhKOe81/oitTBTXVSpbjbwySbY=
 =O15M
 -----END PGP SIGNATURE-----

Merge tag 'gemini-dts-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into soc/dt

Gemini DTS changes for the v6.9 kernel:

- Fix the node names of the DSA switch in DIR-685.
- Fix the node names of the Vitesse DSA switches.
- Fix up the Wiligear compatible strings
- Use KEY_RESTART where applicable.

* tag 'gemini-dts-v6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator:
  ARM: dts: gemini: Fix switch node names on Vitesse switches
  ARM: dts: gemini: Map reset keys to KEY_RESTART
  ARM: dts: gemini: Fix wiligear compatible strings
  ARM: dts: gemini: Fix switch node names in the DIR-685

Link: https://lore.kernel.org/r/CACRpkdYQv9cyCZyjgQB4FTrxek9Hfu4EZ3syfHqHF7P6gzddvA@mail.gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-02-29 16:19:18 +01:00
Arnd Bergmann
d902209155 MediaTek ARM64 DeviceTree updates for v6.9
This adds support for the following new machines:
  - MT7981B: Xiaomi AX3000T
  - MT7986A: Acelink EW-7886CAX
  - MT7988A: BananaPi BPI-R4
  - MT8186 Chromebooks: Tentacruel, Tentacool, Steelix, Rusty, Magneton
  - MT8395/MT8195: Radxa NIO 12L
 
 Also adds more support for the MediaTek MT8186 SoC's Video and JPEG
 encoders and for MT7988 clocks, enables wakeup support for the CrOS
 EC on SPI in all MediaTek Chromebooks, performs some cleanups and
 includes some spare fixes.
 -----BEGIN PGP SIGNATURE-----
 
 iJ4EABYKAEYWIQQn3Xxr56ypAcSHzXSaNgTPrZeEeAUCZdNPiigcYW5nZWxvZ2lv
 YWNjaGluby5kZWxyZWdub0Bjb2xsYWJvcmEuY29tAAoJEJo2BM+tl4R4XOYBAPIL
 G/Y4jGNfCPPS4gFPt7y7WKG6nT270msgGFOFELszAP0WSpiOp0rBUS8oXY+NKchd
 gxMuvBtfHE05/shSxasKBw==
 =VN5r
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmXgn4YACgkQYKtH/8kJ
 UicNaA/+NtgifoCRIko1BsATmNs5c/W5bBaU0w9NHhTDjFVHP6CZzEfFfkU5irK5
 5cUZ8InXEa4/34YVcMHjHvuXhZ2jbrEHU7G1tR52z9wSQz8TQf5wiwgD+dCsFXaq
 m43l3aArTQVGOgkdU4+U/AsGyNLR94snHaDXZPweVXTnPMBv9+FDObbIROvX7H6k
 iRoEwfZuoaZj2gLX+RezhhqususwsnDMugBWRICgaaCGOuM07EWrmfgHUrujq9E/
 nV+L2cBjjqDKqeKVL8wdznQz02uA4uWw/0jswwXd8AWyu1CSmOrb1mDlOnRGh02/
 DvktM1mzIMMlnCZvbIxzqn/Pawsgo1t7aVO5LFUF5p1jYppzS+pUcIcmPi/Dq0K6
 PDYlmj+70ieNqIur3BjHG1I4RAba01MDB5Ov5w6P8m+5AUTDMsA+6Z2xNR+QCGla
 ca62a2KmQK0lvDZg3HHaVKCYNreV2QLP+7FukghpQ5x2TN1nGHFz2ZHedvcbxVPE
 ol9IoB3qogSsCR7lSoYjthOzJl3yUBEjz5619jVBLkqGXQX1A7Dcdx9bs7zZ8tfl
 3Bb5Yi+1EDH9Bk7UOE6FBA84HTpp5vU8YyWKdPR6s3mdZXKNrhepjajhPHfR2LuE
 Pl4USZxL9pKMle/oB1oqsQH2vzIVqF7kgXPkRoHoNMM/oajkIX0=
 =Ac61
 -----END PGP SIGNATURE-----

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

MediaTek ARM64 DeviceTree updates for v6.9

This adds support for the following new machines:
 - MT7981B: Xiaomi AX3000T
 - MT7986A: Acelink EW-7886CAX
 - MT7988A: BananaPi BPI-R4
 - MT8186 Chromebooks: Tentacruel, Tentacool, Steelix, Rusty, Magneton
 - MT8395/MT8195: Radxa NIO 12L

Also adds more support for the MediaTek MT8186 SoC's Video and JPEG
encoders and for MT7988 clocks, enables wakeup support for the CrOS
EC on SPI in all MediaTek Chromebooks, performs some cleanups and
includes some spare fixes.

* tag 'mtk-dts64-for-v6.9' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux: (51 commits)
  arm64: dts: mt8195-cherry-tomato: change watchdog reset boot flow
  arm64: dts: mt7986: add port@5 as CPU port
  arm64: dts: mt7622: add port@5 as CPU port
  arm64: dts: mediatek: Replace deprecated extcon-usb-gpio id-gpio/vbus-gpio properties
  arm64: dts: mediatek: replace underscores in node names
  arm64: dts: mediatek: mt8186: Add missing xhci clock to usb controllers
  arm64: dts: mediatek: mt8186: Add missing clocks to ssusb power domains
  arm64: dts: mediatek: mt7622: add missing "device_type" to memory nodes
  arm64: dts: mediatek: mt7986: reorder nodes
  arm64: dts: mediatek: mt7986: reorder properties
  arm64: dts: mediatek: Add Acelink EW-7886CAX
  dt-bindings: arm64: dts: mediatek: Add Acelink EW-7886CAX access point
  dt-bindings: vendor-prefixes: add acelink
  arm64: dts: mediatek: Introduce the MT8395 Radxa NIO 12L board
  dt-bindings: arm64: mediatek: Add MT8395 Radxa NIO 12L board compatible
  arm64: dts: mediatek: mt8186: Add video decoder device nodes
  arm64: dts: mediatek: mt8195: Add MTU3 nodes and correctly describe USB
  arm64: dts: mediatek: Add MT8186 Magneton Chromebooks
  arm64: dts: mediatek: Add MT8186 Steelix platform based Rusty
  arm64: dts: mediatek: Introduce MT8186 Steelix
  ...

Link: https://lore.kernel.org/r/20240219131230.157792-1-angelogioacchino.delregno@collabora.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-02-29 16:15:18 +01:00
Arnd Bergmann
60dfd940ea Minor improvements in ARM DTS for v6.9
1. Marvell MMP2: Very old issue, for which I sent patch back in 2014.
    Patch was never picked up and now another try to fix the same
    happened, so here it goes: use proper compatible MAX8925.
 2. Marvell Dove: add proper unit-addresses.
 3. TI DA850: add MMC interrupts.
 4. STI: minor white-space fixes.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmXSS6UQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD12z+EACatUsFDZvmp7OyzHHKYD79PDiFafeQ42g5
 zlWhw28jKBJf656c8+57k9SLXgt6xBLtam10ebDYbn7nXJUoQiq5X8oaFdtvAqo8
 nDtZBnPHgSH1mejLdBKzC/5JQYmIfheBvYxSFdhA5y1qIVL7/kAAfnQLMzOnwlSt
 MNkY/gFaGz5djDRRa+2VAOxER1VDRV1wkKE0Ik3NSN6WQWDrcKbZnaiZHjQuRRca
 9b52QQexFSHSd68qhtQqZiMYW7YgWD9xzpkuj87BdPBgO4zkrSJRTA2MpM4kVy6w
 53HjXDQ+frNM7/CTwP7xDBqnJBUz9SHUyWlSNLE5f3/yC6t5zoQ7B1cGOwp6AzA6
 PjXISyWIN98nvBGbmSGvw9C7duREZXwk4C/t3b5jp7Z0sixBW9OkwVuFcWoXaCQg
 ib91iWUdZT8JwTH1Nu+hVlWezqZpyj7R/J20CKvEzUYc3rMpznC91OLQA9VcMDPJ
 RVFU1FEj44Wzsl31wyCvOKmLeEmmbQVtaKygC9SFOi5Z0xQgSK1i+XtqxIl4UQ2g
 zz2LVX3xf7H7OHGoISdEnq0L/P/u8cxWJ8OrzZfnDn2wPS7gPHJtn7sV2tylCT1W
 OcJK4AWLPMQM0IjIFsBv0AkBHgLMLqMX3FTGahnX2QpXT1ZjFxc5GWlx721rOZ8b
 6kOrRb0hRQ==
 =YXMH
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmXgnu4ACgkQYKtH/8kJ
 UicOwxAA3pub77030UyFD7f6zAMn+tl0h5Bq+Lsgo5z5AprJezggQ672cUb7nMgF
 OpDTg/oGiROe9665C7iUgaiZnBG8g2TT4G0+WbsH5K0PfZRk7Cbit68Ya4UWeStT
 szt1ErDq4foxG7AwZsW3gazboHg4CjEKiP6IrhBy/NHC8A13q4lMdj/HKjclyVjl
 XBbOegKPQiguwI2DcITrYCkwc3mPz7SE7V9ueiLal1+rc5PdpCuHEvmZ9DLmMlXF
 46ANRGIpko746KARUCI2bUKZiaulhq8c9VqVNzgGrhm76k/Su6OjPp6koxdUO/oF
 kD7f19RgTj92pEQuiobkZTbAMJfxrJJns+rzx9yE+Pvv63hXeLaVeJV9X1XgzJZI
 l2w4X79vD6Q/+vGGSOXBhEDk+jS5j9ebeMC/qP/Zl1sybUpXNFqTvkvAKM+EbCgz
 K8skxkGgOw9RTKR0slrwH5PxqDElnm4h56lrff7dRrdZjctcFUmqp1g20uUoG4p/
 XrZBlLVtEwY4Is0bkSMCYsNx2vBoEFP9HM+rqfR+GgxqXV8T4YeYE5hSdScIUbn5
 bzu2Mf2jGx0N4jVfxV55+Ti7Z3J/OfPqeJ4nKY5FCU2FHyxTLvQiKTZxgaUysWYS
 4MnC2AabiJcmcK6M3GI3ht+aO2K5i7ybPTiqFsuDG9t+cLMcKTc=
 =3tRR
 -----END PGP SIGNATURE-----

Merge tag 'dt-cleanup-6.9' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt into soc/dt

Minor improvements in ARM DTS for v6.9

1. Marvell MMP2: Very old issue, for which I sent patch back in 2014.
   Patch was never picked up and now another try to fix the same
   happened, so here it goes: use proper compatible MAX8925.
2. Marvell Dove: add proper unit-addresses.
3. TI DA850: add MMC interrupts.
4. STI: minor white-space fixes.

* tag 'dt-cleanup-6.9' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt:
  ARM: dts: sti: minor whitespace cleanup around '='
  ARM: dts: da850: add MMD SDIO interrupts
  ARM: dts: marvell: dove-cubox: fix si5351 node names
  arm: dts: marvell: Fix maxium->maxim typo in brownstone dts

Link: https://lore.kernel.org/r/20240218182656.32103-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-02-29 16:12:46 +01:00
Jason Gunthorpe
327e10b47a iommu/arm-smmu-v3: Convert to domain_alloc_paging()
Now that the BLOCKED and IDENTITY behaviors are managed with their own
domains change to the domain_alloc_paging() op.

For now SVA remains using the old interface, eventually it will get its
own op that can pass in the device and mm_struct which will let us have a
sane lifetime for the mmu_notifier.

Call arm_smmu_domain_finalise() early if dev is available.

Tested-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Moritz Fischer <moritzf@google.com>
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/16-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
2024-02-29 15:12:23 +00:00
Jason Gunthorpe
d8cd200609 iommu/arm-smmu-v3: Pass arm_smmu_domain and arm_smmu_device to finalize
Instead of putting container_of() casts in the internals, use the proper
type in this call chain. This makes it easier to check that the two global
static domains are not leaking into call chains they should not.

Passing the smmu avoids the only caller from having to set it and unset it
in the error path.

Reviewed-by: Michael Shavit <mshavit@google.com>
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Moritz Fischer <moritzf@google.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/15-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
2024-02-29 15:12:23 +00:00
Jason Gunthorpe
d36464f40f iommu/arm-smmu-v3: Use the identity/blocked domain during release
Consolidate some more code by having release call
arm_smmu_attach_dev_identity/blocked() instead of open coding this.

Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Moritz Fischer <moritzf@google.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/14-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
2024-02-29 15:12:23 +00:00
Jason Gunthorpe
352bd64cd8 iommu/arm-smmu-v3: Add a global static BLOCKED domain
Using the same design as the IDENTITY domain install an
STRTAB_STE_0_CFG_ABORT STE.

Reviewed-by: Michael Shavit <mshavit@google.com>
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Moritz Fischer <moritzf@google.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/13-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
2024-02-29 15:12:22 +00:00
Jason Gunthorpe
12dacfb5b9 iommu/arm-smmu-v3: Add a global static IDENTITY domain
Move to the new static global for identity domains. Move all the logic out
of arm_smmu_attach_dev into an identity only function.

Reviewed-by: Michael Shavit <mshavit@google.com>
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Moritz Fischer <moritzf@google.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/12-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
2024-02-29 15:12:22 +00:00
Jason Gunthorpe
ae91f6552c iommu/arm-smmu-v3: Check that the RID domain is S1 in SVA
The SVA code only works if the RID domain is a S1 domain and has already
installed the cdtable.

Originally the check for this was in arm_smmu_sva_bind() but when the op
was removed the test didn't get copied over to the new
arm_smmu_sva_set_dev_pasid().

Without the test wrong usage usually will hit a WARN_ON() in
arm_smmu_write_ctx_desc() due to a missing ctx table.

However, the next patches wil change things so that an IDENTITY domain is
not a struct arm_smmu_domain and this will get into memory corruption if
the struct is wrongly casted.

Fail in arm_smmu_sva_set_dev_pasid() if the STE does not have a S1, which
is a proxy for the STE having a pointer to the CD table. Write it in a way
that will be compatible with the next patches.

Fixes: 386fa64fd5 ("arm-smmu-v3/sva: Add SVA domain support")
Reported-by: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>
Closes: https://lore.kernel.org/linux-iommu/2a828e481416405fb3a4cceb9e075a59@huawei.com/
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/11-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
2024-02-29 15:12:22 +00:00
Jason Gunthorpe
1b50017d39 iommu/arm-smmu-v3: Remove arm_smmu_master->domain
Introducing global statics which are of type struct iommu_domain, not
struct arm_smmu_domain makes it difficult to retain
arm_smmu_master->domain, as it can no longer point to an IDENTITY or
BLOCKED domain.

The only place that uses the value is arm_smmu_detach_dev(). Change things
to work like other drivers and call iommu_get_domain_for_dev() to obtain
the current domain.

The master->domain is subtly protecting the master->domain_head against
being unused as only PAGING domains will set master->domain and only
paging domains use the master->domain_head. To make it simple keep the
master->domain_head initialized so that the list_del() logic just does
nothing for attached non-PAGING domains.

Tested-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Moritz Fischer <moritzf@google.com>
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-by: Mostafa Saleh <smostafa@google.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/10-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
2024-02-29 15:12:22 +00:00
Jason Gunthorpe
d550ddc5b7 iommu/arm-smmu-v3: Pass smmu_domain to arm_enable/disable_ats()
The caller already has the domain, just pass it in. A following patch will
remove master->domain.

Tested-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Moritz Fischer <moritzf@google.com>
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-by: Mostafa Saleh <smostafa@google.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/9-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
2024-02-29 15:12:22 +00:00
Jason Gunthorpe
d2e053d732 iommu/arm-smmu-v3: Put writing the context descriptor in the right order
Get closer to the IOMMU API ideal that changes between domains can be
hitless. The ordering for the CD table entry is not entirely clean from
this perspective.

When switching away from a STE with a CD table programmed in it we should
write the new STE first, then clear any old data in the CD entry.

If we are programming a CD table for the first time to a STE then the CD
entry should be programmed before the STE is loaded.

If we are replacing a CD table entry when the STE already points at the CD
entry then we just need to do the make/break sequence.

Lift this code out of arm_smmu_detach_dev() so it can all be sequenced
properly. The only other caller is arm_smmu_release_device() and it is
going to free the cdtable anyhow, so it doesn't matter what is in it.

Reviewed-by: Michael Shavit <mshavit@google.com>
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-by: Mostafa Saleh <smostafa@google.com>
Tested-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Moritz Fischer <moritzf@google.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/8-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
2024-02-29 15:12:22 +00:00
Jason Gunthorpe
8c73c32c83 iommu/arm-smmu-v3: Do not change the STE twice during arm_smmu_attach_dev()
This was needed because the STE code required the STE to be in
ABORT/BYPASS inorder to program a cdtable or S2 STE. Now that the STE code
can automatically handle all transitions we can remove this step
from the attach_dev flow.

A few small bugs exist because of this:

1) If the core code does BLOCKED -> UNMANAGED with disable_bypass=false
   then there will be a moment where the STE points at BYPASS. Since
   this can be done by VFIO/IOMMUFD it is a small security race.

2) If the core code does IDENTITY -> DMA then any IOMMU_RESV_DIRECT
   regions will temporarily become BLOCKED. We'd like drivers to
   work in a way that allows IOMMU_RESV_DIRECT to be continuously
   functional during these transitions.

Make arm_smmu_release_device() put the STE back to the correct
ABORT/BYPASS setting. Fix a bug where a IOMMU_RESV_DIRECT was ignored on
this path.

As noted before the reordering of the linked list/STE/CD changes is OK
against concurrent arm_smmu_share_asid() because of the
arm_smmu_asid_lock.

Tested-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Moritz Fischer <moritzf@google.com>
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/7-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
2024-02-29 15:12:22 +00:00
Jason Gunthorpe
65547275d7 iommu/arm-smmu-v3: Compute the STE only once for each master
Currently arm_smmu_install_ste_for_dev() iterates over every SID and
computes from scratch an identical STE. Every SID should have the same STE
contents. Turn this inside out so that the STE is supplied by the caller
and arm_smmu_install_ste_for_dev() simply installs it to every SID.

This is possible now that the STE generation does not inform what sequence
should be used to program it.

This allows splitting the STE calculation up according to the call site,
which following patches will make use of, and removes the confusing NULL
domain special case that only supported arm_smmu_detach_dev().

Reviewed-by: Michael Shavit <mshavit@google.com>
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-by: Mostafa Saleh <smostafa@google.com>
Tested-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Moritz Fischer <moritzf@google.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/6-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
2024-02-29 15:12:22 +00:00
Jason Gunthorpe
9f7c689115 iommu/arm-smmu-v3: Hold arm_smmu_asid_lock during all of attach_dev
The BTM support wants to be able to change the ASID of any smmu_domain.
When it goes to do this it holds the arm_smmu_asid_lock and iterates over
the target domain's devices list.

During attach of a S1 domain we must ensure that the devices list and
CD are in sync, otherwise we could miss CD updates or a parallel CD update
could push an out of date CD.

This is pretty complicated, and almost works today because
arm_smmu_detach_dev() removes the master from the linked list before
working on the CD entries, preventing parallel update of the CD.

However, it does have an issue where the CD can remain programed while the
domain appears to be unattached. arm_smmu_share_asid() will then not clear
any CD entriess and install its own CD entry with the same ASID
concurrently. This creates a small race window where the IOMMU can see two
ASIDs pointing to different translations.

       CPU0                                   CPU1
arm_smmu_attach_dev()
   arm_smmu_detach_dev()
     spin_lock_irqsave(&smmu_domain->devices_lock, flags);
     list_del(&master->domain_head);
     spin_unlock_irqrestore(&smmu_domain->devices_lock, flags);

				      arm_smmu_mmu_notifier_get()
				       arm_smmu_alloc_shared_cd()
					arm_smmu_share_asid():
                                          // Does nothing due to list_del above
					  arm_smmu_update_ctx_desc_devices()
					  arm_smmu_tlb_inv_asid()
				       arm_smmu_write_ctx_desc()
					 ** Now the ASID is in two CDs
					    with different translation

     arm_smmu_write_ctx_desc(master, IOMMU_NO_PASID, NULL);

Solve this by wrapping most of the attach flow in the
arm_smmu_asid_lock. This locks more than strictly needed to prepare for
the next patch which will reorganize the order of the linked list, STE and
CD changes.

Move arm_smmu_detach_dev() till after we have initialized the domain so
the lock can be held for less time.

Reviewed-by: Michael Shavit <mshavit@google.com>
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-by: Mostafa Saleh <smostafa@google.com>
Tested-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Moritz Fischer <moritzf@google.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/5-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
2024-02-29 15:12:21 +00:00
Jason Gunthorpe
71b0aa10b1 iommu/arm-smmu-v3: Build the whole STE in arm_smmu_make_s2_domain_ste()
Half the code was living in arm_smmu_domain_finalise_s2(), just move it
here and take the values directly from the pgtbl_ops instead of storing
copies.

Reviewed-by: Michael Shavit <mshavit@google.com>
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-by: Mostafa Saleh <smostafa@google.com>
Tested-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Moritz Fischer <moritzf@google.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/4-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
2024-02-29 15:12:21 +00:00
Jason Gunthorpe
efe15df087 iommu/arm-smmu-v3: Move the STE generation for S1 and S2 domains into functions
This is preparation to move the STE calculation higher up in to the call
chain and remove arm_smmu_write_strtab_ent(). These new functions will be
called directly from attach_dev.

Reviewed-by: Moritz Fischer <mdf@kernel.org>
Reviewed-by: Michael Shavit <mshavit@google.com>
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-by: Mostafa Saleh <smostafa@google.com>
Tested-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Moritz Fischer <moritzf@google.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/3-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
2024-02-29 15:12:21 +00:00
Jason Gunthorpe
7686aa5f8d iommu/arm-smmu-v3: Consolidate the STE generation for abort/bypass
This allows writing the flow of arm_smmu_write_strtab_ent() around abort
and bypass domains more naturally.

Note that the core code no longer supplies NULL domains, though there is
still a flow in the driver that end up in arm_smmu_write_strtab_ent() with
NULL. A later patch will remove it.

Remove the duplicate calculation of the STE in arm_smmu_init_bypass_stes()
and remove the force parameter. arm_smmu_rmr_install_bypass_ste() can now
simply invoke arm_smmu_make_bypass_ste() directly.

Rename arm_smmu_init_bypass_stes() to arm_smmu_init_initial_stes() to
better reflect its purpose.

Reviewed-by: Michael Shavit <mshavit@google.com>
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-by: Mostafa Saleh <smostafa@google.com>
Tested-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Moritz Fischer <moritzf@google.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/2-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
2024-02-29 15:12:21 +00:00
Jason Gunthorpe
7da51af912 iommu/arm-smmu-v3: Make STE programming independent of the callers
As the comment in arm_smmu_write_strtab_ent() explains, this routine has
been limited to only work correctly in certain scenarios that the caller
must ensure. Generally the caller must put the STE into ABORT or BYPASS
before attempting to program it to something else.

The iommu core APIs would ideally expect the driver to do a hitless change
of iommu_domain in a number of cases:

 - RESV_DIRECT support wants IDENTITY -> DMA -> IDENTITY to be hitless
   for the RESV ranges

 - PASID upgrade has IDENTIY on the RID with no PASID then a PASID paging
   domain installed. The RID should not be impacted

 - PASID downgrade has IDENTIY on the RID and all PASID's removed.
   The RID should not be impacted

 - RID does PAGING -> BLOCKING with active PASID, PASID's should not be
   impacted

 - NESTING -> NESTING for carrying all the above hitless cases in a VM
   into the hypervisor. To comprehensively emulate the HW in a VM we
   should assume the VM OS is running logic like this and expecting
   hitless updates to be relayed to real HW.

For CD updates arm_smmu_write_ctx_desc() has a similar comment explaining
how limited it is, and the driver does have a need for hitless CD updates:

 - SMMUv3 BTM S1 ASID re-label

 - SVA mm release should change the CD to answert not-present to all
   requests without allowing logging (EPD0)

The next patches/series are going to start removing some of this logic
from the callers, and add more complex state combinations than currently.
At the end everything that can be hitless will be hitless, including all
of the above.

Introduce arm_smmu_write_ste() which will run through the multi-qword
programming sequence to avoid creating an incoherent 'torn' STE in the HW
caches. It automatically detects which of two algorithms to use:

1) The disruptive V=0 update described in the spec which disrupts the
   entry and does three syncs to make the change:
       - Write V=0 to QWORD 0
       - Write the entire STE except QWORD 0
       - Write QWORD 0

2) A hitless update algorithm that follows the same rational that the driver
   already uses. It is safe to change IGNORED bits that HW doesn't use:
       - Write the target value into all currently unused bits
       - Write a single QWORD, this makes the new STE live atomically
       - Ensure now unused bits are 0

The detection of which path to use and the implementation of the hitless
update rely on a "used bitmask" describing what bits the HW is actually
using based on the V/CFG/etc bits. This flows from the spec language,
typically indicated as IGNORED.

Knowing which bits the HW is using we can update the bits it does not use
and then compute how many QWORDS need to be changed. If only one qword
needs to be updated the hitless algorithm is possible.

Later patches will include CD updates in this mechanism so make the
implementation generic using a struct arm_smmu_entry_writer and struct
arm_smmu_entry_writer_ops to abstract the differences between STE and CD
to be plugged in.

At this point it generates the same sequence of updates as the current
code, except that zeroing the VMID on entry to BYPASS/ABORT will do an
extra sync (this seems to be an existing bug).

Going forward this will use a V=0 transition instead of cycling through
ABORT if a hitfull change is required. This seems more appropriate as ABORT
will fail DMAs without any logging, but dropping a DMA due to transient
V=0 is probably signaling a bug, so the C_BAD_STE is valuable.

Add STRTAB_STE_1_SHCFG_INCOMING to s2_cfg, this was editing the STE in
place and subtly inherited the value of data[1] from abort/bypass.

Signed-off-by: Michael Shavit <mshavit@google.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/1-v6-96275f25c39d+2d4-smmuv3_newapi_p1_jgg@nvidia.com
Signed-off-by: Will Deacon <will@kernel.org>
2024-02-29 15:12:21 +00:00
Arnd Bergmann
eaab725ba2 Samsung DTS ARM changes for v6.9
1. Disable thermal polling by Linux in Eynos5422 Odroid XU3 boards,
    because drivers implement now proper dynamic trip points management.
 
 2. Mark crosc-ec-spi in Peach Pi and Peach Pit as wake-up source, to
    reflect the hardware capabilities.
 
 3. Samsung P4 Note (Exynos4412): add accelerometer.
 
 4. Samsung Galaxy Tab (Exynos5420):
    - Reduce available RAM to avoid conflict with TrustZone.
    - Add WiFi on MMC.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmXSSGIQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD17AID/0XwkOpYKAXweL2+zqp+aQgCux3/i+MV0Yq
 ojnHq1e9chTApiBqT/cW8xHLFmXpVR/Jiu0BDtm/JnlFtoWCE0B1qBmm0+sEpMZ7
 QxvY8f+p2veTDXYO4cnfPn7iBnjtqzd4ceMsmljz3Md8lWwguZ2Kn6X6K2c4MaYT
 kY6ZP4/B2L12z847MkqqlXHVY89bTZbaD5ag7L90MQ8RWaKuXDnn7b2v/fKUXJm8
 XMxo5R/xaSafEOScJ0wK6EX11yxOi5sZFqaD0vQhtZ7Z4TpfLk4g1cUPnUFxlF85
 sO1CHxg7JaVgbTR9vuHRsxotydPOC/75qAa1mHV4j8J8GrUAyHkLLgIm/V3JoebS
 uEajcG/CjapV5Qx/xMxj17p8nYSDQjtzM8qqnX84IGk/hA6JeYVEzegoODzg/+Px
 1YDBgNegggpy+6vznygjvuwwFoxtVmkILgcABvue+q0u+7v5vc4j2Bu9SlMgWEZn
 DEI6A6vvMl0LflDHHcXGLGH8aAmpb3KDIeuPrNlKzQqHdwSc2sm22Km2xUK87F4M
 iGZ/3UHEulIWPtRDd6nvA9XOdibF27SuaJkJLQVQtR0GwkVSugeYfmKXWG6ku/il
 +Q/8iU2cYOsWTC4UBiJBP43BddwokNF14jl6HH+N0vjSnpZBf+KwZMDRlMOvGZ7e
 dWUYcjnoDQ==
 =skUJ
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmXgnrYACgkQYKtH/8kJ
 Uiemcw/+MK2CjJHqNHIumDK1d0xYQ8kNoxF+CrU0MTFL/4VZKquHRWx66QnVWP1O
 qxBEhl+UBulbHtaa8u7xaRuxNo+R/Xx6gW40apAXQh9O4G9OgnOQQbWs/471mtiU
 tHHVPYM5ZCHj06yEwxCfXCnlfMFHlBT1qaAIArUWA6qzrjhH9zeoelsv9eK5s+ZT
 X3INwT40vBR0tPezM/KNHds3jEvM/7w7iZA0zH2UXG5d29GcQDyT+PbxTnEjGgLR
 Ww7UHqOsKbj9btfAnPqvy2n3wdbYftr7RZuAbYUTTLNvtvcLIcoKZyBm1Fc0bujn
 c0nar1XhS8gyhnb4KdWB1o9Iwjjta11fumH2uJAJqFmun/twn6W03CKTSrYrP6Bi
 TL5LdeCtKgWH5meSJ4mgK3Hqxk4ZqfvJXJ/X1eSHEA0b90j0ELmqD8mzkwtZ2Hb0
 8myoX2T0aIxdiZdeeuZjQ9CZPdeMiMXBGC7sAgAfVMZNf04u6+gQyzmsrkm9wo7H
 Y8j24diDOQcjRi1Q7MBy0Bls5FO+3wRhRK742/bY8RJfMq2CE94B8rpInxU4lB+w
 2jGJrOwCE4TUPiqW8YsAtbCTb8oKlmpCDb0kapnGv1OElxg0qhXjWuah+at2QCc6
 GfmdFzX75V1qJOuy2g/vDRg4fNddKoCFkN1wms6867o95+j3A28=
 =rmjy
 -----END PGP SIGNATURE-----

Merge tag 'samsung-dt-6.9' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt

Samsung DTS ARM changes for v6.9

1. Disable thermal polling by Linux in Eynos5422 Odroid XU3 boards,
   because drivers implement now proper dynamic trip points management.

2. Mark crosc-ec-spi in Peach Pi and Peach Pit as wake-up source, to
   reflect the hardware capabilities.

3. Samsung P4 Note (Exynos4412): add accelerometer.

4. Samsung Galaxy Tab (Exynos5420):
   - Reduce available RAM to avoid conflict with TrustZone.
   - Add WiFi on MMC.

* tag 'samsung-dt-6.9' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  ARM: dts: samsung: exynos5420-galaxy-tab-common: add wifi node
  ARM: dts: samsung: exynos5420-galaxy-tab: decrease available memory
  ARM: dts: samsung: exynos4412-p4note: add accelerometer and gyro to p4note
  ARM: dts: samsung: exynos5800-peach: Enable cros-ec-spi as wake source
  ARM: dts: samsung: exynos5420-peach: Enable cros-ec-spi as wake source
  ARM: dts: samsung: exynos5422-odroidxu3: disable thermal polling

Link: https://lore.kernel.org/r/20240218182141.31213-3-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-02-29 16:11:50 +01:00
Arnd Bergmann
1422eb8585 Samsung DTS ARM64 changes for v6.9
Mostly work around Google GS101 SoC and Pixel phone (Oriole) adding
 support for:
 
 1. Multi Core Timer (MCT) clocksource.
 2. Several clock controllers (DTS and DT bindings) and use new clocks in
    several other device nodes.
 3. More serial-interface instances: USI8 and USI12 with I2C.
 
 Exynos850:
 1. SPI and DMA controllers (PL330).
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmXSSV8QHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD1xrKD/sHdEhe+Ry7KJs4TanYYHDJUq7I1x5K7xYd
 M1A1TAsdU+YegESN9JSxYO+p/zCmjvlS3yeoWSEKFokRUDxNQNZeCVN2tGeRQvzK
 uZyj1D6n31taDAA6zVneeZ7Xn3C5Zh0eNMy3+j6ZhqeTyW85ECdxEN+KwbrQ324r
 00+9FUH42RYNqXF8pxAMmWEEwtzdwzeQ+dU7RkcL4LZaY3HOsesX0ZxHzprVpzOo
 vQYtwoLcQ1Q4sEPOYNtDflUv33y8vfX04BUnXliNHBmgHT7XGRk35vfAnDjGEmBr
 UiDkLFs1xlaTjJCOSqmto8cQToRvX58DSEBBtGO4jPe/F1ZxYTyYymSB1ygDlz+a
 hSRRdlS5MeeV2kc1yO1uXMAI5UfNM1zXbV3fsuWjquXki/kdl7l5uj/3/UL8Jgvf
 j9G6MuNFCUcho6uXtgEf9G5FsEIW6yBtoCoSX/izIM/5o3wUy0u9DT6hnjIjnemN
 L0dahtgyrSPDKAh9yoAWhlkcs5em0LN8bPi9tLCuVAEhmcgiqlHyK9tFzwQkIJGa
 7Eq9jx2BDFJADCPXD9jWDhsNyHMZZOwK41TuSFH6i3EgLlwpUfN1TbGfUrgw5iAx
 hT7t0ecaN8xJYOb7xI6f8fO0qDYHqcxSon5b1iKr2w+7t4XLEEEMrq6B0uLsCZib
 PcBFBYsm0A==
 =Qz5k
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmXgnmwACgkQYKtH/8kJ
 Uidu5A//Q7tpYouP0tKMESalkZoKYx32hCMs7ldp1TRZ11M2RxWKvxdayMiW7WNG
 8/YMOJ74VyFjVdQp7uO9V3d2brHjX4SzUucD+UX2cHSdg7ccfMuVnUo6xEtKvxX9
 OQPZwZ8iG9jQmi5MtxNqdP8c+7lk+SScVFzdZ0rJWL/OBGdTtFFct9lrXZg8Wctg
 dXBiiqBiZnBWQIvkGm5zbdM+u6/8lQuISa7xSgJfIiTEqtgR6Y5pByGpTrGVeFMW
 sCdkVFOnz4v5whNkkRPxZy1IJhkW2OqSooReIuPqo0zqcEnFEEKQfoifZWarvXqr
 wpyk6prVDi8698ebUTacyHKoaMtraXC7AVEQiEobjR136ZdTBR+Eze4fCzQJQTs4
 cAcjD49qbJJPgarM8z/zU+VUa4PQfN1x2TRrvx/8BdqXd0nACxLWrHuRwgtKgfIK
 1Ytycw3FnNUrBZ1mARWX+LmZzypzcPJ5bbn6BUxdV+w6m3lwbos3SoyFzLyO3k5W
 r6dr++vNBWLJYHkia6i0Ft/YnbUMmRe2UrfibFvaS8LJSCxQkobfDTWpvFeA8k8q
 cqZWc+bBQ3CZxat7DD3L4aFBwAnlFFokoKf8M6JVBFfyxpiikZFBfK+xcD7uR8oV
 SzbyJY2g44xoGEbVAub7fe4QH6xcgpj3mSJDnHqkzRks8jf7Jcs=
 =KV1f
 -----END PGP SIGNATURE-----

Merge tag 'samsung-dt64-6.9' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt

Samsung DTS ARM64 changes for v6.9

Mostly work around Google GS101 SoC and Pixel phone (Oriole) adding
support for:

1. Multi Core Timer (MCT) clocksource.
2. Several clock controllers (DTS and DT bindings) and use new clocks in
   several other device nodes.
3. More serial-interface instances: USI8 and USI12 with I2C.

Exynos850:
1. SPI and DMA controllers (PL330).

* tag 'samsung-dt64-6.9' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  arm64: dts: fsd: Add fifosize for UART in Device Tree
  arm64: dts: exynos: gs101: minor whitespace cleanup
  arm64: dts: exynos: gs101: enable i2c bus 12 on gs101-oriole
  arm64: dts: exynos: gs101: define USI12 with I2C configuration
  arm64: dts: exynos: gs101: enable cmu-peric1 clock controller
  dt-bindings: clock: google,gs101-clock: add PERIC1 clock management unit
  arm64: dts: exynos: Add SPI nodes for Exynos850
  arm64: dts: exynos: Add PDMA node for Exynos850
  arm64: dts: exynos: gs101: use correct clocks for usi_uart
  arm64: dts: exynos: gs101: use correct clocks for usi8
  arm64: dts: exynos: gs101: sysreg_peric0 needs a clock
  arm64: dts: exynos: gs101: enable eeprom on gs101-oriole
  arm64: dts: exynos: gs101: define USI8 with I2C configuration
  arm64: dts: exynos: gs101: update USI UART to use peric0 clocks
  arm64: dts: exynos: gs101: enable cmu-peric0 clock controller
  arm64: dts: exynos: gs101: remove reg-io-width from serial
  arm64: dts: exynos: gs101: define Multi Core Timer (MCT) node
  dt-bindings: clock: exynos850: Add PDMA clocks
  dt-bindings: clock: google,gs101-clock: add PERIC0 clock management unit

Link: https://lore.kernel.org/r/20240218182141.31213-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-02-29 16:10:36 +01:00
Arnd Bergmann
466b99ac51 Renesas DTS updates for v6.9
- Add GPIO keys and watchdog support for the RZ/G3S SMARC development
     board,
   - Add GNSS support for Renesas ULCB development boards equipped with
     the Shimafuji Kingfisher extension,
   - Add support for the standalone White Hawk CPU board,
   - Add support for the R-Car V4H ES2.0 (R8A779G2) SoC and the White
     Hawk Single development board,
   - Add initial support for the R-Car V4M (R8A779H0) SoC and the Gray
     Hawk Single development board,
   - Add camera support for the RZ/G2UL SoC,
   - Miscellaneous fixes and improvements.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCZcYyKAAKCRCKwlD9ZEnx
 cFKXAP9Irv4ndzv+HVaJQb9PzNUygshSLPw9+HR7dRn8E63X3wD6AxlgN8AVMxzp
 FEF/6VMMzJ9lxKMh+1G4qjVL1xyi9Qg=
 =UXce
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmXgnY8ACgkQYKtH/8kJ
 UifBbQ/+OkG9Fm6/VUHWwroSszqWufQmXrMg7h28dhSJXukxif2ih26ZfUxIX6k7
 aV5ghCEXJiZRr4vZCtHTnoXL/mx0Cdr2yAoleNtFK1WjPbC9J2vFRwA0szYPphbd
 yCNyPdjm9Z0OP6itLei3gTyboI52lwJRA/81t9YZwj1kdZwGghhYacvv35am0IL2
 QWHPCq+1k+2ItjxqdgxzytIsMmTUSt4kbnf/+TyHVg+ZPkVxc1oBxEkVLRVtmhsi
 N0PHlPe9DM1s751S2kGW9dvLimO92MTZ4GisANUyHeyr5mRjSLhWdYKt4atXIzMU
 fA7xNvCAc3NxbvE7nhWkdk5an2CTs7zVXBJtVLWB9bx0sEYBxsGoTvL8RVM0kJr5
 lE9dPjDnde9UqnnSZZpwQgl1pePq4RhIQHIHtFCI13fAc1EVYyN+uzzz7UGK6IaW
 UJBKx+6vXmuNJY8maGE9uWiE2L7gbiMfLGRDmgQvVAGgFFJXRYoDjQ6yQNKLutC3
 0jj+47pzkqMf9RB+4weA9iPlULC9gYi5enFTOF7EiToffzcusAOkZPegbcbFV+4P
 NxxPIEJ5BA//nPi6ot2AbtBxPQVnqeqXcVFh3wjVafzVG3W20BYz1VguiakRK/Ll
 SPmmauMZ3Sub+Bt3CECw+Td8gm7NiDGaDG6TjZh6hxpGuWa2W0o=
 =B1Cf
 -----END PGP SIGNATURE-----

Merge tag 'renesas-dts-for-v6.9-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt

Renesas DTS updates for v6.9

  - Add GPIO keys and watchdog support for the RZ/G3S SMARC development
    board,
  - Add GNSS support for Renesas ULCB development boards equipped with
    the Shimafuji Kingfisher extension,
  - Add support for the standalone White Hawk CPU board,
  - Add support for the R-Car V4H ES2.0 (R8A779G2) SoC and the White
    Hawk Single development board,
  - Add initial support for the R-Car V4M (R8A779H0) SoC and the Gray
    Hawk Single development board,
  - Add camera support for the RZ/G2UL SoC,
  - Miscellaneous fixes and improvements.

* tag 'renesas-dts-for-v6.9-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel: (29 commits)
  arm64: dts: renesas: gray-hawk-single: Enable watchdog timer
  arm64: dts: renesas: r8a779h0: Add RWDT node
  arm64: dts: renesas: Improve TMU interrupt descriptions
  ARM: dts: renesas: Improve TMU interrupt descriptions
  arm64: dts: renesas: r9a07g043u: Add CSI and CRU nodes
  arm64: dts: renesas: Add Gray Hawk Single board support
  arm64: dts: renesas: Add Renesas R8A779H0 SoC support
  arm64: dts: renesas: rzg3s-smarc-som: Enable the watchdog interface
  arm64: dts: renesas: r9a08g045: Add watchdog node
  arm64: dts: renesas: r8a779g0: Add missing SCIF_CLK2
  dt-bindings: clock: Add R8A779H0 V4M CPG Core Clock Definitions
  dt-bindings: clock: renesas,cpg-mssr: Document R-Car V4M support
  dt-bindings: power: Add r8a779h0 SYSC power domain definitions
  dt-bindings: power: renesas,rcar-sysc: Document R-Car V4M support
  arm64: dts: renesas: r8a779g2: Add White Hawk Single support
  arm64: dts: renesas: Add Renesas R8A779G2 SoC support
  arm64: dts: renesas: white-hawk: Factor out common parts
  arm64: dts: renesas: white-hawk-cpu: Factor out common parts
  arm64: dts: renesas: white-hawk: Add SoC name to top-level comment
  arm64: dts: renesas: white-hawk: Drop SoC parts from sub boards
  ...

Link: https://lore.kernel.org/r/cover.1707487834.git.geert+renesas@glider.be
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-02-29 16:06:54 +01:00
Arnd Bergmann
6b66ed51cd Renesas DT binding updates for v6.9
- Document support for the Renesas R-Car V4M (R8A779H0) SoC, and the
     White Hawk Single and Gray Hawk Single development boards.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCZcYvbQAKCRCKwlD9ZEnx
 cKMUAP9UMVep3q3/Z8ZQvLmWGJYIldgBBJy5lYSB5dZyor8oowEAhOakeAhmHM1Z
 wqA4PfWfDW0rtvpdYJb5DCiVKcr+fww=
 =i8jD
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmXgkBgACgkQYKtH/8kJ
 UictrhAAnW7pflU/AAaPM7nBCyb920rOcBbGqa0PPxRAsrHEXvKhS8ZRTR2bWzL0
 hLrzY0QO1oWIG83BPDpyQyxaaBC6oGjqIMLzl3PkXAoBsmPstuoQwCkFPerjtpRd
 vwd01mLTDRuJtJyRmV345E3rFj5SSkfX5pc5lIxmluPczUX6bxvadpViIkBAO79W
 zWovJn4oUvPncfSYYJmKrxG1j10eltXDSjH1mSdoOsD9A+RTMzBqyqoLCWzAcOVY
 7UhWfcZWj8TWgcQy33HkFyWr1dG153zlPPK0ZXe088lcdzteXNlw3e9rxXhlUcEe
 C1eG9oHSQxkNUERnRof/0bq4Cam9VFJP6CV3C0wBHVeZBKGhZtBDSvn6kcgsNB/J
 gzicQj0hjfmcqTzndJA8k6/FFTyLatLzyhpZhFpQk5TjN9C6YCs/G8UyxH6msp9m
 lUT4D+8+K2BZHuV1+0yQssVe973UDQ+UTD5T3VaMm1dMegXY/3sVV+wy9+wHxkAj
 O8L2vz3dqoTo9lNf2ukdL7lr405yAx49DpucV7JhckQ7SbzfL4hice/LN0ccRgc7
 XqSChzS7daUd8Xd1KQK0NlI1FD0cDHbyqHuGyZXGEbYZjRK3bL5bsFMyKr24Y7Ap
 wBDKsaQ6emTvgALL6iyOgPJGW4ypvM76sq8MkXrnLDMuhQeq+Ak=
 =FAFP
 -----END PGP SIGNATURE-----

Merge tag 'renesas-dt-bindings-for-v6.9-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt

Renesas DT binding updates for v6.9

  - Document support for the Renesas R-Car V4M (R8A779H0) SoC, and the
    White Hawk Single and Gray Hawk Single development boards.

* tag 'renesas-dt-bindings-for-v6.9-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel:
  dt-bindings: soc: renesas: Document R-Car V4M Gray Hawk Single
  dt-bindings: reset: renesas,rst: Document R-Car V4M support
  dt-bindings: soc: renesas: Document R-Car V4H White Hawk Single

Link: https://lore.kernel.org/r/cover.1707487832.git.geert+renesas@glider.be
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-02-29 15:09:28 +01:00
Will Deacon
88cb3e1d2a Merge branch 'for-joerg/arm-smmu/bindings' into for-joerg/arm-smmu/updates
Updates to the Arm SMMU device-tree bindings.

* for-joerg/arm-smmu/bindings:
  dt-bindings: arm-smmu: Document SM8650 GPU SMMU
  dt-bindings: arm-smmu: Fix SM8[45]50 GPU SMMU 'if' condition
  dt-bindings: arm-smmu: Add QCM2290 GPU SMMU
2024-02-29 13:49:10 +00:00
Biju Das
26fea220ad pinctrl: da9062: Add OF table
Add OF table as per the binding so that driver get instantiated and
bind automatically when the driver is built as a module.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Link: https://lore.kernel.org/r/20240226191607.397386-1-biju.das.jz@bp.renesas.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2024-02-29 14:44:08 +01:00
Varshini Rajendran
577293d391 dt-bindings: pinctrl: at91: add sam9x7
Add device tree binding for SAM9X7 pin controller.

Signed-off-by: Varshini Rajendran <varshini.rajendran@microchip.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20240223172531.671993-1-varshini.rajendran@microchip.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2024-02-29 14:40:32 +01:00
Colin Ian King
170c96246f pinctrl: ocelot: remove redundant assignment to variable ret
The variable ret is being assigned a value that is never read, it
is being re-assigned a value in every case statement in the following
switch statement. The assignment is redundant and can be removed.

Cleans up clang scan build warning:
drivers/pinctrl/pinctrl-ocelot.c:1404:3: warning: Value stored to 'ret'
is never read [deadcode.DeadStores]

Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
Link: https://lore.kernel.org/r/20240223162850.3914349-1-colin.i.king@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2024-02-29 14:38:09 +01:00
Bartosz Golaszewski
f6443e0177 pinctrl: don't put the reference to GPIO device in pinctrl_pins_show()
The call to gpiod_to_gpio_device() does not increase the reference count
of the GPIO device struct so it must not be decreased. Remove the buggy
__free() decorator.

Fixes: 524fc108b8 ("pinctrl: stop using gpiod_to_chip()")
Reported-by: David Arcari <darcari@redhat.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://lore.kernel.org/r/20240223123214.288181-1-brgl@bgdev.pl
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2024-02-29 14:36:40 +01:00
Takashi Sakamoto
d0b06dc48f firewire: core: use long bus reset on gap count error
When resetting the bus after a gap count error, use a long rather than
short bus reset.

IEEE 1394-1995 uses only long bus resets. IEEE 1394a adds the option of
short bus resets. When video or audio transmission is in progress and a
device is hot-plugged elsewhere on the bus, the resulting bus reset can
cause video frame drops or audio dropouts. Short bus resets reduce or
eliminate this problem. Accordingly, short bus resets are almost always
preferred.

However, on a mixed 1394/1394a bus, a short bus reset can trigger an
immediate additional bus reset. This double bus reset can be interpreted
differently by different nodes on the bus, resulting in an inconsistent gap
count after the bus reset. An inconsistent gap count will cause another bus
reset, leading to a neverending bus reset loop. This only happens for some
bus topologies, not for all mixed 1394/1394a buses.

By instead sending a long bus reset after a gap count inconsistency, we
avoid the doubled bus reset, restoring the bus to normal operation.

Signed-off-by: Adam Goldman <adamg@pobox.com>
Link: https://sourceforge.net/p/linux1394/mailman/message/58741624/
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
2024-02-29 22:18:14 +09:00
Alexander Ofitserov
616d82c3cf gtp: fix use-after-free and null-ptr-deref in gtp_newlink()
The gtp_link_ops operations structure for the subsystem must be
registered after registering the gtp_net_ops pernet operations structure.

Syzkaller hit 'general protection fault in gtp_genl_dump_pdp' bug:

[ 1010.702740] gtp: GTP module unloaded
[ 1010.715877] general protection fault, probably for non-canonical address 0xdffffc0000000001: 0000 [#1] SMP KASAN NOPTI
[ 1010.715888] KASAN: null-ptr-deref in range [0x0000000000000008-0x000000000000000f]
[ 1010.715895] CPU: 1 PID: 128616 Comm: a.out Not tainted 6.8.0-rc6-std-def-alt1 #1
[ 1010.715899] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.0-alt1 04/01/2014
[ 1010.715908] RIP: 0010:gtp_newlink+0x4d7/0x9c0 [gtp]
[ 1010.715915] Code: 80 3c 02 00 0f 85 41 04 00 00 48 8b bb d8 05 00 00 e8 ed f6 ff ff 48 89 c2 48 89 c5 48 b8 00 00 00 00 00 fc ff df 48 c1 ea 03 <80> 3c 02 00 0f 85 4f 04 00 00 4c 89 e2 4c 8b 6d 00 48 b8 00 00 00
[ 1010.715920] RSP: 0018:ffff888020fbf180 EFLAGS: 00010203
[ 1010.715929] RAX: dffffc0000000000 RBX: ffff88800399c000 RCX: 0000000000000000
[ 1010.715933] RDX: 0000000000000001 RSI: ffffffff84805280 RDI: 0000000000000282
[ 1010.715938] RBP: 000000000000000d R08: 0000000000000001 R09: 0000000000000000
[ 1010.715942] R10: 0000000000000001 R11: 0000000000000001 R12: ffff88800399cc80
[ 1010.715947] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000400
[ 1010.715953] FS:  00007fd1509ab5c0(0000) GS:ffff88805b300000(0000) knlGS:0000000000000000
[ 1010.715958] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 1010.715962] CR2: 0000000000000000 CR3: 000000001c07a000 CR4: 0000000000750ee0
[ 1010.715968] PKRU: 55555554
[ 1010.715972] Call Trace:
[ 1010.715985]  ? __die_body.cold+0x1a/0x1f
[ 1010.715995]  ? die_addr+0x43/0x70
[ 1010.716002]  ? exc_general_protection+0x199/0x2f0
[ 1010.716016]  ? asm_exc_general_protection+0x1e/0x30
[ 1010.716026]  ? gtp_newlink+0x4d7/0x9c0 [gtp]
[ 1010.716034]  ? gtp_net_exit+0x150/0x150 [gtp]
[ 1010.716042]  __rtnl_newlink+0x1063/0x1700
[ 1010.716051]  ? rtnl_setlink+0x3c0/0x3c0
[ 1010.716063]  ? is_bpf_text_address+0xc0/0x1f0
[ 1010.716070]  ? kernel_text_address.part.0+0xbb/0xd0
[ 1010.716076]  ? __kernel_text_address+0x56/0xa0
[ 1010.716084]  ? unwind_get_return_address+0x5a/0xa0
[ 1010.716091]  ? create_prof_cpu_mask+0x30/0x30
[ 1010.716098]  ? arch_stack_walk+0x9e/0xf0
[ 1010.716106]  ? stack_trace_save+0x91/0xd0
[ 1010.716113]  ? stack_trace_consume_entry+0x170/0x170
[ 1010.716121]  ? __lock_acquire+0x15c5/0x5380
[ 1010.716139]  ? mark_held_locks+0x9e/0xe0
[ 1010.716148]  ? kmem_cache_alloc_trace+0x35f/0x3c0
[ 1010.716155]  ? __rtnl_newlink+0x1700/0x1700
[ 1010.716160]  rtnl_newlink+0x69/0xa0
[ 1010.716166]  rtnetlink_rcv_msg+0x43b/0xc50
[ 1010.716172]  ? rtnl_fdb_dump+0x9f0/0x9f0
[ 1010.716179]  ? lock_acquire+0x1fe/0x560
[ 1010.716188]  ? netlink_deliver_tap+0x12f/0xd50
[ 1010.716196]  netlink_rcv_skb+0x14d/0x440
[ 1010.716202]  ? rtnl_fdb_dump+0x9f0/0x9f0
[ 1010.716208]  ? netlink_ack+0xab0/0xab0
[ 1010.716213]  ? netlink_deliver_tap+0x202/0xd50
[ 1010.716220]  ? netlink_deliver_tap+0x218/0xd50
[ 1010.716226]  ? __virt_addr_valid+0x30b/0x590
[ 1010.716233]  netlink_unicast+0x54b/0x800
[ 1010.716240]  ? netlink_attachskb+0x870/0x870
[ 1010.716248]  ? __check_object_size+0x2de/0x3b0
[ 1010.716254]  netlink_sendmsg+0x938/0xe40
[ 1010.716261]  ? netlink_unicast+0x800/0x800
[ 1010.716269]  ? __import_iovec+0x292/0x510
[ 1010.716276]  ? netlink_unicast+0x800/0x800
[ 1010.716284]  __sock_sendmsg+0x159/0x190
[ 1010.716290]  ____sys_sendmsg+0x712/0x880
[ 1010.716297]  ? sock_write_iter+0x3d0/0x3d0
[ 1010.716304]  ? __ia32_sys_recvmmsg+0x270/0x270
[ 1010.716309]  ? lock_acquire+0x1fe/0x560
[ 1010.716315]  ? drain_array_locked+0x90/0x90
[ 1010.716324]  ___sys_sendmsg+0xf8/0x170
[ 1010.716331]  ? sendmsg_copy_msghdr+0x170/0x170
[ 1010.716337]  ? lockdep_init_map_type+0x2c7/0x860
[ 1010.716343]  ? lockdep_hardirqs_on_prepare+0x430/0x430
[ 1010.716350]  ? debug_mutex_init+0x33/0x70
[ 1010.716360]  ? percpu_counter_add_batch+0x8b/0x140
[ 1010.716367]  ? lock_acquire+0x1fe/0x560
[ 1010.716373]  ? find_held_lock+0x2c/0x110
[ 1010.716384]  ? __fd_install+0x1b6/0x6f0
[ 1010.716389]  ? lock_downgrade+0x810/0x810
[ 1010.716396]  ? __fget_light+0x222/0x290
[ 1010.716403]  __sys_sendmsg+0xea/0x1b0
[ 1010.716409]  ? __sys_sendmsg_sock+0x40/0x40
[ 1010.716419]  ? lockdep_hardirqs_on_prepare+0x2b3/0x430
[ 1010.716425]  ? syscall_enter_from_user_mode+0x1d/0x60
[ 1010.716432]  do_syscall_64+0x30/0x40
[ 1010.716438]  entry_SYSCALL_64_after_hwframe+0x62/0xc7
[ 1010.716444] RIP: 0033:0x7fd1508cbd49
[ 1010.716452] Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d ef 70 0d 00 f7 d8 64 89 01 48
[ 1010.716456] RSP: 002b:00007fff18872348 EFLAGS: 00000202 ORIG_RAX: 000000000000002e
[ 1010.716463] RAX: ffffffffffffffda RBX: 000055f72bf0eac0 RCX: 00007fd1508cbd49
[ 1010.716468] RDX: 0000000000000000 RSI: 0000000020000280 RDI: 0000000000000006
[ 1010.716473] RBP: 00007fff18872360 R08: 00007fff18872360 R09: 00007fff18872360
[ 1010.716478] R10: 00007fff18872360 R11: 0000000000000202 R12: 000055f72bf0e1b0
[ 1010.716482] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
[ 1010.716491] Modules linked in: gtp(+) udp_tunnel ib_core uinput af_packet rfkill qrtr joydev hid_generic usbhid hid kvm_intel iTCO_wdt intel_pmc_bxt iTCO_vendor_support kvm snd_hda_codec_generic ledtrig_audio irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel snd_hda_intel nls_utf8 snd_intel_dspcfg nls_cp866 psmouse aesni_intel vfat crypto_simd fat cryptd glue_helper snd_hda_codec pcspkr snd_hda_core i2c_i801 snd_hwdep i2c_smbus xhci_pci snd_pcm lpc_ich xhci_pci_renesas xhci_hcd qemu_fw_cfg tiny_power_button button sch_fq_codel vboxvideo drm_vram_helper drm_ttm_helper ttm vboxsf vboxguest snd_seq_midi snd_seq_midi_event snd_seq snd_rawmidi snd_seq_device snd_timer snd soundcore msr fuse efi_pstore dm_mod ip_tables x_tables autofs4 virtio_gpu virtio_dma_buf drm_kms_helper cec rc_core drm virtio_rng virtio_scsi rng_core virtio_balloon virtio_blk virtio_net virtio_console net_failover failover ahci libahci libata evdev scsi_mod input_leds serio_raw virtio_pci intel_agp
[ 1010.716674]  virtio_ring intel_gtt virtio [last unloaded: gtp]
[ 1010.716693] ---[ end trace 04990a4ce61e174b ]---

Cc: stable@vger.kernel.org
Signed-off-by: Alexander Ofitserov <oficerovas@altlinux.org>
Fixes: 459aa660eb ("gtp: add initial driver for datapath of GPRS Tunneling Protocol (GTP-U)")
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Link: https://lore.kernel.org/r/20240228114703.465107-1-oficerovas@altlinux.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2024-02-29 14:14:18 +01:00
Alban Boyé
f8b0127aca
ASoC: Intel: bytcr_rt5640: Add an extra entry for the Chuwi Vi8 tablet
The bios version can differ depending if it is a dual-boot variant of the tablet.
Therefore another DMI match is required.

Signed-off-by: Alban Boyé <alban.boye@protonmail.com>
Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
Acked-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://msgid.link/r/20240228192807.15130-1-alban.boye@protonmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-02-29 12:22:50 +00:00
Stuart Henderson
231bf30c10
ASoC: madera: Fix typo in madera_set_fll_clks shift value
Fix a typo in the shift value used in madera_set_fll_clks.

Fixes: 3863857dd5 ("ASoC: madera: Enable clocks for input pins when used for the FLL")
Signed-off-by: Stuart Henderson <stuarth@opensource.cirrus.com>
Link: https://msgid.link/r/20240229114637.352098-1-stuarth@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-02-29 12:22:49 +00:00
Rob Herring
a8528f7f31 dtc: Enable dtc interrupt_provider check
Now that all the interrupt warnings have been fixed, enable
'interrupt_provider' check by default. This will also enable
'interrupt_map' check.

Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20240213-arm-dt-cleanups-v1-6-f2dee1292525@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-02-29 13:20:27 +01:00
Nirmoy Das
01bb1ae350 drm/i915: Check before removing mm notifier
Error in mmu_interval_notifier_insert() can leave a NULL
notifier.mm pointer. Catch that and return early.

Fixes: ed29c26911 ("drm/i915: Fix userptr so we do not have to worry about obj->mm.lock, v7.")
Cc: <stable@vger.kernel.org> # v5.13+
[tursulin: Added Fixes and cc stable.]
Cc: Andi Shyti <andi.shyti@linux.intel.com>
Cc: Shawn Lee <shawn.c.lee@intel.com>
Signed-off-by: Nirmoy Das <nirmoy.das@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240219125047.28906-1-nirmoy.das@intel.com
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
(cherry picked from commit db7bbd13f0)
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
2024-02-29 14:14:40 +02:00
Paolo Abeni
489645d3f1 Merge branch 'net-collect-tstats-automatically'
Breno Leitao says:

====================
net: collect tstats automatically

The commit 34d21de99c ("net: Move {l,t,d}stats allocation to core and
convert veth & vrf") added a field in struct_netdevice, which tells what
type of statistics the driver supports.

That field is used primarily to allocate stats structures automatically,
but, it also could leveraged to simplify the drivers even further, such
as, if the driver relies in the default stats collection, then it
doesn't need to assign to .ndo_get_stats64. That means that drivers only
assign functions to .ndo_get_stats64 if they are using something
special.

I started to move some of these drivers[1][2][3] to use the core
allocation, and with this change in, I just need to touch the driver
once, and be able to simplify the whole stats allocation and collection
for generic case.

There are 44 devices today that could benefit from this simplification.

	# grep -r .ndo_get_stats64 | grep dev_get_tstats64 | wc -l
	44

As of today, netnext only has the `sit` driver fully ported to core
stats allocation, hence the second patch.

Links:
[1] https://lore.kernel.org/all/20240227182338.2739884-1-leitao@debian.org/
[2] https://lore.kernel.org/all/20240222144117.1370101-1-leitao@debian.org/
[3] https://lore.kernel.org/all/20240223115839.3572852-1-leitao@debian.org/
====================

Link: https://lore.kernel.org/r/20240228113125.3473685-1-leitao@debian.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2024-02-29 12:50:16 +01:00
Breno Leitao
fa0cd90213 net: sit: Do not set .ndo_get_stats64
If the driver is using the network core allocation mechanism, by setting
NETDEV_PCPU_STAT_TSTATS, as this driver is, then, it doesn't need to set
the dev_get_tstats64() generic .ndo_get_stats64 function pointer. Since
the network core calls it automatically, and .ndo_get_stats64 should
only be set if the driver needs special treatment.

This simplifies the driver, since all the generic statistics is now
handled by core.

Signed-off-by: Breno Leitao <leitao@debian.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2024-02-29 12:50:13 +01:00
Breno Leitao
3e2f544dd8 net: get stats64 if device if driver is configured
If the network driver is relying in the net core to do stats allocation,
then we want to dev_get_tstats64() instead of netdev_stats_to_stats64(),
since there are per-cpu stats that needs to be taken in consideration.

This will also simplify the drivers in regard to statistics. Once the
driver sets NETDEV_PCPU_STAT_TSTATS, it doesn't not need to allocate the
stacks, neither it needs to set `.ndo_get_stats64 = dev_get_tstats64`
for the generic stats collection function anymore.

Signed-off-by: Breno Leitao <leitao@debian.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2024-02-29 12:50:13 +01:00
Andy Shevchenko
bc9c0a9967
spi: stm32-qspi: Replace of_gpio.h by proper one
of_gpio.h is deprecated and subject to remove.
The driver doesn't use it directly, replace it
with what is really being used.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://msgid.link/r/20240228194632.3606563-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-02-29 11:40:47 +00:00
Andy Shevchenko
18ebe6f6fc
spi: pic32: Replace of_gpio.h by proper one
of_gpio.h is deprecated and subject to remove.
The driver doesn't use it directly, replace it
with what is really being used.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://msgid.link/r/20240228194818.3606841-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-02-29 11:40:46 +00:00
Andy Shevchenko
d73709646c
regulator: da9121: Remove unused of_gpio.h
of_gpio.h is deprecated and subject to remove.
The driver doesn't use it, simply remove the unused header.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://msgid.link/r/20240228195730.3607154-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2024-02-29 11:40:30 +00:00
Yanteng Si
39de85775c net: stmmac: fix typo in comment
This is just a trivial fix for a typo in a comment, no functional
changes.

Reviewed-by: Serge Semin <fancer.lancer@gmail.com>
Signed-off-by: Yanteng Si <siyanteng@loongson.cn>
Link: https://lore.kernel.org/r/20240228112447.1490926-1-siyanteng@loongson.cn
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2024-02-29 12:35:45 +01:00
Priyanka Dandamudi
8188cae3cc drm/xe/xe_trace: Add move_lacks_source detail to xe_bo_move trace
Add move_lacks_source detail to xe_bo_move trace to make it readable
that is to check if it is migrate clear or migrate copy.

Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Signed-off-by: Priyanka Dandamudi <priyanka.dandamudi@intel.com>
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Fixes: a09946a9a9 ("drm/xe/xe_bo_move: Enhance xe_bo_move trace")
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240221101950.1019312-1-priyanka.dandamudi@intel.com
(cherry picked from commit 8034f6b070)
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
2024-02-29 12:32:15 +01:00
Paolo Abeni
b611b776a9 netfilter pull request 24-02-29
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEN9lkrMBJgcdVAPub1V2XiooUIOQFAmXfx4MACgkQ1V2XiooU
 IOSX+g//UHBfqYJASMMQJpWdMwWe7tB2m1LRzLYI+WUdUenK/MEylS7rNp/bwGkW
 42eDeGA0eov7kYNOY0rLB7lQBdUHwCpNZkdetTWFV9eHcEKA8cQ6OqcD1G8i41qg
 sCvObS+K/hq3f7fX9bJ9RvS5RvYoeuS1trw4mezhHwPS+1sj80v4FdqDOFCUqiT3
 65BfeoV65pVVteCRmJQxeeZ4Bepd4LRXW+VVyr3uXli/H87jqQOFxsOTqyXNEXIq
 jMYL0jnbYs0ARbNYXRYySLYQCWmbVXpfnt4JIBRP0S1e6Prby2hqUwJBeyNcXBAu
 CwBTjCEdLIV5G25EWTZWBYQdihct58s0GDRX078Sj/AozQJAWTxBEn0QLhKy2gvH
 2uspA0S2z1PS69hUvHfgGjDiBKw41T2O6D/12NBxI1DOYDLsk7ApE5tKqynUnUIj
 pOLUiolFnJd4JKnGZ/CTATpGi8KX/iSWdX8OElCpGOvKQgZyU8IXrydjcHnJz7b4
 AdsIfpjjZSdz2VU6ZmzLYJrWf6ukAchO5kYL2FIJt/eFEyGqDfwGL36FIO7YGcnu
 NPHtIF23Ldl+GIesc9UT08k+IOsfR9LMbUduJC6Dg63FDrEkFfOv+wXA1eURW3kS
 tq+eWs+QjlCeWG9FgW2NHj3+rGyjQbGOe+v1yTgl1x/BhXNV1cM=
 =2BRo
 -----END PGP SIGNATURE-----

Merge tag 'nf-24-02-29' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf

Pablo Neira Ayuso says:

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

Patch #1 restores NFPROTO_INET with nft_compat, from Ignat Korchagin.

Patch #2 fixes an issue with bridge netfilter and broadcast/multicast
packets.

There is a day 0 bug in br_netfilter when used with connection tracking.

Conntrack assumes that an nf_conn structure that is not yet added to
hash table ("unconfirmed"), is only visible by the current cpu that is
processing the sk_buff.

For bridge this isn't true, sk_buff can get cloned in between, and
clones can be processed in parallel on different cpu.

This patch disables NAT and conntrack helpers for multicast packets.

Patch #3 adds a selftest to cover for the br_netfilter bug.

netfilter pull request 24-02-29

* tag 'nf-24-02-29' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf:
  selftests: netfilter: add bridge conntrack + multicast test case
  netfilter: bridge: confirm multicast packets before passing them up the stack
  netfilter: nf_tables: allow NFPROTO_INET in nft_(match/target)_validate()
====================

Link: https://lore.kernel.org/r/20240229000135.8780-1-pablo@netfilter.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2024-02-29 12:16:08 +01:00
Lukasz Majewski
51dd4ee037 net: hsr: Use correct offset for HSR TLV values in supervisory HSR frames
Current HSR implementation uses following supervisory frame (even for
HSRv1 the HSR tag is not is not present):

00000000: 01 15 4e 00 01 2d XX YY ZZ 94 77 10 88 fb 00 01
00000010: 7e 1c 17 06 XX YY ZZ 94 77 10 1e 06 XX YY ZZ 94
00000020: 77 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00000030: 00 00 00 00 00 00 00 00 00 00 00 00

The current code adds extra two bytes (i.e. sizeof(struct hsr_sup_tlv))
when offset for skb_pull() is calculated.
This is wrong, as both 'struct hsrv1_ethhdr_sp' and 'hsrv0_ethhdr_sp'
already have 'struct hsr_sup_tag' defined in them, so there is no need
for adding extra two bytes.

This code was working correctly as with no RedBox support, the check for
HSR_TLV_EOT (0x00) was off by two bytes, which were corresponding to
zeroed padded bytes for minimal packet size.

Fixes: eafaa88b3e ("net: hsr: Add support for redbox supervision frames")
Signed-off-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Link: https://lore.kernel.org/r/20240228085644.3618044-1-lukma@denx.de
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2024-02-29 10:42:46 +01:00
Mika Kuoppala
785f4cc068 drm/xe: Deny unbinds if uapi ufence pending
If user fence was provided for MAP in vm_bind_ioctl
and it has still not been signalled, deny UNMAP of said
vma with EBUSY as long as unsignalled fence exists.

This guarantees that MAP vs UNMAP sequences won't
escape under the radar if we ever want to track the
client's state wrt to completed and accessible MAPs.
By means of intercepting the ufence release signalling.

v2: find ufence with num_fences > 1 (Matt)
v3: careful on clearing vma ufence (Matt)

Link: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/1159
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240215181152.450082-3-mika.kuoppala@linux.intel.com
(cherry picked from commit 158900ade9)
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
2024-02-29 10:39:03 +01:00
Mika Kuoppala
86b3cd6d07 drm/xe: Expose user fence from xe_sync_entry
By allowing getting reference to user fence, we can
control the lifetime outside of sync entries.

This is needed to allow vma to track the associated
user fence that was provided with bind ioctl.

v2: xe_user_fence can be kept opaque (Jani, Matt)
v3: indent fix (Matt)

Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Matthew Brost <matthew.brost@intel.com>
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240215181152.450082-2-mika.kuoppala@linux.intel.com
(cherry picked from commit 977e5b82e0)
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
2024-02-29 10:39:02 +01:00
Lucas De Marchi
4ca5c82988 drm/xe: Use pointers in trace events
Commit a0df2cc858 ("drm/xe/xe_bo_move: Enhance xe_bo_move trace")
inadvertently reverted commit 8d038f49c1 ("drm/xe: Fix cast on trace
variable"), breaking the build on 32bits.

As noted by Ville, there's no point in converting the pointers to u64
and add casts everywhere. In fact, it's better to just use %p and let
the address be hashed. Convert all the cases in xe_trace.h to use
pointers.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Matt Roper <matthew.d.roper@intel.com>
Cc: Priyanka Dandamudi <priyanka.dandamudi@intel.com>
Cc: Oak Zeng <oak.zeng@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240222144125.2862546-1-lucas.demarchi@intel.com
(cherry picked from commit 7a975748d4)
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
2024-02-29 10:39:02 +01:00