Commit graph

1,188,286 commits

Author SHA1 Message Date
David E. Box
429e789c67 tools/arch/x86: intel_sdsi: Add support for new GUID
The structure and content of the On Demand registers is based on the GUID
which is read from hardware through sysfs. Add support for decoding the
registers of a new GUID 0xF210D9EF.

Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Link: https://lore.kernel.org/r/20221119002343.1281885-9-david.e.box@linux.intel.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-11-21 10:56:09 +01:00
David E. Box
a8041a89b7 tools/arch/x86: intel_sdsi: Read more On Demand registers
Add decoding of the following On Demand register fields:

1. NVRAM content authorization error status
2. Enabled features: telemetry and attestation
3. Key provisioning status
4. NVRAM update limit
5. PCU_CR3_CAPID_CFG

Link: https://github.com/intel/intel-sdsi/blob/master/state-certificate-encoding.rst
Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20221119002343.1281885-8-david.e.box@linux.intel.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-11-21 10:55:59 +01:00
David E. Box
334599bccb tools/arch/x86: intel_sdsi: Add Intel On Demand text
Intel Software Defined Silicon (SDSi) is now officially known as Intel
On Demand. Change text in tool to indicate this.

Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20221119002343.1281885-7-david.e.box@linux.intel.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-11-21 10:55:56 +01:00
David E. Box
3088258ea7 tools/arch/x86: intel_sdsi: Add support for reading state certificates
Add option to read and decode On Demand state certificates.

Link: https://github.com/intel/intel-sdsi/blob/master/state-certificate-encoding.rst
Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20221119002343.1281885-6-david.e.box@linux.intel.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-11-21 10:55:51 +01:00
David E. Box
a96f1b9c48 platform/x86/intel/sdsi: Add meter certificate support
Add support for reading the meter certificate from Intel On Demand
hardware.  The meter certificate [1] is used to access the utilization
metrics of enabled features in support of the Intel On Demand consumption
model. Similar to the state certificate, the meter certificate is read by
mailbox command.

While making similar changes also use the BIN_ATTR_ADMIN_RO helper to
create the 'registers' sysfs file.

Link: https://github.com/intel-sandbox/debox1.intel_sdsi/blob/gnr-review/meter-certificate.rst [1]
Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Link: https://lore.kernel.org/r/20221119002343.1281885-5-david.e.box@linux.intel.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-11-21 10:55:35 +01:00
David E. Box
25612c0fb2 platform/x86/intel/sdsi: Support different GUIDs
Newer versions of Intel On Demand hardware may have an expanded list of
registers to support new features. The register layout is identified by a
unique GUID that's read during driver probe. Add support for handling
different GUIDs and add support for current GUIDs [1].

Link: https://github.com/intel/intel-sdsi/blob/master/os-interface.rst [1]
Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20221119002343.1281885-4-david.e.box@linux.intel.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-11-21 10:55:28 +01:00
David E. Box
aa546b2816 platform/x86/intel/sdsi: Hide attributes if hardware doesn't support
Provisioning capabilities are enabled by a bit set by BIOS. Read this bit
and hide the provisioning attributes if the On Demand feature is not
enabled.

Also, remove the sdsi_enabled boolean from private and instead add a
features register since this will be used for future features.

Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20221119002343.1281885-3-david.e.box@linux.intel.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-11-21 10:55:24 +01:00
David E. Box
4ea629155c platform/x86/intel/sdsi: Add Intel On Demand text
Intel Software Defined Silicon (SDSi) is now officially known as Intel
On Demand. Add On Demand to the description in the kconfig, documentation,
and driver source.

Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20221119002343.1281885-2-david.e.box@linux.intel.com
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-11-21 10:55:12 +01:00
Arnd Bergmann
6f8d2a2037 Samsung DTS ARM64 changes for v6.2
Correct pin drive strength macros (names) and values used on Tesla FSD
 SoC.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmN0rS8QHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD1+RgD/9b0HVcfgBsvp/ZyFe2Eor20VYnPhCqSbk4
 P/6x1huHcGR9BC8jOzhQv9NzvUTZ10KrhiyhmV8AzeEoLR8hI6kZYZ0YzZwUL9FW
 4pqaDs5xn519QOxt6qqRTiXPbeshiQ/VoXDxpuHIi7irgdzfd7qlzEVuZKBTeKvi
 6H6WTrkoxzr31wyzH3LmZOTZzc4eIaQqBLrFo563S52Uw/jo71fWhhxLD4Q6C4+o
 rHIZ7tjcgaIyHIjhtRkWLk1bJnsYcG1tenXCw48sjILqlskso0GPeD+SG9BP8S+o
 vdC7WJzkt2Kgk+JRTE5qlBXepjIM9NJqczysrdkMPRvDUTQIOEddDrwYkt97B7Nj
 mEEiZ8zCXsbzIIS2v8UOwZHjloHy+15HM6jAzVrwwGJIMd514aM+kmIEK6Ucrd3c
 F3WaBG24D5kJ3dALe1oJWggX8soOtqIxzA51qMQxmw+iVj/G13WjiY/pIN/4b+zq
 ex2bsNHjaDTi7ye7jjNb0FGLjrCTfVftpXNQStS1QpLUFYZsP2VRt6Bi0uM/WiNU
 8HZovJdPkPBJFUeTjMideC5wQR9wIgDB8+LGkhP+PCGH7d4KbtxvZEGPBHFT2PVq
 +lpuul5XFF2v4ZAOlpM0KIbav7XdScRgn+Zw5g8tu/d2yAsRQ/bxCJ+1slrmnOk6
 oDjXYnM01Q==
 =ckQO
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN7SrEACgkQmmx57+YA
 GNlMIRAAnWhgP16nYA3maeSKqkvHlxugxtYH4de/fQnmo6EsJXcBZKOsn+2EaW5X
 OUa/YT6r/sDjAgVHGrmUMxYwIejjqmH7gR6/AmMmDQpTjk20blVwaTm9jtac0HAd
 UXNfhB1790UqG4LwJVojgxsFouwv8DS40/fVWhJYnfOfW5t63vF0Vytl1ZnL0n1P
 PPvqFdAU9mAJotlPm7rScxYilVOKQbG59fSgIUDWZgTFp5FtZmUOa8OzMkzaUq+H
 8X3mZZb7tBpMh2rLmxo+Lrj0DKsfAcXDZ8/b8hAn+P8xzeD03BxQWAIjJ07RkYh8
 UwtvASEeUO6EHW7Ugi0DB/Xs7XwgyxmrxBCOodqCPvRJgCNgcAWsavJo7nv3noBX
 IzTsaMpJRiGYwoVw0xwxmFgOCHGsjDqnBjUHrgT22OJ2iRFAdQU0m9nxA372kWMt
 VG9qNtKgTApTQSeNM1AMY14wU76Xb3t6RGizozm4B9ZZBbO31KQAzhLoBMzQ9Ev3
 y5lLTseqmibJvNBUQKevA96KWTlspaktq+OiZP4Inmg6aPZh+IOa0MkG1ME/TnZK
 JxhyE8xQ7QRagHcoAk9NbwCZN5U3xJGCL80vwp+whvuGAirpsCfER/7fyinpNsOq
 0ivvC/q1LpW9ICO9FEkh4HzJqSnyZFmLautPbYNQu7lA0ectGVI=
 =+Slu
 -----END PGP SIGNATURE-----

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

Samsung DTS ARM64 changes for v6.2

Correct pin drive strength macros (names) and values used on Tesla FSD
SoC.

* tag 'samsung-dt64-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  arm64: dts: fsd: fix drive strength values as per FSD HW UM
  arm64: dts: fsd: fix drive strength macros as per FSD HW UM

Link: https://lore.kernel.org/r/20221116093010.18515-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-21 10:53:53 +01:00
Aakarsh Jain
84b63565f8
ARM: dts: exynos: Add new SoC specific compatible string for Exynos3250 SoC
Exynos3250 and Exynos5420 are using same compatible string for MFC codec
device but they have different clock hierarchy and complexity.  Add new
compatible string followed by mfc-v7 fallback for Exynos3250 SoC.

Suggested-by: Alim Akhtar <alim.akhtar@samsung.com>
Signed-off-by: Aakarsh Jain <aakarsh.jain@samsung.com>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Tommaso Merciai <tommaso.merciai@amarulasolutions.com>
Link: https://lore.kernel.org/r/20221114115024.69591-4-aakarsh.jain@samsung.com
Link: https://lore.kernel.org/r/20221116093010.18515-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-21 10:53:12 +01:00
Arnd Bergmann
972d89438d i.MX defconfig change for 6.2:
- Enable Renesas 9-series PCIe clock generator, SNVS LPGRP and i.MX8MP
   interconnect driver support in arm64 defconfig.
 - Enable Silergy SY7636A EPD PMIC, CYTTSP5 touchscreen and USB GPIO
   extcon support in imx_v6_v7_defconfig.
 -----BEGIN PGP SIGNATURE-----
 
 iQFIBAABCgAyFiEEFmJXigPl4LoGSz08UFdYWoewfM4FAmN4ygEUHHNoYXduZ3Vv
 QGtlcm5lbC5vcmcACgkQUFdYWoewfM7FBwf8CJ4kXlG1DFLgYgzM2VjIe0GcjLJa
 aq9bmcGz5ePMufgh+A7S/SNlCH7BiBC2edfPUJHdcmC5UPyD9uVsCP/Gjzp+87Ww
 oHOKwmoCIdg1Tr9izdL3J4xnmiMGxCaJ38geNb8evoYWPcONVSis/WbHO8Mgf2o0
 l/g/Aq0Gf18w1I8J37RSjLfWF58AwFEPTjAYAalZmVqO8h8Vd713BlGvaneSZlBb
 w2G+onguugFerO33ubPS6t3Ql+kUsFNDEpTYEoBi3nWBMIzVHVuFlNx3Fx/d5MKZ
 f+s0YpRRb3/+Mbtar6d0m8nlKksnOyxMthI3dx9c/ZHno7IRwSJwQOI1Qw==
 =Ffj7
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN7SgsACgkQmmx57+YA
 GNm5BhAAk4wFMxLGKXbQTVSa1RGozqhs8Hbwswwjel4ZDp5xv97g6b7joDYxWgf0
 3+uNjMHwPxQiJKvO+P4RU6iy3D/81P1CuxmQeor5QTxRrwei6VnqL1Z1GK73Cwdm
 W0r9q3B+ej40Y1JGyGUZh4uWR9n6Afd7XtYZ/8EeebJlVEq+SmxMPHPTvEnISp7I
 JEMO/DzM4VzqFHRSedsDrEjF1oGGzKgRfTEz8TIkSh4Vyx2IXVT4XKHllIfSjhGi
 oYlt2i+nMSFAHCX2L8A0yTJMN9M3InKF2kpw1dGeA+HP5y5r1dXT4GWTPkXQgd5x
 NA/dTx2C2FMe4IX9CmVSLeQg2zkZstv/dDKCNqFL1/jBP0zvsJRjQDBr34G/27PK
 C4J4M8Nv4b27sF88e67wXKbAaY7YuTBlrD7VPlI7bAmjCLhPM07jj4Ic8Nzs5149
 CFOA4OWJ7jJMYkHne/w0ZvLULI6QNFDE0LqvHSPKFovRWDE6fxkBoy5BV274PJKu
 wgW/+qk2ghlHlt0hJBD+vIK+6UDHYyVMP1zzEvLle6DVofY1owo0BM5KlIr9CdZd
 Tr3NTRKzzQk29byt6s3BKxPg49CMMFypK3tAA0HBOr6E3TahyREilPRiB52z3Id9
 RMktT5bmdGR6CAsGVfYyqGF66OhgLq9tXiqXvBg4o2ZfurOmOik=
 =RntO
 -----END PGP SIGNATURE-----

Merge tag 'imx-defconfig-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/defconfig

i.MX defconfig change for 6.2:

- Enable Renesas 9-series PCIe clock generator, SNVS LPGRP and i.MX8MP
  interconnect driver support in arm64 defconfig.
- Enable Silergy SY7636A EPD PMIC, CYTTSP5 touchscreen and USB GPIO
  extcon support in imx_v6_v7_defconfig.

* tag 'imx-defconfig-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  arm64: defconfig: Add Renesas 9-series PCIe clock generator
  ARM: imx_v6_v7_defconfig: Enable the cyttsp5 touchscreen
  ARM: imx_v6_v7_defconfig: Enable silergy,sy7636a
  ARM: imx_v6_v7_defconfig: Enable USB GPIO extcon support
  arm64: defconfig: enable i.mx 8m plus specific interconnect support
  arm64: defconfig: enable snvs lpgpr support

Link: https://lore.kernel.org/r/20221119125733.32719-6-shawnguo@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-21 10:51:07 +01:00
Arnd Bergmann
4b7067ae93 arm64: tegra: Default configuration updates for v6.2-rc1
This enables several audio-related options, as well as the Tegra186
 timer and hardware timestamping engine drivers.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmN4LM8THHRyZWRpbmdA
 bnZpZGlhLmNvbQAKCRDdI6zXfz6zoWbbD/4gvLHjW3sqUvh8c5sciH8mMUMTZpUA
 4fnaqyt5Ya2Un05mWkVcRwgC8itXwy9FLf9L2coaDBEly1FokDZrapNS9TVd7GtA
 ihBRig13wXcx8ZtaSEkj5F/juf1GDUghMg/v8M/qFv7cYuSbbYDGZ40pfd/NaAlE
 zaGY3S6dampIm9N2XQegaRNGoRscAMIH0/Qa9MJkvvs8VQ7eB0C3/lOs3wUIv+8g
 G4bZrXyIMfrEsIo67v/xOUwkhts8VHSSWOr2oLnJd8rXvY0Sy/H3kXu3EPjQTzne
 f4IegmSAqUQ1oc5Ob/WgQ6nwoVKftgQfkxv6naLJHKY8F0r+3netKEarC/K66Ix/
 ogvT+RUOpBUvWbCpohQZIpZj95LEe/skaVUCg6BGBqj+g9IbYZPBw7V/5PYoJl9Q
 3Pw6vVMKheWR0RD5M+5gO/yqxTZ8bW5lFzrRbsmqtMsIVgg9gBrVvReRGr0RmsVv
 /qYCXR9rxjQA4A4dCTFCTOw1diXDwGnjIXutWi9ay1BLtavfnmm1OJVnHn9+1OaR
 FK7LWkOWTENyhxYCa/+kSbCS8oW293MGDtlMDshk6Lb47srAHYr0JI3st4D6iQ1j
 CadIZQy/lqEtcjS/fuyYvaN5exhS3G8Z1c5R+rhUqtr8YxrD6eR+nMlhvx0mb7lw
 92aYzMeqKZDjjQ==
 =fbGh
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN7ScoACgkQmmx57+YA
 GNmSwg//b8WiBxMxphDloxGUKQy9VBw5zOIm5UVHm5O6vA7zMr/OMgJ+MNVTaN9H
 XzS437/DUVLW44ZpA4t+drE8ou3lrkOChA3nqHB7TV88A8lk7fvKh9PFkciB0K2M
 i/bcdoQg9qRp7RnTuyQsItgDqxm741cS2Hz+Uw3HU6c5mjyLthd/r+AeuQvuxFwJ
 gI/iHIms68Ux6RGChSyHGX2lYT9Cx06J+TLY54mWnjlDciSMQis2Vb15Dg2gTWoA
 Mew7mPVOqAeRwKfUFMP7I07j0aZuatH1+E3m7XMu6vq5j8o3Bzn2OQhQenAz/S5M
 lNzo/nd1PWgUFMHe9JNGsqFFyOjsU5YQcEgWSlFVc2QqeU2Flzc4lpiM7gfGwrVb
 dSpde7o0Yvv7kMNobvS+FOFKSNmXS8T0gPKOtHlM2WYyyjdjbS6sWkOBIDuSFYPp
 9MDpjRJPYOnf0soKaYhpY4gK43Be8eUDZC/oWQtK0caUhZ4ABVxY/vzXMHPX+oFd
 BGfozXKhWH0VVTkLEm8AaUMmhQCf9sLoNIU7PL2aLD0XmErv24QviSOjZc4p8u+p
 t6loMh7CDNDp1O9Tj0WcMB7W2vPTuacde44ESx6Ph5j68UCIsr9apME33aUI/Qbd
 RVIB+sk2f2CUnfFBpEKrUQaZTh8aFw9aCNg2OrcCBiNcJ44oXtc=
 =zh22
 -----END PGP SIGNATURE-----

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

arm64: tegra: Default configuration updates for v6.2-rc1

This enables several audio-related options, as well as the Tegra186
timer and hardware timestamping engine drivers.

* tag 'tegra-for-6.2-arm64-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  arm64: defconfig: Enable HTE config
  arm64: defconfig: Enable Tegra186 timer support
  arm64: defconfig: Enable SND_ALOOP
  arm64: defconfig: Enable couple of audio codecs

Link: https://lore.kernel.org/r/20221119012025.3968358-8-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-21 10:50:02 +01:00
Arnd Bergmann
267511c977 Renesas RISC-V defconfig updates for v6.2
- Enable support for the Renesas RZ/Five SoC and the RZ/Five SMARC EVK
     board in the risc-v defconfig.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCY3dgowAKCRCKwlD9ZEnx
 cN1VAQDpcwPavcRL/IQ/oIYzIGyq/47lKUuhfxw93YjUlVtrIQD/W5F9uVhjDt22
 9gSrKI11+mjT1r/uLLhi+n5q3yPBlAw=
 =YeaL
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN7SbUACgkQmmx57+YA
 GNlQsBAAmQf/cN5iLX4UIiN+X/Vx82Y8iR2s06bAoihQX1ugX5meD/LIpV2EeU1g
 UfEklu21AXQyvtgnsrb9iscxNWsFrWbP3tCEcpTNheTgKwsOwxXpS3ia09o6K4st
 g+ZUOKeBd5H14Kez7UndEdTh8zg7Zul6IJoMMdEsgl6uH2J0JO7wyEbYFUyb98YK
 /n+64IJ7LYmolfel34OfHKhkBreAT8PFuDQa5W2YJyzGkIxLVF8qzjsNWnP5O/08
 sxcIc3WV5hBBg01ZAFstdxPU8s62kIIez/yU186tgWhgKvRxyc8JW0s5iilFgo1W
 l/moJAv/veqUuJ+YoTcQWJIng0lSSntMWDCbLeM+OI3mzk/4YKdvda49R7pd6VPC
 MthVcaD/miES3ovZnxRNLYpNjoBBJa1h97R5AfPZjVTwAFUyU0Dwgk7SPEuJnXCR
 etXtL2PJF1HwCjxFgKcbl3cECjAZDYdtBQKc2sqG9riMqF69D3A3DEH3pDWJwIBC
 ynJCzxHcSWP3YytocLqTJ0bNm7tcQ1pBj4pn2W7VZa83AthlfDGhxrf2xWC9GJQN
 sYjv0TDmE4dVFUE6TD2eclr49X4zOsRGDG3nh13BanmJ25f8zrrAItSRs2iyGd/G
 0cBTu+Z34XBe/64n0C3eW9WorZsxJL8mESR8Eo8sG4550YThzx8=
 =wAfB
 -----END PGP SIGNATURE-----

Merge tag 'renesas-riscv-defconfig-for-v6.2-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into arm/defconfig

Renesas RISC-V defconfig updates for v6.2

  - Enable support for the Renesas RZ/Five SoC and the RZ/Five SMARC EVK
    board in the risc-v defconfig.

* tag 'renesas-riscv-defconfig-for-v6.2-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel:
  riscv: configs: defconfig: Enable Renesas RZ/Five SoC

Link: https://lore.kernel.org/r/cover.1668788928.git.geert+renesas@glider.be
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-21 10:49:41 +01:00
Arnd Bergmann
1d4456221f Renesas ARM defconfig updates for v6.2
- Enable support for Renesas R-Car S4-8 Spider Ethernet devices in the
     arm64 defconfig.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCY3evhgAKCRCKwlD9ZEnx
 cI+DAQDuYqax077qNI/tBd2LXFBDv3BkTAGhZpaYcyJEXBf1bQD/bjIzTEzKJjN5
 9Ky8xneA3N4SnvTMW+P29iLZL+7m+Qs=
 =T6Fz
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN7SWIACgkQmmx57+YA
 GNl/7g//RdVdEGLzbQeItsMxvz5t8TDnX0oZ/ASMB8YumlfxrsLQlioAlvDUKE+6
 osm4rH2bVlvg4a7cY5LdGoCBmOtWHo53ON9l3wiyInFUOA+1arREibnrDAL6YkR1
 ddmCk0hm1wpR6ukDndjPmGKw3OWvvkNOQ2yeY/7gTmKUlATOrGyw1UEi/47a13Vu
 ZvEo46no3xfUMQb/CaLCuzOenFLqXqJdrpWgHOc+glWer/GF7AtMPmo81tdkxxNk
 aj8GhZDKVVQMxn7ucO5DfnYxB+5i9m/gLjZZgLven4I1lRp1cHXp8puJUbJ0fTmC
 7/CqhcTjklFyDnpWgJcynvakR4CR0Z//GIPei2V5G7qd3KSyOK0K7pXZDCToZL47
 nVwYAR/8ao5Du9WozOgzAGoUFX/WlXL0orVHzsq31Qa/DN8J7/o/WPlVUWrpNo1d
 pXkm44iVC4guibLYRl+LprSbt6FgnIGHr6mZQ1b04v8+NaIeXOYduyUeNkpGCcdh
 7SIWYDZo4/dA/om8H2taiCAVtAFeOY9nSkQY/4fmH16/bE600hD8qL4HbmLJ6drv
 yUsVN+hAYGSNwiz442jOhl3vIw5qWRFw7EdubH+7Dtl2NY+mJMZP4Uc0xQ6UNKsK
 fFxTSU1zLgYJTJvkjOxDRWoqjrkZTWFIQGWVquMH2TBuQP+Nwtk=
 =eBkH
 -----END PGP SIGNATURE-----

Merge tag 'renesas-arm-defconfig-for-v6.2-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into arm/defconfig

Renesas ARM defconfig updates for v6.2

  - Enable support for Renesas R-Car S4-8 Spider Ethernet devices in the
    arm64 defconfig.

* tag 'renesas-arm-defconfig-for-v6.2-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel:
  arm64: defconfig: Enable Renesas R-Car S4-8 Spider Ethernet devices

Link: https://lore.kernel.org/r/cover.1668788920.git.geert+renesas@glider.be
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-21 10:48:18 +01:00
Lorenzo Bianconi
ef8c373bd9 net: ethernet: mtk_eth_soc: fix RSTCTRL_PPE{0,1} definitions
Fix RSTCTRL_PPE0 and RSTCTRL_PPE1 register mask definitions for
MTK_NETSYS_V2.
Remove duplicated definitions.

Fixes: 160d3a9b19 ("net: ethernet: mtk_eth_soc: introduce MTK_NETSYS_V2 support")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2022-11-21 09:48:12 +00:00
Horatiu Vultur
aa5ac4be8d net: microchip: sparx5: kunit test: Fix compile warnings.
When VCAP_KUNIT_TEST is enabled the following warnings are generated:

drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c:257:34: warning: Using plain integer as NULL pointer
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c:258:41: warning: Using plain integer as NULL pointer
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c:342:23: warning: Using plain integer as NULL pointer
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c:359:23: warning: Using plain integer as NULL pointer
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c:1327:34: warning: Using plain integer as NULL pointer
drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c:1328:41: warning: Using plain integer as NULL pointer

Therefore fix this.

Fixes: dccc30cc49 ("net: microchip: sparx5: Add KUNIT test of counters and sorted rules")
Fixes: c956b9b318 ("net: microchip: sparx5: Adding KUNIT tests of key/action values in VCAP API")
Fixes: 67d637516f ("net: microchip: sparx5: Adding KUNIT test for the VCAP API")
Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2022-11-21 09:47:18 +00:00
Fabrice Gasnier
6bd7179385
ARM: multi_v7_defconfig: enable Type-C UCSI and STM32G0 as modules
Enable the USB Type-C UCSI, and the STM32G0 UCSI drivers as modules, since
used on STM32MP13 board.

Signed-off-by: Fabrice Gasnier <fabrice.gasnier@foss.st.com>
Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com>
Link: https://lore.kernel.org/r/20221117103931.26174-1-alexandre.torgue@foss.st.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-21 10:47:12 +01:00
Gayatri Kammela
c5ad454a12 platform/x86: intel/pmc/core: Add Meteor Lake support to pmc core driver
Add Meteor Lake client and mobile support to pmc core driver. This patch
adds legacy support.

Cc: David E Box <david.e.box@linux.intel.com>
Suggested-by: David E Box <david.e.box@linux.intel.com>
Reviewed-by: "David E. Box" <david.e.box@linux.intel.com>
Signed-off-by: Sukumar Ghorai <sukumar.ghorai@intel.com>
Signed-off-by: Gayatri Kammela <gayatri.kammela@linux.intel.com>
Signed-off-by: "David E. Box" <david.e.box@linux.intel.com>
Link: https://lore.kernel.org/r/20221114183257.2067662-9-gayatri.kammela@linux.intel.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-11-21 10:42:52 +01:00
Gayatri Kammela
08876884b9 platform/x86: intel/pmc: Relocate Alder Lake PCH support
Create adl.c for Alder Lake PCH specific structures and init().
This file supports Alder Lake, Raptor Lake and Raptor Lake S platforms
There are no functional changes involved.

Cc: David E Box <david.e.box@linux.intel.com>
Reviewed-by: "David E. Box" <david.e.box@linux.intel.com>
Signed-off-by: Gayatri Kammela <gayatri.kammela@linux.intel.com>
Signed-off-by: "David E. Box" <david.e.box@linux.intel.com>
Link: https://lore.kernel.org/r/20221114183257.2067662-8-gayatri.kammela@linux.intel.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-11-21 10:42:50 +01:00
Gayatri Kammela
92f530edd7 platform/x86: intel/pmc: Relocate Tiger Lake PCH support
Create tgl.c for Tiger Lake PCH specific structures and init().
This file supports Tiger Lake, Elkhart Lake, Rocket Lake,
Alder Lake mobile, Alder Lake N and Raptor Lake P platforms.
There are no functional changes involved.

Cc: David E Box <david.e.box@linux.intel.com>
Reviewed-by: "David E. Box" <david.e.box@linux.intel.com>
Signed-off-by: Gayatri Kammela <gayatri.kammela@linux.intel.com>
Signed-off-by: "David E. Box" <david.e.box@linux.intel.com>
Link: https://lore.kernel.org/r/20221114183257.2067662-7-gayatri.kammela@linux.intel.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-11-21 10:42:47 +01:00
Xi Pardee
fd2ed6dbc3 platform/x86: intel/pmc: Relocate Ice Lake PCH support
Create icl.c for Ice Lake PCH specific structures and init().
This file supports Ice Lake, Ice Lake NNPI and Jasper Lake platforms.
There are no functional changes involved.

Cc: David E Box <david.e.box@linux.intel.com>
Reviewed-by: "David E. Box" <david.e.box@linux.intel.com>
Signed-off-by: Xi Pardee <xi.pardee@intel.com>
Signed-off-by: "David E. Box" <david.e.box@linux.intel.com>
Link: https://lore.kernel.org/r/20221114183257.2067662-6-gayatri.kammela@linux.intel.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-11-21 10:42:44 +01:00
Xi Pardee
d6cd0cc8d1 platform/x86: intel/pmc: Relocate Cannon Lake Point PCH support
Create cnp.c for Cannon Lake Point PCH specific structures and init().
This file supports Cannon Lake and Comet Lake platforms.
There are no functional changes involved.

Cc: David E Box <david.e.box@linux.intel.com>
Reviewed-by: "David E. Box" <david.e.box@linux.intel.com>
Signed-off-by: Xi Pardee <xi.pardee@intel.com>
Signed-off-by: "David E. Box" <david.e.box@linux.intel.com>
Link: https://lore.kernel.org/r/20221114183257.2067662-5-gayatri.kammela@linux.intel.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-11-21 10:42:41 +01:00
Rajvi Jingar
f23e21a345 platform/x86: intel/pmc: Relocate Sunrise Point PCH support
Create spt.c for Sunrise Point PCH specific structures and init().
This file supports Sky Lake and Kaby Lake platforms. There are no
functional changes involved.

Cc: David E Box <david.e.box@linux.intel.com>
Reviewed-by: "David E. Box" <david.e.box@linux.intel.com>
Signed-off-by: Rajvi Jingar <rajvi.jingar@linux.intel.com>
Signed-off-by: "David E. Box" <david.e.box@linux.intel.com>
Link: https://lore.kernel.org/r/20221114183257.2067662-4-gayatri.kammela@linux.intel.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-11-21 10:42:38 +01:00
Xi Pardee
03c58a1e94 platform/x86: intel/pmc: Move variable declarations and definitions to header and core.c
Move the msr_map variable declaration to core.h and move the pmc_lpm_modes
definition to core.c.

This is a prepartory patch for redesigning the pmc core driver as the
variables will be used in multiple PCH specific files.

Cc: David E Box <david.e.box@linux.intel.com>
Reviewed-by: "David E. Box" <david.e.box@linux.intel.com>
Signed-off-by: Xi Pardee <xi.pardee@intel.com>
Signed-off-by: "David E. Box" <david.e.box@linux.intel.com>
Link: https://lore.kernel.org/r/20221114183257.2067662-3-gayatri.kammela@linux.intel.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-11-21 10:42:35 +01:00
Gayatri Kammela
284c01b72a platform/x86: intel/pmc: Replace all the reg_map with init functions
The current implementation of pmc core driver has the reg_map assigned
to the CPUID of each platform. Replace the reg_map with init functions
that are defined for each platform.

This is a preparatory patch for redesigning the pmc core driver.

Cc: David E Box <david.e.box@linux.intel.com>
Reviewed-by: "David E. Box" <david.e.box@linux.intel.com>
Signed-off-by: Gayatri Kammela <gayatri.kammela@linux.intel.com>
Signed-off-by: "David E. Box" <david.e.box@linux.intel.com>
Link: https://lore.kernel.org/r/20221114183257.2067662-2-gayatri.kammela@linux.intel.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2022-11-21 10:42:20 +01:00
Imre Deak
ebbaa4392e drm/i915: Fix warn in intel_display_power_*_domain() functions
The intel_display_power_*_domain() functions should always warn if a
default domain is returned as a fallback, fix this up. Spotted by Ville.

Fixes: 979e1b32e0 ("drm/i915: Sanitize the port -> DDI/AUX power domain mapping for each platform")
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Jouni Högander <jouni.hogander@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221114122251.21327-2-imre.deak@intel.com
(cherry picked from commit 10b85f0e1d)
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2022-11-21 09:41:14 +00:00
Matthew Auld
00a6c36cca drm/i915/ttm: never purge busy objects
In i915_gem_madvise_ioctl() we immediately purge the object is not
currently used, like when the mm.pages are NULL.  With shmem the pages
might still be hanging around or are perhaps swapped out. Similarly with
ttm we might still have the pages hanging around on the ttm resource,
like with lmem or shmem, but here we need to be extra careful since
async unbinds are possible as well as in-progress kernel moves. In
i915_ttm_purge() we expect the pipeline-gutting to nuke the ttm resource
for us, however if it's busy the memory is only moved to a ghost object,
which then leads to broken behaviour when for example clearing the
i915_tt->filp, since the actual ttm_tt is still alive and populated,
even though it's been moved to the ghost object.  When we later destroy
the ghost object we hit the following, since the filp is now NULL:

[  +0.006982] #PF: supervisor read access in kernel mode
[  +0.005149] #PF: error_code(0x0000) - not-present page
[  +0.005147] PGD 11631d067 P4D 11631d067 PUD 115972067 PMD 0
[  +0.005676] Oops: 0000 [#1] PREEMPT SMP NOPTI
[  +0.012962] Workqueue: events ttm_device_delayed_workqueue [ttm]
[  +0.006022] RIP: 0010:i915_ttm_tt_unpopulate+0x3a/0x70 [i915]
[  +0.005879] Code: 89 fb 48 85 f6 74 11 8b 55 4c 48 8b 7d 30 45 31 c0 31 c9 e8 18 6a e5 e0 80 7d 60 00 74 20 48 8b 45 68
8b 55 08 4c 89 e7 5b 5d <48> 8b 40 20 83 e2 01 41 5c 89 d1 48 8b 70
 30 e9 42 b2 ff ff 4c 89
[  +0.018782] RSP: 0000:ffffc9000bf6fd70 EFLAGS: 00010202
[  +0.005244] RAX: 0000000000000000 RBX: ffff8883e12ae380 RCX: 0000000000000000
[  +0.007150] RDX: 000000008000000e RSI: ffffffff823559b4 RDI: ffff8883e12ae3c0
[  +0.007142] RBP: ffff888103b65d48 R08: 0000000000000001 R09: 0000000000000001
[  +0.007144] R10: 0000000000000001 R11: ffff88829c2c8040 R12: ffff8883e12ae3c0
[  +0.007148] R13: 0000000000000001 R14: ffff888115184140 R15: ffff888115184248
[  +0.007154] FS:  0000000000000000(0000) GS:ffff88844db00000(0000) knlGS:0000000000000000
[  +0.008108] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  +0.005763] CR2: 0000000000000020 CR3: 000000013fdb4004 CR4: 00000000003706e0
[  +0.007152] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  +0.007145] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[  +0.007154] Call Trace:
[  +0.002459]  <TASK>
[  +0.002126]  ttm_tt_unpopulate.part.0+0x17/0x70 [ttm]
[  +0.005068]  ttm_bo_tt_destroy+0x1c/0x50 [ttm]
[  +0.004464]  ttm_bo_cleanup_memtype_use+0x25/0x40 [ttm]
[  +0.005244]  ttm_bo_cleanup_refs+0x90/0x2c0 [ttm]
[  +0.004721]  ttm_bo_delayed_delete+0x235/0x250 [ttm]
[  +0.004981]  ttm_device_delayed_workqueue+0x13/0x40 [ttm]
[  +0.005422]  process_one_work+0x248/0x560
[  +0.004028]  worker_thread+0x4b/0x390
[  +0.003682]  ? process_one_work+0x560/0x560
[  +0.004199]  kthread+0xeb/0x120
[  +0.003163]  ? kthread_complete_and_exit+0x20/0x20
[  +0.004815]  ret_from_fork+0x1f/0x30

v2:
 - Just use ttm_bo_wait() directly (Niranjana)
 - Add testcase reference

Testcase: igt@gem_madvise@dontneed-evict-race
Fixes: 213d509277 ("drm/i915/ttm: Introduce a TTM i915 gem object backend")
Reported-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Andrzej Hajda <andrzej.hajda@intel.com>
Cc: Nirmoy Das <nirmoy.das@intel.com>
Cc: <stable@vger.kernel.org> # v5.15+
Reviewed-by: Niranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
Acked-by: Nirmoy Das <Nirmoy.Das@intel.com>
Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221115104620.120432-1-matthew.auld@intel.com
(cherry picked from commit 5524b5e52e)
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2022-11-21 09:41:13 +00:00
Vlastimil Babka
b5e72d27e3 Merge branch 'slab/for-6.2/alloc_size' into slab/for-next
Two patches from Kees Cook [1]:

These patches work around a deficiency in GCC (>=11) and Clang (<16)
where the __alloc_size attribute does not apply to inlines.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96503

This manifests as reduced overflow detection coverage for many allocation
sites under CONFIG_FORTIFY_SOURCE=y, where the allocation size was not
actually being propagated to __builtin_dynamic_object_size().

[1] https://lore.kernel.org/all/20221118034713.gonna.754-kees@kernel.org/
2022-11-21 10:37:36 +01:00
Greg Kroah-Hartman
d9c3b34d3b Merge 6.1-rc6 into usb-next
We need the USB fixes in here as well.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-11-21 10:37:10 +01:00
Vlastimil Babka
90e9b23a60 Merge branch 'slab/for-6.2/kmalloc_redzone' into slab/for-next
kmalloc() redzone improvements by Feng Tang

From cover letter [1]:

kmalloc's API family is critical for mm, and one of its nature is that
it will round up the request size to a fixed one (mostly power of 2).
When user requests memory for '2^n + 1' bytes, actually 2^(n+1) bytes
could be allocated, so there is an extra space than what is originally
requested.

This patchset tries to extend the redzone sanity check to the extra
kmalloced buffer than requested, to better detect un-legitimate access
to it. (depends on SLAB_STORE_USER & SLAB_RED_ZONE)

[1] https://lore.kernel.org/all/20221021032405.1825078-1-feng.tang@intel.com/
2022-11-21 10:36:09 +01:00
Vlastimil Babka
76537db3b9 Merge branch 'slab/for-6.2/fit_rcu_head' into slab/for-next
A series by myself to reorder fields in struct slab to allow the
embedded rcu_head to grow (for debugging purposes). Requires changes to
isolate_movable_page() to skip slab pages which can otherwise become
false-positive __PageMovable due to its use of low bits in
page->mapping.
2022-11-21 10:36:09 +01:00
Vlastimil Babka
1c1aaa3319 Merge branch 'slab/for-6.2/tools' into slab/for-next
A patch for tools/vm/slabinfo to give more useful feedback when not run
as a root, by Rong Tao.
2022-11-21 10:35:38 +01:00
Vlastimil Babka
c64b95d3dd Merge branch 'slab/for-6.2/slub-sysfs' into slab/for-next
- Two patches for SLUB's sysfs by Rasmus Villemoes to remove dead code
  and optimize boot time with late initialization.
- Allow SLUB's sysfs 'failslab' parameter to be runtime-controllable
  again as it can be both useful and safe, by Alexander Atanasov.
2022-11-21 10:35:38 +01:00
Vlastimil Babka
14d3eb66e1 Merge branch 'slab/for-6.2/locking' into slab/for-next
A patch from Jiri Kosina that makes SLAB's list_lock a raw_spinlock_t.
While there are no plans to make SLAB actually compatible with
PREEMPT_RT or any other future, it makes !PREEMPT_RT lockdep happy.
2022-11-21 10:35:38 +01:00
Vlastimil Babka
4b28ba9eea Merge branch 'slab/for-6.2/cleanups' into slab/for-next
- Removal of dead code from deactivate_slab() by Hyeonggon Yoo.
- Fix of BUILD_BUG_ON() for sufficient early percpu size by Baoquan He.
- Make kmem_cache_alloc() kernel-doc less misleading, by myself.
2022-11-21 10:35:37 +01:00
Kees Cook
6fa57d78aa slab: Remove special-casing of const 0 size allocations
Passing a constant-0 size allocation into kmalloc() or kmalloc_node()
does not need to be a fast-path operation, so the static return value
can be removed entirely. This makes sure that all paths through the
inlines result in a full extern function call, where __alloc_size()
hints will actually be seen[1] by GCC. (A constant return value of 0
means the "0" allocation size won't be propagated by the inline.)

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96503

Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Roman Gushchin <roman.gushchin@linux.dev>
Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Cc: linux-mm@kvack.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
2022-11-21 10:27:00 +01:00
Kees Cook
3bf019334f slab: Clean up SLOB vs kmalloc() definition
As already done for kmalloc_node(), clean up the #ifdef usage in the
definition of kmalloc() so that the SLOB-only version is an entirely
separate and much more readable function.

Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Roman Gushchin <roman.gushchin@linux.dev>
Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Cc: linux-mm@kvack.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
2022-11-21 10:26:52 +01:00
Vlastimil Babka
130d4df573 mm/sl[au]b: rearrange struct slab fields to allow larger rcu_head
Joel reports [1] that increasing the rcu_head size for debugging
purposes used to work before struct slab was split from struct page, but
now runs into the various SLAB_MATCH() sanity checks of the layout.

This is because the rcu_head in struct page is in union with large
sub-structures and has space to grow without exceeding their size, while
in struct slab (for SLAB and SLUB) it's in union only with a list_head.

On closer inspection (and after the previous patch) we can put all
fields except slab_cache to a union with rcu_head, as slab_cache is
sufficient for the rcu freeing callbacks to work and the rest can be
overwritten by rcu_head without causing issues.

This is only somewhat complicated by the need to keep SLUB's
freelist+counters aligned for cmpxchg_double. As a result the fields
need to be reordered so that slab_cache is first (after page flags) and
the union with rcu_head follows. For consistency, do that for SLAB as
well, although not necessary there.

As a result, the rcu_head field in struct page and struct slab is no
longer at the same offset, but that doesn't matter as there is no
casting that would rely on that in the slab freeing callbacks, so we can
just drop the respective SLAB_MATCH() check.

Also we need to update the SLAB_MATCH() for compound_head to reflect the
new ordering.

While at it, also add a static_assert to check the alignment needed for
cmpxchg_double so mistakes are found sooner than a runtime GPF.

[1] https://lore.kernel.org/all/85afd876-d8bb-0804-b2c5-48ed3055e702@joelfernandes.org/

Reported-by: Joel Fernandes <joel@joelfernandes.org>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Hyeonggon Yoo <42.hyeyoo@gmail.com>
2022-11-21 10:24:30 +01:00
Vlastimil Babka
8b8817630a mm/migrate: make isolate_movable_page() skip slab pages
In the next commit we want to rearrange struct slab fields to allow a larger
rcu_head. Afterwards, the page->mapping field will overlap with SLUB's "struct
list_head slab_list", where the value of prev pointer can become LIST_POISON2,
which is 0x122 + POISON_POINTER_DELTA.  Unfortunately the bit 1 being set can
confuse PageMovable() to be a false positive and cause a GPF as reported by lkp
[1].

To fix this, make isolate_movable_page() skip pages with the PageSlab flag set.
This is a bit tricky as we need to add memory barriers to SLAB and SLUB's page
allocation and freeing, and their counterparts to isolate_movable_page().

Based on my RFC from [2]. Added a comment update from Matthew's variant in [3]
and, as done there, moved the PageSlab checks to happen before trying to take
the page lock.

[1] https://lore.kernel.org/all/208c1757-5edd-fd42-67d4-1940cc43b50f@intel.com/
[2] https://lore.kernel.org/all/aec59f53-0e53-1736-5932-25407125d4d4@suse.cz/
[3] https://lore.kernel.org/all/YzsVM8eToHUeTP75@casper.infradead.org/

Reported-by: kernel test robot <yujie.liu@intel.com>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Hyeonggon Yoo <42.hyeyoo@gmail.com>
2022-11-21 10:24:00 +01:00
Greg Kroah-Hartman
05df6ab8eb Merge 6.1-rc6 into driver-core-next
We need the kernfs changes in here as well.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-11-21 10:21:53 +01:00
Vlastimil Babka
838de63b10 mm/slab: move and adjust kernel-doc for kmem_cache_alloc
Alexander reports an issue with the kmem_cache_alloc() comment in
mm/slab.c:

> The current comment mentioned that the flags only matters if the
> cache has no available objects. It's different for the __GFP_ZERO
> flag which will ensure that the returned object is always zeroed
> in any case.

> I have the feeling I run into this question already two times if
> the user need to zero the object or not, but the user does not need
> to zero the object afterwards. However another use of __GFP_ZERO
> and only zero the object if the cache has no available objects would
> also make no sense.

and suggests thus mentioning __GFP_ZERO as the exception. But on closer
inspection, the part about flags being only relevant if cache has no
available objects is misleading. The slab user has no reliable way to
determine if there are available objects, and e.g. the might_sleep()
debug check can be performed even if objects are available, so passing
correct flags given the allocation context always matters.

Thus remove that sentence completely, and while at it, move the comment
to from SLAB-specific mm/slab.c to the common include/linux/slab.h
The comment otherwise refers flags description for kmalloc(), so add
__GFP_ZERO comment there and remove a very misleading GFP_HIGHUSER
(not applicable to slab) description from there. Mention kzalloc() and
kmem_cache_zalloc() shortcuts.

Reported-by: Alexander Aring <aahringo@redhat.com>
Link: https://lore.kernel.org/all/20221011145413.8025-1-aahringo@redhat.com/
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
2022-11-21 10:19:46 +01:00
Baoquan He
a0dc161ae7 mm/slub, percpu: correct the calculation of early percpu allocation size
SLUB allocator relies on percpu allocator to initialize its ->cpu_slab
during early boot. For that, the dynamic chunk of percpu which serves
the early allocation need be large enough to satisfy the kmalloc
creation.

However, the current BUILD_BUG_ON() in alloc_kmem_cache_cpus() doesn't
consider the kmalloc array with NR_KMALLOC_TYPES length. Fix that
with correct calculation.

Signed-off-by: Baoquan He <bhe@redhat.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Roman Gushchin <roman.gushchin@linux.dev>
Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Acked-by: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Acked-by: Dennis Zhou <dennis@kernel.org>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
2022-11-21 10:19:46 +01:00
Baoquan He
e8753e416c percpu: adjust the value of PERCPU_DYNAMIC_EARLY_SIZE
LKP reported a build failure as below on the following patch "mm/slub,
percpu: correct the calculation of early percpu allocation size"

~~~~~~
In file included from <command-line>:
In function 'alloc_kmem_cache_cpus',
   inlined from 'kmem_cache_open' at mm/slub.c:4340:6:
>> >> include/linux/compiler_types.h:357:45: error: call to '__compiletime_assert_474' declared with attribute error:
BUILD_BUG_ON failed: PERCPU_DYNAMIC_EARLY_SIZE < NR_KMALLOC_TYPES * KMALLOC_SHIFT_HIGH * sizeof(struct kmem_cache_cpu)
     357 |         _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
~~~~~~

From the kernel config file provided by LKP, the building was made on
arm64 with below Kconfig item enabled:

  CONFIG_ZONE_DMA=y
  CONFIG_SLUB_CPU_PARTIAL=y
  CONFIG_DEBUG_LOCK_ALLOC=y
  CONFIG_SLUB_STATS=y
  CONFIG_ARM64_PAGE_SHIFT=16
  CONFIG_ARM64_64K_PAGES=y

Then we will have:
  NR_KMALLOC_TYPES:4
  KMALLOC_SHIFT_HIGH:17
  sizeof(struct kmem_cache_cpu):184

The product of them is 12512, which is bigger than PERCPU_DYNAMIC_EARLY_SIZE,
12K. Hence, the BUILD_BUG_ON in alloc_kmem_cache_cpus() is triggered.

Earlier, in commit 099a19d91c ("percpu: allow limited allocation
before slab is online"), PERCPU_DYNAMIC_EARLY_SIZE was introduced and
set to 12K which is equal to the then PERPCU_DYNAMIC_RESERVE.
Later, in commit 1a4d76076c ("percpu: implement asynchronous chunk
population"), PERPCU_DYNAMIC_RESERVE was increased by 8K, while
PERCPU_DYNAMIC_EARLY_SIZE was kept unchanged.

So, here increase PERCPU_DYNAMIC_EARLY_SIZE by 8K too to accommodate to
the slub's requirement.

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Baoquan He <bhe@redhat.com>
Acked-by: Dennis Zhou <dennis@kernel.org>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
2022-11-21 10:19:25 +01:00
Andrew Davis
599cb2c6d7 arm64: dts: renesas: Rename DTB overlay source files from .dts to .dtso
DTB Overlays (.dtbo) can now be built from source files with the
extension (.dtso). This makes it clear what is the content of the files
and differentiates them from base DTB source files.

Convert the DTB overlay source files in the arm64/renesas directory.

Signed-off-by: Andrew Davis <afd@ti.com>
Link: https://lore.kernel.org/r/20221024173434.32518-6-afd@ti.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2022-11-21 10:05:54 +01:00
Greg Kroah-Hartman
210a671cc3 Linux 6.1-rc6
-----BEGIN PGP SIGNATURE-----
 
 iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAmN6wAgeHHRvcnZhbGRz
 QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiG0EYH/3/RO90NbrFItraN
 Lzr+d3VdbGjTu8xd1M+PRTmwh3zxLpB+Jwqr0T0A2gzL9B/D+AUPUJdrCVbv9DqS
 FLJAVqoeV20dNBAHSffOOLPsgCZ+Eu+LzlNN7Iqde0e8cyZICFMNktitui84Xm/i
 1NgFVgz9OZ6+aieYvUj3FrFq0p8GTIaC/oybDZrxYKcO8ZzKVMJ11swRw10wwq0g
 qOOECvV3w7wlQ8upQZkzFxItKFc7EexZI6R4elXeGSJJ9Hlc092dv/zsKB9dwV+k
 WcwkJrZRoezYXzgGBFxUcQtzi+ethjrPjuJuM1rYLUSIcfIW/0lkaSLgRoBu8D+I
 1GfXkXs=
 =gt6P
 -----END PGP SIGNATURE-----

Merge 6.1-rc6 into char-misc-next

We need the char/misc fixes in here as well.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-11-21 10:05:34 +01:00
Geert Uytterhoeven
e5dc5f2345 Merge branch 'dt/dtbo-rename' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux into renesas-arm-dt-for-v6.2
Merge Rob's stable branch for the .dts to .dtso rename.
2022-11-21 09:56:46 +01:00
David S. Miller
dca508cd88 Merge branch 'nfp-ipsec-offload'
Simon Horman says:

====================
nfp: IPsec offload support

Huanhuan Wang says:

this series adds support for IPsec offload to the NFP driver.

It covers three enhancements:

1. Patches 1/3:
   - Extend the capability word and control word to to support
     new features.

2. Patch 2/3:
   - Add framework to support IPsec offloading for NFP driver,
     but IPsec offload control plane interface xfrm callbacks which
     interact with upper layer are not implemented in this patch.

3. Patch 3/3:
   - IPsec control plane interface xfrm callbacks are implemented
     in this patch.

Changes since v3
* Remove structure fields that describe firmware but
  are not used for Kernel offload
* Add WARN_ON(!xa_empty()) before call to xa_destroy()
* Added helpers for hash methods

Changes since v2
* OFFLOAD_HANDLE_ERROR macro and the associated code removed
* Unnecessary logging removed
* Hook function xdo_dev_state_free in struct xfrmdev_ops removed
* Use Xarray to maintain SA entries

Changes since v1
* Explicitly return failure when XFRM_STATE_ESN is set
* Fix the issue that AEAD algorithm is not correctly offloaded
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
2022-11-21 08:51:36 +00:00
Huanhuan Wang
859a497fe8 nfp: implement xfrm callbacks and expose ipsec offload feature to upper layer
Xfrm callbacks are implemented to offload SA info into firmware
by mailbox. It supports 16K SA info in total.

Expose ipsec offload feature to upper layer, this feature will
signal the availability of the offload.

Based on initial work of Norm Bagley <norman.bagley@netronome.com>.

Signed-off-by: Huanhuan Wang <huanhuan.wang@corigine.com>
Reviewed-by: Louis Peens <louis.peens@corigine.com>
Signed-off-by: Simon Horman <simon.horman@corigine.com>
Acked-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2022-11-21 08:51:36 +00:00
Huanhuan Wang
57f273adbc nfp: add framework to support ipsec offloading
A new metadata type and config structure are introduced to
interact with firmware to support ipsec offloading. This
feature relies on specific firmware that supports ipsec
encrypt/decrypt by advertising related capability bit.

The xfrm callbacks which interact with upper layer are
implemented in the following patch.

Based on initial work of Norm Bagley <norman.bagley@netronome.com>.

Signed-off-by: Huanhuan Wang <huanhuan.wang@corigine.com>
Reviewed-by: Louis Peens <louis.peens@corigine.com>
Signed-off-by: Simon Horman <simon.horman@corigine.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2022-11-21 08:51:36 +00:00
Yinjun Zhang
484963ce9f nfp: extend capability and control words
Currently the 32-bit capability word is almost exhausted, now
allocate some more words to support new features, and control
word is also extended accordingly. Packet-type offloading is
implemented in NIC application firmware, but it's not used in
kernel driver, so reserve this bit here in case it's redefined
for other use.

Signed-off-by: Yinjun Zhang <yinjun.zhang@corigine.com>
Reviewed-by: Louis Peens <louis.peens@corigine.com>
Signed-off-by: Simon Horman <simon.horman@corigine.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2022-11-21 08:51:36 +00:00