Commit graph

1,189,500 commits

Author SHA1 Message Date
Arnd Bergmann
58fd11a796 TI K3 devicetree updates for v6.2
New Features:
 J721e:
 * PWMs, BeagleBone AI-64 platform.
 J721s2:
 * Crypto
 
 AM65/AM62:
 * General purpose Timer support (system timer is still arch timer)
 
 Fixes:
 * Bunch of fixes in crypto usage and GPIO intr
 * Minor schema related fixes for audio, addressing etc.
 
 Cleanups:
 * Refactor of device tree to "disable" peripherals at SoC level
   for nodes that are un-usable without board level properties.
   TI K3 devices have large number of peripherals of which only a
   smaller subset is actually enabled on platforms. Switching
   to this approach enables two benefits: lesser confusion in
   creating board level devicetrees as only relevant pinned out
   device nodes need enabled, as well as smaller board device
   trees as most un-used peripherals don't need to explicitly
   disabled.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE+KKGk1TrgjIXoxo03bWEnRc2JJ0FAmN8+zoACgkQ3bWEnRc2
 JJ0dsRAAmLcu03TUPFJbjHikmzD3a3MuUYdwU6ZboeapELZBgyNwVX4jsRUlomh4
 KH8bjUnOZsPFYwIviuQ1/vbcgypaDqu3f4neTYETycR+Q1cBr+1q7fgVS797oKDv
 D6AEMVcAHW47d3OyEWwe1XadPdk+m+KmGMz3ENunpPDQX0HxpZXgF8wYKH4pQI93
 giEn6oQUeTi/973StP+HrSPWtbMz6yAn7YFwoZeAdjrpb2cNAkGTwAj8UC+s7HgH
 7CuthRTVEfllyIx3pT5fc5UyaWVnf66epO+u5oXLXwvGYkLmdRZAcVdQmJ5PayW1
 IX4D//9aTWDpgcnIchMB5iFxxdz+ZI1mfsj7jFiP1vRYTmuCu7AjLBj96jx1KHlt
 2GhSqMiEEy5OkNtzpPSGwL9XFFVS+J/Kl1dnbJTJbnZGlc54XWvdeqBKx/GN8Kzv
 DrhSBfvBCVdv5A2qGqFPYe+MdrIikPQL5YtnPABGQB9NWpEeZ1gXzKky0qoY4aT9
 0B6J5B4G2srK0V5s4SC477jpktQ6LCq3GelKW2QJ5dsgu3Cqs1lzz21Zt4H/u4JL
 XFgKLkuLLbZKGuZBpWipgWcLDJPbKzWvORP+Ot/sfRSKOzFf1PooMRsneW494pTQ
 2CC/SmCmSDo/E2gwYUVWFVdBU8LK4ccy2e/Y8/pPYV+R7zOYZz4=
 =t5qJ
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN+BgIACgkQmmx57+YA
 GNluWA//dZMdo2/ex+G4mkF9SISEmzuhL5ewjmTCRp92FLO68tCirLAHMy/DSb7i
 LiowRLLGH+vF0ddFC+fgzW8s3FI2KV7qppf+YaI6BiUFOUG2MeF/vVkoc7H8TnhG
 JTG9faIP29lXIZc7dYpElRkkUDwVaNbzN6L2RXQL97Juv9mINWjIOjmblfAj+Bf/
 f+K7ojQsALhRfWz4gAV4Voe9eSIzxBXoFyKpGIds1q2kAiEbzT4caFOHUuG8/WUG
 nYDYZcC1aRzrVR8SmF/043ERm041zYtqkGdp1GIamBulZEPdcFOWY0fyFQjlX1/q
 LMv4Z3KEm7y7mEDeWX5OoSaz2qKGQgQl2UJiteyck2B9MvuaLugya56lOusVnL8C
 1Jtw3fmEhU1BWwnD2+PMq7fJT8zsTCUDzc1+rY8XoDJe/KK51So3umCQ7olcbGdQ
 tNqLFCcDMBaEqko4hiHDwVxbc/Y9xolHtxNppXOxTThoDVgA2BzhkyY1AIogr+Sc
 h95h1Ye2B1m2RAUQrt6yFxol0Os6yB7DN2df+pfzK1vKepCAZwiUG+i+tZFWS40N
 daXvZlKeclZkGjaTwE0DXNZ1Iwo21x0pZwstslCvX8VM3f6st0+WhvJRMq3dfEIP
 NsQguzx3aR4CMUS9RG5UD4qda4wvoB90gJXRNX3WpIz8d9yfgy8=
 =jEEu
 -----END PGP SIGNATURE-----

Merge tag 'ti-k3-dt-for-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/dt

TI K3 devicetree updates for v6.2

New Features:
J721e:
* PWMs, BeagleBone AI-64 platform.
J721s2:
* Crypto

AM65/AM62:
* General purpose Timer support (system timer is still arch timer)

Fixes:
* Bunch of fixes in crypto usage and GPIO intr
* Minor schema related fixes for audio, addressing etc.

Cleanups:
* Refactor of device tree to "disable" peripherals at SoC level
  for nodes that are un-usable without board level properties.
  TI K3 devices have large number of peripherals of which only a
  smaller subset is actually enabled on platforms. Switching
  to this approach enables two benefits: lesser confusion in
  creating board level devicetrees as only relevant pinned out
  device nodes need enabled, as well as smaller board device
  trees as most un-used peripherals don't need to explicitly
  disabled.

* tag 'ti-k3-dt-for-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux: (61 commits)
  arm64: dts: ti: Add k3-j721e-beagleboneai64
  dt-bindings: arm: ti: Add bindings for BeagleBone AI-64
  arm64: dts: ti: k3-j721s2-main: Enable crypto accelerator
  arm64: dts: ti: k3-am64-main: Drop RNG clock
  arm64: dts: ti: k3-j721e-main: Drop RNG clock
  arm64: dts: ti: k3-am65-main: Drop RNG clock
  arm64: dts: ti: j721e-common-proc-board: Fix sound node-name
  arm64: dts: ti: k3-j721s2: Fix the interrupt ranges property for main & wkup gpio intr
  arm64: dts: ti: k3-j7200-mcu-wakeup: Drop dma-coherent in crypto node
  arm64: dts: ti: k3-j721e-main: Drop dma-coherent in crypto node
  arm64: dts: ti: k3-am65-main: Drop dma-coherent in crypto node
  arm64: dts: ti: k3-am62: Add general purpose timers for am62
  arm64: dts: ti: k3-am65: Add general purpose timers for am65
  arm64: dts: ti: k3-am65: Configure pinctrl for timer IO pads
  arm64: dts: ti: Trim addresses to 8 digits
  arm64: dts: ti: k3-j721e-sk: Add pinmux for RPi Header
  arm64: dts: ti: k3-j721e-main: Add dts nodes for EHRPWMs
  arm64: dts: ti: k3-am65: Enable McASP nodes at the board level
  arm64: dts: ti: k3-am65: Enable Mailbox nodes at the board level
  arm64: dts: ti: k3-am65: Enable PCIe nodes at the board level
  ...

Link: https://lore.kernel.org/r/20221122190209.jwfj56d6kxpxdkua@untreated
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-23 12:37:38 +01:00
Arnd Bergmann
375aab1018 ASPEED device tree updates for 6.2
- New machines
 
   * IBM Bonnell AST2600 BMC, for a Power10 server
   * Delta AHE-50DC AST1250 BMC, for a 1U Open19 power shelf
 
  - Removed machines
 
   * IBM Mihawk AST2500 BMC, a Power9 server similar to Witherspoon
 
  - Fixes and updates for bletchley, mtjade/mtmitchell, rainier/everest
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE+nHMAt9PCBDH63wBa3ZZB4FHcJ4FAmN8HNsACgkQa3ZZB4FH
 cJ7t0g//QslK6GjSqwDlGiiSAzLTOFgKqN1NFrxv/ad+OAsBRbcLXLXzF0JTPIba
 Wk5kGZYFEHOqbxwGEPhuZOY3j452x1yvYIhG34B3RSverrexUswY+ipkm+gqXqzd
 oLbvBKFEmPKuYb79Cb8PG24Y1pekSpWz0X0wi8gjy0wgkH0x0UDsagXPWzUCncG9
 2sg1ROqcITlVFw4nZHZXIQnLxRKPM4DLCrH5r6fFBbs9QMPLXZAnOFmGiFKu5JFk
 C1morX+wuxGfBInOgkecTJH1706CnpykkeZK5SpDoV4xx649B0c+59pyeGh3aEFd
 ST7BgxTSvkshQ9skScfsW+xGxgjdo+H55sudarioCKlbEG3Nm9fbt/cn7XM7cfRy
 qLYC85DIM6y6MFSlmLOLjF0mzRDF6sZdibqL9WL/yy6+3TMo1v9WXKsyLwzP6R10
 gN+q2OnDm8WhGerOg3siZMwf0P0nVoGAdr7on1DWd+1uH5LTNUn6qKYHxzomcVQA
 vAyHPCDjpPE5AOr893AR7xEiBw4K7+lUtW6Pue0tJdpX3XZIfjqixMS6Xu9uv9Ap
 FgQo1G9O6AveljVQ3fzBi1fqgwfE5bHEqNQzEFp6fNEgkV13cp2yBYrqB7jLkQUN
 munRuiRWYQmTOr+w++FYLUwgxx+9zgbctNQbgL0ikbryZf2rPbE=
 =yXv9
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN+BB0ACgkQmmx57+YA
 GNlWVw//UYCgzkJXVyMwbEXp2L4AlHSVXWxcznZwvNi/Bzp8CuGv1PUT9POoOn/r
 74I373Lw3/rF7KthO3YDFBGeVucwr1+IwsG7HmVVCTYfRD8AleUndCXXcnRpV31p
 nPJZA+iIgFwhvdz9b/CmF07vAmQuQENiOUC6nBegPqw3MtP14W0mxzX50801DJHY
 fWJX22qnYR69QyYao4UeuO1rV5u+YiovGS9Ort5Pp1Ff4j/RPNK3sgKRytF7dyKZ
 I5T3k+cME5i/jduUxtETSJJuidHl47+mGk2x1us2elnXrfszTsXuSzYPR3+D1J3Q
 rH8x+0QJCL0Z0jXkShwM+uT4FF/dTYQpcb8h1iQczVp3pcYeEr5jJtpoxOAz1P4X
 CWI6uhBOOTveQy8v8Pr+2QnJJ3yoZ3qh/fnMIpbbSXYP7fxo/8MrD2EczWKPLU9f
 RStTJyMwgjPTtQAbFyvVslWMzgmD0To2PKm3Yyrc0Qn63vgTyPlc1D9b5VfL0diE
 89Qh+en6OFUMgHTjg8xwdawcwrQH/ig0tPa9Hjthq/NgpVuImbZKM6zeHHq2tro4
 EdT9Bb8lvLb7bSpdtvkiCYdNpqKJ4NwaZEQ4D1PMQUGPeVQQruyOf8+4jxgAkfTe
 AFFoofxBw2UepFXsX9mR44Omo1i/tlOucVtm1dXmgsRJDiHbPNk=
 =zCUY
 -----END PGP SIGNATURE-----

Merge tag 'aspeed-6.2-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/bmc into soc/dt

ASPEED device tree updates for 6.2

 - New machines

  * IBM Bonnell AST2600 BMC, for a Power10 server
  * Delta AHE-50DC AST1250 BMC, for a 1U Open19 power shelf

 - Removed machines

  * IBM Mihawk AST2500 BMC, a Power9 server similar to Witherspoon

 - Fixes and updates for bletchley, mtjade/mtmitchell, rainier/everest

* tag 'aspeed-6.2-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/bmc:
  ARM: dts: aspeed: mtjade: Add SMPro nodes
  ARM: dts: aspeed: mtjade,mtmitchell: Add BMC SSIF nodes
  ARM: dts: aspeed: Add Delta AHE-50DC BMC
  dt-bindings: arm: aspeed: document Delta AHE-50DC BMC
  ARM: dts: aspeed: rainier: Fix pca9551 nodes
  ARM: dts: aspeed: p10bmc: Add occ-hwmon nodes
  ARM: dts: aspeed-g6: Add aliases for mdio nodes
  ARM: dts: aspeed: Remove Mihawk
  ARM: dts: aspeed: rainier,everest: Move reserved memory regions
  ARM: dts: aspeed: Add IBM Bonnell system BMC devicetree
  ARM: dts: aspeed: bletchley: Enable emmc and ehci1
  ARM: dts: aspeed: bletchley: Update and fix gpio-line-names
  ARM: dts: aspeed: bletchley: Update fusb302 nodes
  ARM: dts: aspeed: bletchley: Bind presence-sledX pins via gpio-keys
  ARM: dts: aspeed: bletchley: Disable GPIOV2 pull-down
  ARM: dts: aspeed: bletchley: Change LED sys_log_id to active low

Link: https://lore.kernel.org/r/CACPK8Xfsc8BaL_qAgV+3Rk-AFcQoDVfTpMzHvq_rR-UYqwpNNQ@mail.gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-23 12:29:32 +01:00
Arnd Bergmann
714aac5dcd
Merge tag 'tegra-for-6.2-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
ARM: tegra: Device tree changes for v6.2-rc1

This fixes various minor issues in device trees that are flagged by the
DT validation tools.

* tag 'tegra-for-6.2-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  ARM: tegra: Remove duplicate pin entry in pinmux
  ARM: tegra: Remove unused interrupt-parent properties
  ARM: tegra: Fix nvidia,io-reset properties
  ARM: tegra: Add missing power-supply for panels
  ARM: tegra: Fixup pinmux node names
  ARM: tegra: Use correct compatible string for ASUS TF101 panel

Link: https://lore.kernel.org/r/20221119012025.3968358-6-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-23 12:28:47 +01:00
Geert Uytterhoeven
50315945d1 dt-bindings: pwm: renesas,tpu: Add r8a779g0 support
Document support for the 16-Bit Timer Pulse Unit (TPU) in the Renesas
R-Car V4H (R8A779G0) SoC.

Based on a patch in the BSP by CongDang.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
2022-11-23 12:22:35 +01:00
Geert Uytterhoeven
5719efcc5a dt-bindings: pwm: renesas,pwm-rcar: Add r8a779g0 support
Document support for the PWM timers in the Renesas R-Car V4H (R8A779G0)
SoC.

Based on a patch in the BSP by CongDang.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
2022-11-23 12:22:10 +01:00
Richard Fitzgerald
3115be5513
ASoC: soc-dai: Do not call snd_soc_link_be_hw_params_fixup() twice
For a BE link snd_soc_link_be_hw_params_fixup() is called by
dpcm_be_dai_hw_params() to initialize the params before it passes them
to __soc_pcm_hw_params(). Then __soc_pcm_hw_params() refines params to
match the BE codec and passes that to snd_soc_dai_hw_params().

The second call of snd_soc_link_be_hw_params_fixup() within
snd_soc_dai_hw_params() was overwriting the refined params with the
original BE CPU DAI params. This would then lead to various problems,
for example passing an invalid number of channels to the codec driver
hw_params(), or enabling more AIF widgets on the codec than are actually
mapped by TDM slots.

These errors may not be noticed on a simple 1:1 link between one CPU DAI
and one codec DAI, because most likely they have the same DAI config
(though this is not necessarily true, for example if the CPU end has dummy
TDM slots to achieve a desirable BCLK).

For 1:N mappings there are likely to be multiple codecs using different
subsets of the TDM slots and this overwriting of the refined params
can cause incorrect configuration of each codec on the link.

The erroneous extra call to the BE fixup function() was introduced
by:
commit a655de808c ("ASoC: core: Allow topology to override machine
driver FE DAI link config.")

at that time, the call to the BE fixup was already done by
dpcm_be_dai_hw_params(), which was introduced several years earlier
by:
commit 01d7584cd2 ("ASoC: dpcm: Add Dynamic PCM core operations.")

The erroneous code has changed and moved to a different source file
since the patch that introduced it, so this fix patch won't directly
apply as a fix on top of code older than:
commit 8b4ba1d317 ("ASoC: soc-dai: fix up hw params only if it is
needed")

though it can be applied with some minor adjustment to code before
that patch but after:
commit aa6166c2ac ("ASoC: soc-dai: mv soc_dai_hw_params() to soc-dai")

On any tree older than that the code is in soc-pcm.c.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20221104160252.166114-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-11-23 11:10:43 +00:00
Richard Fitzgerald
fe07130870
ASoC: wm_adsp: Allow client to hook into pre_run callback
Some HALO-based codecs need some additional custom setup in the
pre_run stage of cs_dsp. Implement the callback in wm_adsp to call
an optional codec driver callback.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20221109165331.29332-11-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-11-23 11:10:42 +00:00
Arnd Bergmann
66b55cae49
Merge tag 'qcom-drivers-for-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/drivers
Qualcomm driver updates for 6.2

The qcom,msm-id and qcom,board-id DeviceTree properties are documented,
to allow them to be used in configurations or devices requiring these
and the socinfo driver is updated to reuse the introduced identifiers.

The rpmh-rsc driver is extended to register for PM runtime notifications
from the CPU clusters, in order to submit sleep and wake votes the last
core in a cluster is being powered down.

A mechanism for keeping rpmhpd resources voted until sync_state is
introduced, this ensures that power-domains required during boot are
kept enabled. The rpmhpd power-domains for SDM670 are also added.

Support for the new QDU1000/QRU1000 platform is introduced in the rpmhpd
and socinfo drivers.

The APR driver gains missing error handling. QMI message descriptors in
the PDR driver are made const.

Support for the RPM found in SM6375 is added. The SPM driver gains
support for MSM8939 and MSM8976 platforms.

The stats and command-db drvers are marked as not having PM support.

* tag 'qcom-drivers-for-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (36 commits)
  dt-bindings: firmware: scm: add sdm670 compatible
  soc: qcom: rpmh-rsc: Write CONTROL_TCS with next timer wakeup
  soc: qcom: rpmh-rsc: Save base address of drv
  PM: domains: Store the next hrtimer wakeup in genpd
  soc: qcom: rpmh-rsc: Attach RSC to cluster PM domain
  dt-bindings: soc: qcom: Update devicetree binding document for rpmh-rsc
  dt-bindings: soc: qcom: qcom,smd-rpm: Use qcom,smd-channels on MSM8976
  soc: qcom: apr: Add check for idr_alloc and of_property_read_string_index
  soc: qcom: socinfo: Add QDU1000/QRU1000 SoC IDs to the soc_id table
  dt-bindings: arm: qcom,ids: Add SoC IDs for QDU1000/QRU1000
  soc: qcom: rpmhpd: Add QDU1000/QRU1000 power domains
  dt-bindings: power: rpmpd: Add QDU1000/QRU1000 to rpmpd binding
  dt-bindings: qcom: smp2p: Add WPSS node names to pattern property
  soc: qcom: spm: Implement support for SAWv2.3, MSM8976 L2 PM
  dt-bindings: soc: qcom: spm: Add compatibles for MSM8976 L2
  soc: qcom: llcc: make irq truly optional
  soc: qcom: spm: Add MSM8939 SPM register data
  dt-bindings: soc: qcom: spm: Add MSM8939 CPU compatible
  dt-bindings: soc: qcom: aoss: Add sc8280xp compatible
  dt-bindings: firmware: document Qualcomm SM6375 SCM
  ...

Link: https://lore.kernel.org/r/20221122202748.1854487-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-23 12:02:44 +01:00
Arnd Bergmann
3d7be6e5fb Qualcomm ARM defconfig updates
This enables remaining Qualcomm TLMM pinctrl drivers in the
 qcom_defconfig.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmN9MksVHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3FFDUP/j/nivFxJxBdye9IcCQfl57QM1yL
 fzSszs8m/D0BAWZ1DmuDm+p2h+kD350Akg4rf8vfjQGF6RGf6JK8i5mnqVs7jH0w
 yMBQwisknMCWkTLJHuFWofpld/Xg+rMuZJLdJJRnL9znggFy2/Pp+V0J2YavzyTG
 Aq2P6RaJfvuibKvYVFFnvD+g//5jWMYor4ltKY+Hl3F0Pv89soBRogjD9A3yduxw
 wFpqGrK2ytqqckGrDBiRwEztKvZjC/nVWLESxl3DVXvKJCMpQVK/gWP3zgEMz4/g
 +OJzL1HeJFuzrnOpN6l33Ixip0RqgW+0eqayVLWFQLLyrEnA1Igs5HLVgoockpnX
 G9kKT4lek7rQY8o5ALa7jK6NYPJu+gTu/KUCf/+GMcxqcLRTk8gjZLG2lMaM+mRD
 h68nC/+0088AieDrUzPR5OEzykbOxOiDFxoI+HVep5i07ixewZYkeL+dXDNRpkYD
 sqhFi1j/KQ+FXuyKS3JQ+dV1heyPvdmSVQtZ7/AB5g4fgdSbgZhV7U8HRZSXArkS
 uK3bUUD/5JKrcWjFmEX9y0nbLJY9l1sIZiKXOrY9xKk2y4ZKhJp2ZyaQ/tCTOE44
 YguC4ITV2WzqExDOTHO/15+LVAap9CDIZZK0ch3s9eXl04m9o4ukoAuyjtiK4Qub
 Vrgad1d+aP2b306i
 =mkSS
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN9/XYACgkQmmx57+YA
 GNlR2xAAhuy2uirCtUe6AlQVX7P1lGuf6QmlRJc9QnWix75Woh5vFAtEqMFvLLRj
 9g895Jq20KJosPddb6bEJZ+r9HOXnR9t4pWL1sJsrf0MdyfTn2ehFwtP2ZLptfnk
 BP3BWnEG/w6qrMI94pmaIuqOdYr5ItB3FgAmuqJiRcBU7pId6qRrjPwKSlPC+Vak
 6U6geHcX9BmiHvOphRW+E5hkeFC37JN46TJQqbe8x59U9vHbRrIisNug1I0+d2fS
 7bW2RA5DM928mmnPBfXV84IPyUM2tZgie6ngbM3fsYF/eT8WaxaPqK4K+cU2nXaL
 g6N5zhTwARmF3l5o+wiJxkW4RUsd6A+6DQYPud1RY5l/RFTCl7hurGoIbkk/0+Es
 KdoAuOdJbrVfC1lkH24SwFQn+NI7SXV1MPptvpzd2/37d++g/p74wKNWPDzi8OtS
 qzJbwyU6HphuogHVDjTWKcZZ9ilnNz4XZZ6BhkCMsc9RjXhhU3X5b/zizdAQm3U9
 408qJLTLVCWehabVAOMWibk021rpSZ5leGnS1oQ0pD4a2F1aF6S9s/D4NtVcxE+l
 h8qdTe5Bl0EldUQX++GctdyUys1eh9oZ+6dvCwgXbN4+sM46SjlBE1pn/V8yQ8sj
 uQ3YX5XML6M1YJL18HofUPuBHpFqGSFLTMVbbjvWftri7mDGTr4=
 =gx58
 -----END PGP SIGNATURE-----

Merge tag 'qcom-defconfig-for-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/defconfig

Qualcomm ARM defconfig updates

This enables remaining Qualcomm TLMM pinctrl drivers in the
qcom_defconfig.

* tag 'qcom-defconfig-for-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  ARM: qcom_defconfig: enable rest of ARMv7 SoCs pinctrl drivers

Link: https://lore.kernel.org/r/20221122203452.1855254-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-23 12:01:10 +01:00
Arnd Bergmann
5658baf2e3 Qualcomm ARM64 defconfig updates for 6.2
This enables more Qualcomm TLMM pinctrl drivers, and the Qualcomm crypto
 drivers.
 
 It makes the SC7180 and SM8450 interconnect drivers builtin, in order to
 ensure that a console will be registered before init needs it.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmN9MYYVHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3FWhYQAMe5DH0Bpf1cyPl4WIyIca0w/WlH
 z5e628vJfpsW6Nu+zg8VOkpRibI8w8lIx844aq5913FFpYIiiV4zeaHXmwpzZeFm
 GDuPh65thGhB5J5ytuAJPhgXuluLHLhXcMBaLqOUc5oEojp2j+3ga/IKxkgqRGn9
 5X6DxkVBXdsFNII7iPgeazqWKCSLaZuM7yXFJsgHxk6EeH5z4/1gIu9YQVWKvRFV
 HWudXoqoNZw4xQ0hllM9J3T9410JElIu3W87OngET3eZmmL7ela+/oKBA77azYCB
 5z0JXrJp1SRUoVhiKMUqQZ1FR5HRVbvUu7DT8nVGxRDkArJ1TikQbiH8Viv0K+2m
 02YVgtB2TFEZjx8SMJ1doawPmbvfEecJVJsjBOclugHKOAqO7do7Agqtg8hlNqGf
 9cmqUcVC3fHCMXsJKwY3dqqCQSElNoPE1AOHz43RjHo1l2XaCPGZDUbMd1wEOVUB
 fNX9IDp9s06YVzJsbJXmVOxV3npvL2ojVHMRECiGNQ8hKNyDWTh0WtgLS/InnKH/
 5o10Tk/kxGYK6IxHOIeuz4BLSf3Cpo91be7MgzEGlfICf2IfUBHPJGOcexkc+bRF
 COFgTkItuE74z1lGVwb7twUWzSGX3YmgwhYDXhaQdD+2dw3IRIZyWw5Gy+MKJt6h
 oULhqQljgiC35q18
 =mRnV
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN9/VUACgkQmmx57+YA
 GNlJxxAAvuQF8wjScIiLDDfTWum5wZZXu9orKBxx2CUpeTqAqnRrFxyU8xDEpMQf
 noUOpaoWNsbQhyJJVGf9Nb59mqcLbwttbnnrHMP2M3F4hvkMrVaYd2QOYpORNeia
 IbW98OdF43XGCDGSyjnYaU/dag36jpbyG6Wdy/3LIJgobAXOaD/biyVR09h39cXG
 vrarh2lQl2aURNpK///nPCSv8l+ueZAnOgIFOtyqI4B7SdGIrBoVcgWUKUZ+QeSh
 u0pILupBLUKihq6l0GrVlSmyBuMFUXqUztLES3drvrFesQJhAseFeA85ulJ2wAG3
 kJUd6d8D9SbJOSHmPtNr+zG/jHam3uNWt4qAB+icWypqAn2w6dPKvLqIxgpuTwWM
 ZvcY5zDyS/rEtiLgSUTtjjMqIZEz8nYuPDUD2WAxzvAOVDXnN8Qaw6SPx5YeW/J0
 PlN0xnMWyu0kwIy8BROpCi1dLVo5RkU8uSPcvnpSIVLHC5cZFPpPTfw3WzQ/LX5J
 LfGbSBLh7CqPPQyCNRPokT9chC9e4TmQQubKTnwKz+JzADRiYHQ1YJpbNEYukfgp
 74PjdYmbTuMkRFq81tPjk8NGA2YXbEO9MsUbMFKoRsWGa4KGcPvfBTvQWR+lJOPG
 uWN+TyYBrT3SogBsRZpmOQIh3izEVCUypTOWc6/OmD2Vv6X82e0=
 =wQQD
 -----END PGP SIGNATURE-----

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

Qualcomm ARM64 defconfig updates for 6.2

This enables more Qualcomm TLMM pinctrl drivers, and the Qualcomm crypto
drivers.

It makes the SC7180 and SM8450 interconnect drivers builtin, in order to
ensure that a console will be registered before init needs it.

* tag 'qcom-arm64-defconfig-for-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  arm64: defconfig: build-in Qualcomm SC7180 and SM8450 interconnects
  arm64: defconfig: Enable Qualcomm QCE crypto
  arm64: defconfig: enable rest of Qualcomm ARMv8 SoCs pinctrl drivers
2022-11-23 12:00:35 +01:00
Michael Ellerman
a39818a3fb objtool/powerpc: Implement arch_pc_relative_reloc()
Provide an implementation for arch_pc_relative_reloc(). It is needed to
pass the build once 61c6065ef7 ("objtool: Allow !PC relative
relocations") is merged.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2022-11-23 21:26:10 +11:00
Arnd Bergmann
f8d331698d arm64: TI K3 defconfig updates for v6.2
* Enable TI_TFP410 DVI bridge as module for J721e-sk platform
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE+KKGk1TrgjIXoxo03bWEnRc2JJ0FAmN897cACgkQ3bWEnRc2
 JJ1XPhAAiNOSD2g2MRpLX85S56D8fRrk2z1hPvrSoSNVGx8pwMTIJHNMNNtNq4Le
 6gcrcUcR9pB11+O+indum4cP4ttb2OiVhKH7fuK0CoWe6ITYCQ33MmgOWhVEBUtG
 glS4VOB3N1IpASUi8jU+4rS3dxdTiBJOBV7AAMByFw36Zhagq/cIfiLKruRuIzLn
 jaLMJT1LrI7cnwuoy8S/RT3uTzdsosjZlLa7cD+af+5EGSV9tGC6V+8r1DCdmmYB
 XRvlmFRJxtPcJdR7HPXdIzTXLN+FJKFTqERFf/aNN9Hb8oTiV6p81ztxEbgsZod5
 4cTCC2pM55iYzaEeKo5eOUjysDTEl4Y3lhhlytGX5B+ElubIj0ORH4wDclgmFkkx
 b6eiA4YUASO5mqivhvjg1gUVGFASK+LMrYF4//YdEZaXpDZsuYCw7ryRy4+Wpy7n
 5tNWr6r0N1RcZyD/EkVvwBTKij93BCoUOGL2tDSaq7+nTbNxnXhHARqWsL/6/eMG
 s7xgGuhWBG0aqikdHCFa4Tj6u0NRjx/mz2M/z8UdugHM6ZjWjvM6lTG0mcjk6AgQ
 J5aQFCHHcZ1lluKrSIm4Sos0AW4+HQYeYWWyvI+pw1n4xZxek9JpxsY2XAtPAl2C
 PX+yQ0cPHp7uNuAqH4M6qIojarNLghXtu4hNy2OMpSR28Uvet9Q=
 =R2oc
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN97bUACgkQmmx57+YA
 GNldaw/+K53YDHufaC1ZRwrX41Kn34LNehQqlJN1lFgBGktrS32zyEV2v8UIBuv6
 RtLZyrtZ8HAjVX2NX3a39tW40W+5bz7p/GNMxqFGVyUu4MpCH4oawNOWcRp4gRvG
 fhmj3oLRjzFyrWORPaQOA/Zmhr6JBQcfkEsAAZcsJzxk4op0vP8i5iN+ElONh/B7
 q8i3thXb83tUoThshFlsZc6rEv+1AFVYxX8cxfLA3Dl7K6j7MoTC0BZxcSlDoyxv
 5lgh6/+XuhbJn4YxkjPgFQ4ZNJKI0IYU2ChUKuqXGYDFdy+uevFjmiUOt+m9FeBg
 ZsfSRrimg3ghcZ24Sd7zDTgdtTR3kW4KD9D7C/c8eiVvKHgdqAvsmP+GmOc6DP2N
 LDZhtamhmKqCbMtHMacg+HogqaF76T1P0+XqBWybsT8nxk/6JrW5Pb1p6qlsqqQi
 u3yX+AEBTxKFi3jk2mhoe85/PdKWHMeGZztWm4Em/0+suNLQyAH1WmgbhRIJ4NFk
 H5KNVlhNL4xFhWilVi1hnc67aXen5ynzqmB7fRrL0IwvwYcD0psF1R2Q6AXYL03r
 YA06pKXOdKp9RgHa53cjLOqxp955TnX6LEV5KNHY2kynf2JY9DNBq58I6Tm3ZAim
 bnoSsKbWNq/n5s7e99NCT8qcyS+BqCA7Z/MST722Hu+RPHnOobA=
 =WG4b
 -----END PGP SIGNATURE-----

Merge tag 'ti-k3-config-for-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into arm/defconfig

arm64: TI K3 defconfig updates for v6.2

* Enable TI_TFP410 DVI bridge as module for J721e-sk platform

* tag 'ti-k3-config-for-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux:
  arm64: defconfig: Enable TI_TFP410 DVI bridge

Link: https://lore.kernel.org/r/20221122190233.63o3tjtkimlimgtq@armrest
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-23 10:53:56 +01:00
Arnd Bergmann
58e1a96d28 - enable missing drivers for to boot from MT8183 based chromebooks
-----BEGIN PGP SIGNATURE-----
 
 iQJLBAABCAA1FiEEUdvKHhzqrUYPB/u8L21+TfbCqH4FAmN7vCEXHG1hdHRoaWFz
 LmJnZ0BnbWFpbC5jb20ACgkQL21+TfbCqH5rAQ/+MSp4F4e+yYrN4XL9OV/O0Ltq
 YLFkIoiu5qh7mpeCY6qakgM9q1d7WLNIcBMfOvWDAtL5ZCBcOVUl+EAtwaMvKzxZ
 U0FlFFlGGD63n9H5QgiHrC6TIMOCnp/rdccUeu90K3pzkvuzJNKMwoLRpUTkZABv
 hCPhfeJnaz1WBXGy/wlcEWpP0wXjzGWR9WMaXtZToF8zk4df79NvfZWirFasxLP9
 npiZK6mNZMhRX0+91m0o1UYyDc0oN6qE7zPCjtJ1JKmACclQ8+3YrsVFxnRlMkpi
 5zkV6SzeOQox/vM0iwYi5qQYwCzQA60B7eYhqUnnePy7gUoO3QA11526s7gwXuKu
 dFXUHRDM2DWeEKY/ymERIJpV02OUGdVmNwl2BpqjSkVF6UJYgvPkQhJk4acA5H+k
 ZxqzI5As0QmAufG9Xeq1eeEgxxWqrEc4h27KO6YTMbsuToh/3vWReh8gb59nfYT2
 Bgn9sbis0yBemlpYG4bmKYmx7Bdjx+UbOMx2o56v+E9NFxHzKlaXE7J7uoFC5osi
 5IX/rOSdrJtBeqZUMCpbM99JigMC52GjSvxJTk6ZaFR7tGLnzx1bXE98ZDyKY5te
 2s1gfoT0EM0BU7sABGo4HbFhiEnUaVX08JOo6b8ugWYLkbgoKxC0TsgEu7RKNlPD
 UEC6sqFBB6POinY0OhY=
 =chEP
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN97EkACgkQmmx57+YA
 GNm/GBAAg6fH7cAYkInk0gJhZIRmJFJoedLjOr5PW+UIG2FziRnYbgg8FKWVBJOn
 g/bjDR9egDpJzOeXyVmoKpvOMAFa0/CiGyVlEymzd8AAAFWUynJ07uZ+p/B8Ljh+
 54HK0pJ1wwil1Xi0DKUSwIwtFynuCZs1rARxYaxcMy8urlMAyaty7asT7hqb/0Yj
 gsZr1qwL5/sItFFhXUe5JTkf+9ncCn3wafmV24dRE3PB5PKGZcbsfz93XmOxevNJ
 fx6YRKKvPmEiF16bpPEUZ2Nnxg4oRA0YEIpYniQj+fdmk/oJ+f0Pc2pYPsO3EEpI
 m2ggWGAzldIr6wcSKC/lFzuJUlRA9JK8tcYDk+j7uBbTNeZc7ShoR81JmhUJYVP5
 dGEUF/M20mAFSn+dr/Jd50ZOD0hr0jGYeqiYht8Y4VWvITKMk++lnuHnm1HvihHG
 kcgCCtyBnc8Di6t4Q/hMiXJmy1fDHoviUlWgt4E7n5yGejT7mNJi296QCGGySyJh
 Hmtuu3cLJRMr2WAxI3V5ywq8jPuHDWjLUVfCYWqwDRycg2XrWlCjmp33zPCLlYCR
 xEscn2dYHizQv3iHTTNf87ouzxKNR2+rM6suvcoTLH2Fy2yqA4+on6oarQFVIrgO
 a99m+NgKagkYVeFjCA4rA3KVsjjR737QJbng0Egmz9wPEChDusw=
 =fiku
 -----END PGP SIGNATURE-----

Merge tag 'v6.1-next-defconfig' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into arm/defconfig

- enable missing drivers for to boot from MT8183 based chromebooks

* tag 'v6.1-next-defconfig' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux:
  arm64: defconfig: Enable missing configs for mt8183-jacuzzi-juniper

Link: https://lore.kernel.org/r/610edfca-0a3a-fd41-5208-71978866be4f@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-23 10:47:53 +01:00
Jani Nikula
d1dd99083d drm/i915/hti: avoid theoretically possible negative shift
If phy is PHY_NONE, the shift to register bits becomes negative. Check
and warn about this.

Reported-by: coverity-bot <keescook@chromium.org>
References: https://lore.kernel.org/r/202211180848.D39006C@keescook
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20221122120948.3436180-1-jani.nikula@intel.com
2022-11-23 11:16:58 +02:00
Heiko Carstens
99b63f55dc KVM: s390: remove unused gisa_clear_ipm_gisc() function
clang warns about an unused function:
arch/s390/kvm/interrupt.c:317:20:
  error: unused function 'gisa_clear_ipm_gisc' [-Werror,-Wunused-function]
static inline void gisa_clear_ipm_gisc(struct kvm_s390_gisa *gisa, u32 gisc)

Remove gisa_clear_ipm_gisc(), since it is unused and get rid of this
warning.

Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Link: https://lore.kernel.org/r/20221118151133.2974602-1-hca@linux.ibm.com
Signed-off-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
2022-11-23 09:06:50 +00:00
Nico Boehr
dbec280045 s390/vfio-ap: GISA: sort out physical vs virtual pointers usage
Fix virtual vs physical address confusion (which currently are the same)
for the GISA when enabling the IRQ.

Signed-off-by: Nico Boehr <nrb@linux.ibm.com>
Reviewed-by: Halil Pasic <pasic@linux.ibm.com>
Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Link: https://lore.kernel.org/r/20221118100429.70453-1-nrb@linux.ibm.com
Message-Id: <20221118100429.70453-1-nrb@linux.ibm.com>
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
2022-11-23 09:06:50 +00:00
Claudio Imbrenda
cc72688607 KVM: s390: pv: module parameter to fence asynchronous destroy
Add the module parameter "async_destroy", to allow the asynchronous
destroy mechanism to be switched off. This might be useful for
debugging purposes.

The parameter is enabled by default since the feature is opt-in anyway.

Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com>
Reviewed-by: Nico Boehr <nrb@linux.ibm.com>
Link: https://lore.kernel.org/r/20221111170632.77622-7-imbrenda@linux.ibm.com
Message-Id: <20221111170632.77622-7-imbrenda@linux.ibm.com>
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
2022-11-23 09:06:50 +00:00
Claudio Imbrenda
f7866f582b KVM: s390: pv: support for Destroy fast UVC
Add support for the Destroy Secure Configuration Fast Ultravisor call,
and take advantage of it for asynchronous destroy.

When supported, the protected guest is destroyed immediately using the
new UVC, leaving only the memory to be cleaned up asynchronously.

Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Nico Boehr <nrb@linux.ibm.com>
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com>
Link: https://lore.kernel.org/r/20221111170632.77622-6-imbrenda@linux.ibm.com
Message-Id: <20221111170632.77622-6-imbrenda@linux.ibm.com>
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
2022-11-23 09:06:50 +00:00
Claudio Imbrenda
afe20eb8df KVM: s390: pv: avoid export before import if possible
If the appropriate UV feature bit is set, there is no need to perform
an export before import.

The misc feature indicates, among other things, that importing a shared
page from a different protected VM will automatically also transfer its
ownership.

Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Nico Boehr <nrb@linux.ibm.com>
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com>
Link: https://lore.kernel.org/r/20221111170632.77622-5-imbrenda@linux.ibm.com
Message-Id: <20221111170632.77622-5-imbrenda@linux.ibm.com>
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
2022-11-23 09:06:50 +00:00
Claudio Imbrenda
8c516b25d6 KVM: s390: pv: add KVM_CAP_S390_PROTECTED_ASYNC_DISABLE
Add KVM_CAP_S390_PROTECTED_ASYNC_DISABLE to signal that the
KVM_PV_ASYNC_DISABLE and KVM_PV_ASYNC_DISABLE_PREPARE commands for the
KVM_S390_PV_COMMAND ioctl are available.

Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Nico Boehr <nrb@linux.ibm.com>
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com>
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
Link: https://lore.kernel.org/r/20221111170632.77622-4-imbrenda@linux.ibm.com
Message-Id: <20221111170632.77622-4-imbrenda@linux.ibm.com>
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
2022-11-23 09:06:50 +00:00
Claudio Imbrenda
d9459922a1 KVM: s390: pv: api documentation for asynchronous destroy
Add documentation for the new commands added to the KVM_S390_PV_COMMAND
ioctl.

Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Nico Boehr <nrb@linux.ibm.com>
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com>
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
Link: https://lore.kernel.org/r/20221111170632.77622-3-imbrenda@linux.ibm.com
Message-Id: <20221111170632.77622-3-imbrenda@linux.ibm.com>
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
2022-11-23 09:06:50 +00:00
Claudio Imbrenda
fb491d5500 KVM: s390: pv: asynchronous destroy for reboot
Until now, destroying a protected guest was an entirely synchronous
operation that could potentially take a very long time, depending on
the size of the guest, due to the time needed to clean up the address
space from protected pages.

This patch implements an asynchronous destroy mechanism, that allows a
protected guest to reboot significantly faster than previously.

This is achieved by clearing the pages of the old guest in background.
In case of reboot, the new guest will be able to run in the same
address space almost immediately.

The old protected guest is then only destroyed when all of its memory
has been destroyed or otherwise made non protected.

Two new PV commands are added for the KVM_S390_PV_COMMAND ioctl:

KVM_PV_ASYNC_CLEANUP_PREPARE: set aside the current protected VM for
later asynchronous teardown. The current KVM VM will then continue
immediately as non-protected. If a protected VM had already been
set aside for asynchronous teardown, but without starting the teardown
process, this call will fail. There can be at most one VM set aside at
any time. Once it is set aside, the protected VM only exists in the
context of the Ultravisor, it is not associated with the KVM VM
anymore. Its protected CPUs have already been destroyed, but not its
memory. This command can be issued again immediately after starting
KVM_PV_ASYNC_CLEANUP_PERFORM, without having to wait for completion.

KVM_PV_ASYNC_CLEANUP_PERFORM: tears down the protected VM previously
set aside using KVM_PV_ASYNC_CLEANUP_PREPARE. Ideally the
KVM_PV_ASYNC_CLEANUP_PERFORM PV command should be issued by userspace
from a separate thread. If a fatal signal is received (or if the
process terminates naturally), the command will terminate immediately
without completing. All protected VMs whose teardown was interrupted
will be put in the need_cleanup list. The rest of the normal KVM
teardown process will take care of properly cleaning up all remaining
protected VMs, including the ones on the need_cleanup list.

Signed-off-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
Reviewed-by: Nico Boehr <nrb@linux.ibm.com>
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com>
Link: https://lore.kernel.org/r/20221111170632.77622-2-imbrenda@linux.ibm.com
Message-Id: <20221111170632.77622-2-imbrenda@linux.ibm.com>
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
2022-11-23 09:06:50 +00:00
Jiri Slaby (SUSE)
6373ab4dfe serial: atmel: don't stop the transmitter when doing PIO
Writing ATMEL_US_TXDIS to ATMEL_US_CR makes the transmitter NOT to send
the just queued character. This means when the character is last and
uart calls ops->stop_tx(), the character is not sent at all.

The usart datasheet is not much specific on this, it just says the
transmitter is stopped. But apparently, the character is dropped. So
we should stop the transmitter only for DMA and PDC transfers to not
send any more characters. For PIO, this is unexpected and deviates from
other drivers. In particular, the below referenced commit broke TX as it
added a call to ->stop_tx() after the very last character written to the
transmitter.

So fix this by limiting the write of ATMEL_US_TXDIS to DMA transfers
only.

Even there, I don't know if it is correctly implemented. Are all the
queued characters sent once ->start_tx() is called? Anyone tested flow
control -- be it hard (RTSCTS) or the soft (XOFF/XON) one?

Fixes: 2d141e683e ("tty: serial: use uart_port_tx() helper")
Cc: Richard Genoud <richard.genoud@gmail.com>
Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Claudiu Beznea <claudiu.beznea@microchip.com>
Cc: linux-arm-kernel@lists.infradead.org
Reported-by: Michael Walle <michael@walle.cc>
Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Link: https://lore.kernel.org/r/20221123082736.24566-2-jirislaby@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-11-23 09:39:24 +01:00
Jiri Slaby (SUSE)
94ec165c9f serial: atmel: cleanup atmel_start+stop_tx()
Define local variables holding information about whether pdc or dma is
used in the HW. These are retested several times by calls to
atmel_use_pdc_tx() and atmel_use_dma_tx(). So to make the code more
readable, simply cache the values.

This is also a preparatory patch for the next one (where is_pdc is used
once more in atmel_stop_tx()).

Cc: Richard Genoud <richard.genoud@gmail.com>
Cc: Nicolas Ferre <nicolas.ferre@microchip.com>
Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
Cc: Claudiu Beznea <claudiu.beznea@microchip.com>
Cc: linux-arm-kernel@lists.infradead.org
Reported-by: Michael Walle <michael@walle.cc>
Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Link: https://lore.kernel.org/r/20221123082736.24566-1-jirislaby@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-11-23 09:39:24 +01:00
Sherry Sun
8682ab0eea tty: serial: fsl_lpuart: switch to new dmaengine_terminate_* API
Convert dmaengine_terminate_all() calls to synchronous and asynchronous
versions where appropriate.

Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
Link: https://lore.kernel.org/r/20221123023619.30173-1-sherry.sun@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-11-23 09:39:20 +01:00
Yuan Can
1a6ec673fb serial: sunsab: Fix error handling in sunsab_init()
The sunsab_init() returns the platform_driver_register() directly without
checking its return value, if platform_driver_register() failed, the
allocated sunsab_ports is leaked.
Fix by free sunsab_ports and set it to NULL when platform_driver_register()
failed.

Fixes: c4d37215a8 ("[SERIAL] sunsab: Convert to of_driver framework.")
Signed-off-by: Yuan Can <yuancan@huawei.com>
Link: https://lore.kernel.org/r/20221123061212.52593-1-yuancan@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-11-23 09:38:50 +01:00
Gabriel Somlo
1307c5d33c serial: altera_uart: fix locking in polling mode
Since altera_uart_interrupt() may also be called from
a poll timer in "serving_softirq" context, use
spin_[lock_irqsave|unlock_irqrestore] variants, which
are appropriate for both softirq and hardware interrupt
contexts.

Fixes: 2f8b9c15cd ("altera_uart: Add support for polling mode (IRQ-less)")
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
Link: https://lore.kernel.org/r/20221122200426.888349-1-gsomlo@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-11-23 09:38:42 +01:00
Linus Walleij
c93d8b4574
ARM: ixp4xx: Remove unused debug iomap
If we don't provide the .map_io() callback, the LL debug
defines will kick in anyway, so delete the UART debug map
as well.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20221121221015.1454948-1-linus.walleij@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-23 09:29:20 +01:00
Thomas Zimmermann
b02897e56b Revert "drm/fb-helper: Perform damage handling in deferred-I/O helper"
This reverts commit 5fc586a058.

Needed to restore the fbdev damage worker. There have been bug reports
about locking order [1] and incorrectly takens branches. [2] Restore
the damage worker until these problems have been resovled.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://intel-gfx-ci.01.org/tree/drm-tip/fi-kbl-8809g.html # 1
Link: https://lore.kernel.org/dri-devel/20221115115819.23088-6-tzimmermann@suse.de/T/#m06eedc0a468940e4cbbd14ca026733b639bc445a # 2
Link: https://patchwork.freedesktop.org/patch/msgid/20221118133535.9739-4-tzimmermann@suse.de
(cherry picked from commit e3ddd2d255)
2022-11-23 09:11:32 +01:00
Thomas Zimmermann
1ab4de28cb Revert "drm/fb-helper: Schedule deferred-I/O worker after writing to framebuffer"
This reverts commit 7f5cc4a3e5.

Needed to restore the fbdev damage worker. There have been bug reports
about locking order [1] and incorrectly takens branches. [2] Restore
the damage worker until these problems have been resovled.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://intel-gfx-ci.01.org/tree/drm-tip/fi-kbl-8809g.html # 1
Link: https://lore.kernel.org/dri-devel/20221115115819.23088-6-tzimmermann@suse.de/T/#m06eedc0a468940e4cbbd14ca026733b639bc445a # 2
Link: https://patchwork.freedesktop.org/patch/msgid/20221118133535.9739-3-tzimmermann@suse.de
(cherry picked from commit 8b83e1a455)
2022-11-23 09:11:00 +01:00
Dave Marchevsky
b138777786 fuse: Rearrange fuse_allow_current_process checks
This is a followup to a previous commit of mine [0], which added the
allow_sys_admin_access && capable(CAP_SYS_ADMIN) check.  This patch
rearranges the order of checks in fuse_allow_current_process without
changing functionality.

Commit 9ccf47b26b ("fuse: Add module param for CAP_SYS_ADMIN access
bypassing allow_other") added allow_sys_admin_access &&
capable(CAP_SYS_ADMIN) check to the beginning of the function, with the
reasoning that allow_sys_admin_access should be an 'escape hatch' for users
with CAP_SYS_ADMIN, allowing them to skip any subsequent checks.

However, placing this new check first results in many capable() calls when
allow_sys_admin_access is set, where another check would've also returned
1.  This can be problematic when a BPF program is tracing capable() calls.

At Meta we ran into such a scenario recently.  On a host where
allow_sys_admin_access is set but most of the FUSE access is from processes
which would pass other checks - i.e.  they don't need CAP_SYS_ADMIN 'escape
hatch' - this results in an unnecessary capable() call for each fs op.  We
also have a daemon tracing capable() with BPF and doing some data
collection, so tracing these extraneous capable() calls has the potential
to regress performance for an application doing many FUSE ops.

So rearrange the order of these checks such that CAP_SYS_ADMIN 'escape
hatch' is checked last.  Add a small helper, fuse_permissible_uidgid, to
make the logic easier to understand.  Previously, if allow_other is set on
the fuse_conn, uid/git checking doesn't happen as current_in_userns result
is returned.  These semantics are maintained here: fuse_permissible_uidgid
check only happens if allow_other is not set.

Signed-off-by: Dave Marchevsky <davemarchevsky@fb.com>
Suggested-by: Andrii Nakryiko <andrii@kernel.org>
Reviewed-by: Christian Brauner (Microsoft) <brauner@kernel.org>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2022-11-23 09:10:50 +01:00
Dharmendra Singh
153524053b fuse: allow non-extending parallel direct writes on the same file
In general, as of now, in FUSE, direct writes on the same file are
serialized over inode lock i.e we hold inode lock for the full duration of
the write request.  I could not find in fuse code and git history a comment
which clearly explains why this exclusive lock is taken for direct writes.
Following might be the reasons for acquiring an exclusive lock but not be
limited to

 1) Our guess is some USER space fuse implementations might be relying on
    this lock for serialization.

 2) The lock protects against file read/write size races.

 3) Ruling out any issues arising from partial write failures.

This patch relaxes the exclusive lock for direct non-extending writes only.
File size extending writes might not need the lock either, but we are not
entirely sure if there is a risk to introduce any kind of regression.
Furthermore, benchmarking with fio does not show a difference between patch
versions that take on file size extension a) an exclusive lock and b) a
shared lock.

A possible example of an issue with i_size extending writes are write error
cases.  Some writes might succeed and others might fail for file system
internal reasons - for example ENOSPACE.  With parallel file size extending
writes it _might_ be difficult to revert the action of the failing write,
especially to restore the right i_size.

With these changes, we allow non-extending parallel direct writes on the
same file with the help of a flag called FOPEN_PARALLEL_DIRECT_WRITES.  If
this flag is set on the file (flag is passed from libfuse to fuse kernel as
part of file open/create), we do not take exclusive lock anymore, but
instead use a shared lock that allows non-extending writes to run in
parallel.  FUSE implementations which rely on this inode lock for
serialization can continue to do so and serialized direct writes are still
the default.  Implementations that do not do write serialization need to be
updated and need to set the FOPEN_PARALLEL_DIRECT_WRITES flag in their file
open/create reply.

On patch review there were concerns that network file systems (or vfs
multiple mounts of the same file system) might have issues with parallel
writes.  We believe this is not the case, as this is just a local lock,
which network file systems could not rely on anyway.  I.e. this lock is
just for local consistency.

Signed-off-by: Dharmendra Singh <dsingh@ddn.com>
Signed-off-by: Bernd Schubert <bschubert@ddn.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2022-11-23 09:10:50 +01:00
ye xingchen
e2283a7366 fuse: remove the unneeded result variable
Return the value fuse_dev_release() directly instead of storing it in
another redundant variable.

Reported-by: Zeal Robot <zealci@zte.com.cn>
Signed-off-by: ye xingchen <ye.xingchen@zte.com.cn>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2022-11-23 09:10:49 +01:00
Christian Brauner
00d369bc2d fuse: port to vfs{g,u}id_t and associated helpers
A while ago we introduced a dedicated vfs{g,u}id_t type in commit
1e5267cd08 ("mnt_idmapping: add vfs{g,u}id_t").  We already switched over
a good part of the VFS.  Ultimately we will remove all legacy idmapped
mount helpers that operate only on k{g,u}id_t in favor of the new type safe
helpers that operate on vfs{g,u}id_t.

Cc: Seth Forshee (Digital Ocean) <sforshee@kernel.org>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Christian Brauner (Microsoft) <brauner@kernel.org>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2022-11-23 09:10:49 +01:00
Jann Horn
0618021e34 fuse: Remove user_ns check for FUSE_DEV_IOC_CLONE
Commit 8ed1f0e22f ("fs/fuse: fix ioctl type confusion") fixed a type
confusion bug by adding an ->f_op comparison.

Based on some off-list discussion back then, another check was added to
compare the f_cred->user_ns.  This is not for security reasons, but was
based on the idea that a FUSE device FD should be using the UID/GID
mappings of its f_cred->user_ns, and those translations are done using
fc->user_ns, which matches the f_cred->user_ns of the initial FUSE device
FD thanks to the check in fuse_fill_super().  See also commit 8cb08329b0
("fuse: Support fuse filesystems outside of init_user_ns").

But FUSE_DEV_IOC_CLONE is, at a higher level, a *cloning* operation that
copies an existing context (with a weird API that involves first opening
/dev/fuse, then tying the resulting new FUSE device FD to an existing FUSE
instance).  So if an application is already passing FUSE FDs across userns
boundaries and dealing with the resulting ID mapping complications somehow,
it doesn't make much sense to block this cloning operation.

I've heard that this check is an obstacle for some folks, and I don't see a
good reason to keep it, so remove it.

Signed-off-by: Jann Horn <jannh@google.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2022-11-23 09:10:49 +01:00
Jiachen Zhang
ccc031e26a fuse: always revalidate rename target dentry
The previous commit df8629af29 ("fuse: always revalidate if exclusive
create") ensures that the dentries are revalidated on O_EXCL creates.  This
commit complements it by also performing revalidation for rename target
dentries.  Otherwise, a rename target file that only exists in kernel
dentry cache but not in the filesystem will result in EEXIST if
RENAME_NOREPLACE flag is used.

Signed-off-by: Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
Signed-off-by: Zhang Tianci <zhangtianci.1997@bytedance.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2022-11-23 09:10:49 +01:00
Miklos Szeredi
4f8d37020e fuse: add "expire only" mode to FUSE_NOTIFY_INVAL_ENTRY
Add a flag to entry expiration that lets the filesystem expire a dentry
without kicking it out from the cache immediately.

This makes a difference for overmounted dentries, where plain invalidation
would detach all submounts before dropping the dentry from the cache.  If
only expiry is set on the dentry, then any overmounts are left alone and
until ->d_revalidate() is called.

Note: ->d_revalidate() is not called for the case of following a submount,
so invalidation will only be triggered for the non-overmounted case.  The
dentry could also be mounted in a different mount instance, in which case
any submounts will still be detached.

Suggested-by: Jakob Blomer <jblomer@cern.ch>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2022-11-23 09:10:49 +01:00
Fabio M. De Francesco
a1db2f7ede fs/fuse: Replace kmap() with kmap_local_page()
The use of kmap() is being deprecated in favor of kmap_local_page().

There are two main problems with kmap(): (1) It comes with an overhead as
the mapping space is restricted and protected by a global lock for
synchronization and (2) it also requires global TLB invalidation when the
kmap’s pool wraps and it might block when the mapping space is fully
utilized until a slot becomes available.

With kmap_local_page() the mappings are per thread, CPU local, can take
page faults, and can be called from any context (including interrupts).
It is faster than kmap() in kernels with HIGHMEM enabled. Furthermore,
the tasks can be preempted and, when they are scheduled to run again, the
kernel virtual addresses are restored and still valid.

Therefore, replace kmap() with kmap_local_page() in fuse_readdir_cached(), 
it being the only call site of kmap() currently left in fs/fuse.

Cc: "Venkataramanan, Anirudh" <anirudh.venkataramanan@intel.com>
Suggested-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2022-11-23 09:10:49 +01:00
Miklos Szeredi
44361e8cf9 fuse: lock inode unconditionally in fuse_fallocate()
file_modified() must be called with inode lock held.  fuse_fallocate()
didn't lock the inode in case of just FALLOC_KEEP_SIZE flags value, which
resulted in a kernel Warning in notify_change().

Lock the inode unconditionally, like all other fallocate implementations
do.

Reported-by: Pengfei Xu <pengfei.xu@intel.com>
Reported-and-tested-by: syzbot+462da39f0667b357c4b6@syzkaller.appspotmail.com
Fixes: 4a6f278d48 ("fuse: add file_modified() to fallocate")
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2022-11-23 09:10:42 +01:00
Thomas Zimmermann
713befe893 Revert "drm/fb-helper: Remove damage worker"
This reverts commit 27c3e9452d.

Needed to restore the fbdev damage worker. There have been bug reports
about locking order [1] and incorrectly takens branches. [2] Restore
the damage worker until these problems have been resovled.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://intel-gfx-ci.01.org/tree/drm-tip/fi-kbl-8809g.html # 1
Link: https://lore.kernel.org/dri-devel/20221115115819.23088-6-tzimmermann@suse.de/T/#m06eedc0a468940e4cbbd14ca026733b639bc445a # 2
Link: https://patchwork.freedesktop.org/patch/msgid/20221118133535.9739-2-tzimmermann@suse.de
(cherry picked from commit 7aa3d63e1a)
2022-11-23 09:10:24 +01:00
Thomas Zimmermann
0c0860d190 fbdev: Make fb_modesetting_disabled() static inline
Make fb_modesetting_disabled() a static-inline function when it is
defined in the header file. Avoid the linker error shown below.

 ld: drivers/video/fbdev/core/fbmon.o: in function `fb_modesetting_disabled':
 fbmon.c:(.text+0x1e4): multiple definition of `fb_modesetting_disabled'; drivers/video/fbdev/core/fbmem.o:fbmem.c:(.text+0x1bac): first defined here

A bug report is at [1].

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Fixes: 0ba2fa8cbd ("fbdev: Add support for the nomodeset kernel parameter")
Cc: Javier Martinez Canillas <javierm@redhat.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Helge Deller <deller@gmx.de>
Cc: linux-fbdev@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org
Link: https://lore.kernel.org/dri-devel/20221117183214.2473e745@canb.auug.org.au/T/#u # 1
Link: https://patchwork.freedesktop.org/patch/msgid/20221117114729.7570-1-tzimmermann@suse.de
(cherry picked from commit a189b2ee93)
2022-11-23 09:09:40 +01:00
Thomas Zimmermann
6b0c09eb68 Merge drm/drm-next into drm-misc-next-fixes
Backmerging to update drm-misc-next-fixes for the final phase
of the release cycle, again.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
2022-11-23 08:55:56 +01:00
Baisong Zhong
cf59e1e4c7 ALSA: seq: fix undefined behavior in bit shift for SNDRV_SEQ_FILTER_USE_EVENT
Shifting signed 32-bit value by 31 bits is undefined, so changing
significant bit to unsigned. The UBSAN warning calltrace like below:

UBSAN: shift-out-of-bounds in sound/core/seq/seq_clientmgr.c:509:22
left shift of 1 by 31 places cannot be represented in type 'int'
...
Call Trace:
 <TASK>
 dump_stack_lvl+0x8d/0xcf
 ubsan_epilogue+0xa/0x44
 __ubsan_handle_shift_out_of_bounds+0x1e7/0x208
 snd_seq_deliver_single_event.constprop.21+0x191/0x2f0
 snd_seq_deliver_event+0x1a2/0x350
 snd_seq_kernel_client_dispatch+0x8b/0xb0
 snd_seq_client_notify_subscription+0x72/0xa0
 snd_seq_ioctl_subscribe_port+0x128/0x160
 snd_seq_kernel_client_ctl+0xce/0xf0
 snd_seq_oss_create_client+0x109/0x15b
 alsa_seq_oss_init+0x11c/0x1aa
 do_one_initcall+0x80/0x440
 kernel_init_freeable+0x370/0x3c3
 kernel_init+0x1b/0x190
 ret_from_fork+0x1f/0x30
 </TASK>

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Baisong Zhong <zhongbaisong@huawei.com>
Link: https://lore.kernel.org/r/20221121111630.3119259-1-zhongbaisong@huawei.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2022-11-23 07:57:35 +01:00
Baisong Zhong
b5172e6245 ALSA: pcm: fix undefined behavior in bit shift for SNDRV_PCM_RATE_KNOT
Shifting signed 32-bit value by 31 bits is undefined, so changing
significant bit to unsigned. The UBSAN warning calltrace like below:

UBSAN: shift-out-of-bounds in sound/core/pcm_native.c:2676:21
left shift of 1 by 31 places cannot be represented in type 'int'
...
Call Trace:
 <TASK>
 dump_stack_lvl+0x8d/0xcf
 ubsan_epilogue+0xa/0x44
 __ubsan_handle_shift_out_of_bounds+0x1e7/0x208
 snd_pcm_open_substream+0x9f0/0xa90
 snd_pcm_oss_open.part.26+0x313/0x670
 snd_pcm_oss_open+0x30/0x40
 soundcore_open+0x18b/0x2e0
 chrdev_open+0xe2/0x270
 do_dentry_open+0x2f7/0x620
 path_openat+0xd66/0xe70
 do_filp_open+0xe3/0x170
 do_sys_openat2+0x357/0x4a0
 do_sys_open+0x87/0xd0
 do_syscall_64+0x34/0x80

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Baisong Zhong <zhongbaisong@huawei.com>
Link: https://lore.kernel.org/r/20221121110044.3115686-1-zhongbaisong@huawei.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2022-11-23 07:56:47 +01:00
Kees Cook
9124a26401 kunit/fortify: Validate __alloc_size attribute results
Validate the effect of the __alloc_size attribute on allocators. If the
compiler doesn't support __builtin_dynamic_object_size(), skip the
associated tests.

(For GCC, just remove the "--make_options" line below...)

$ ./tools/testing/kunit/kunit.py run --arch x86_64 \
        --kconfig_add CONFIG_FORTIFY_SOURCE=y \
	--make_options LLVM=1
        fortify
...
[15:16:30] ================== fortify (10 subtests) ===================
[15:16:30] [PASSED] known_sizes_test
[15:16:30] [PASSED] control_flow_split_test
[15:16:30] [PASSED] alloc_size_kmalloc_const_test
[15:16:30] [PASSED] alloc_size_kmalloc_dynamic_test
[15:16:30] [PASSED] alloc_size_vmalloc_const_test
[15:16:30] [PASSED] alloc_size_vmalloc_dynamic_test
[15:16:30] [PASSED] alloc_size_kvmalloc_const_test
[15:16:30] [PASSED] alloc_size_kvmalloc_dynamic_test
[15:16:30] [PASSED] alloc_size_devm_kmalloc_const_test
[15:16:30] [PASSED] alloc_size_devm_kmalloc_dynamic_test
[15:16:30] ===================== [PASSED] fortify =====================
[15:16:30] ============================================================
[15:16:30] Testing complete. Ran 10 tests: passed: 10
[15:16:31] Elapsed time: 8.348s total, 0.002s configuring, 6.923s building, 1.075s running

For earlier GCC prior to version 12, the dynamic tests will be skipped:

[15:18:59] ================== fortify (10 subtests) ===================
[15:18:59] [PASSED] known_sizes_test
[15:18:59] [PASSED] control_flow_split_test
[15:18:59] [PASSED] alloc_size_kmalloc_const_test
[15:18:59] [SKIPPED] alloc_size_kmalloc_dynamic_test
[15:18:59] [PASSED] alloc_size_vmalloc_const_test
[15:18:59] [SKIPPED] alloc_size_vmalloc_dynamic_test
[15:18:59] [PASSED] alloc_size_kvmalloc_const_test
[15:18:59] [SKIPPED] alloc_size_kvmalloc_dynamic_test
[15:18:59] [PASSED] alloc_size_devm_kmalloc_const_test
[15:18:59] [SKIPPED] alloc_size_devm_kmalloc_dynamic_test
[15:18:59] ===================== [PASSED] fortify =====================
[15:18:59] ============================================================
[15:18:59] Testing complete. Ran 10 tests: passed: 6, skipped: 4
[15:18:59] Elapsed time: 11.965s total, 0.002s configuring, 10.540s building, 1.068s running

Cc: David Gow <davidgow@google.com>
Cc: linux-hardening@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
2022-11-22 21:08:28 -08:00
Dominique Martinet
391c18cf77 9p/xen: check logical size for buffer size
trans_xen did not check the data fits into the buffer before copying
from the xen ring, but we probably should.
Add a check that just skips the request and return an error to
userspace if it did not fit

Tested-by: Stefano Stabellini <sstabellini@kernel.org>
Reviewed-by: Christian Schoenebeck <linux_oss@crudebyte.com>
Link: https://lkml.kernel.org/r/20221118135542.63400-1-asmadeus@codewreck.org
Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>
2022-11-23 14:01:27 +09:00
Jakub Kicinski
af42736301 Merge branch 'revert-veth-avoid-drop-packets-when-xdp_redirect-performs-and-its-fix'
Heng Qi says:

====================
Revert "veth: Avoid drop packets when xdp_redirect performs" and its fix

This patch 2e0de6366a enables napi of the peer veth automatically when
the veth loads the xdp, but it breaks down as reported by Paolo and John.
So reverting it and its fix, we will rework the patch and make it more
robust based on comments.
====================

Link: https://lore.kernel.org/r/20221122035015.19296-1-hengqi@linux.alibaba.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-11-22 20:42:12 -08:00
Heng Qi
5e8d3dc73e Revert "veth: Avoid drop packets when xdp_redirect performs"
This reverts commit 2e0de6366a.

Based on the issues reported by John and Paolo and their comments,
this patch and the corresponding fix 5e5dc33d5d are reverted, and
we'll remake it.

Signed-off-by: Heng Qi <hengqi@linux.alibaba.com>
Reviewed-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-11-22 20:42:08 -08:00
Heng Qi
b535d681ad Revert "bpf: veth driver panics when xdp prog attached before veth_open"
This reverts commit 5e5dc33d5d.

This patch fixes the panic maked by 2e0de6366a. Now Paolo
and Toke suggest reverting the patch 2e0de6366a and making
it stronger, so do this first.

Signed-off-by: Heng Qi <hengqi@linux.alibaba.com>
Reviewed-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-11-22 20:42:08 -08:00
Jakub Kicinski
8263ee81f6 Merge branch 'remove-dsa_priv-h'
Vladimir Oltean says:

====================
Remove dsa_priv.h

After working on the "Autoload DSA tagging driver when dynamically
changing protocol" series:
https://patchwork.kernel.org/project/netdevbpf/cover/20221115011847.2843127-1-vladimir.oltean@nxp.com/

it became clear to me that the situation with DSA headers is a bit
messy, and I put the tagging protocol driver macros in a pretty random
temporary spot in dsa_priv.h.

Now is the time to make the net/dsa/ folder a bit more organized, and to
make tagging protocol driver modules include just headers they're going
to use.

Another thing is the merging and cleanup of dsa.c and dsa2.c. Before,
dsa.c had 589 lines and dsa2.c had 1817 lines. Now, the combined dsa.c
has 1749 lines, the rest went to some other places.

Sorry for the set size, I know the rules, but since this is basically
code movement for the most part, I thought more patches are better.
====================

Link: https://lore.kernel.org/r/20221121135555.1227271-1-vladimir.oltean@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-11-22 20:41:59 -08:00