Commit graph

1,216,791 commits

Author SHA1 Message Date
Joey Gouly
6c792b7d3c arm64: Document boot requirements for PIE
Features PIE and TCR2 introduce new registers, update the trap requirements
for these features.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Reviewed-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20230606145859.697944-19-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:41 +01:00
Joey Gouly
6b776d3855 arm64: transfer permission indirection settings to EL2
Copy the EL1 registers: TCR2_EL1, PIR_EL1, PIRE0_EL1, such that PIE
is also enabled for EL2.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Oliver Upton <oliver.upton@linux.dev>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20230606145859.697944-18-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:41 +01:00
Joey Gouly
9e9bb6ede0 arm64: enable Permission Indirection Extension (PIE)
Now that the necessary changes have been made, set the Permission Indirection
registers and enable the Permission Indirection Extension.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Will Deacon <will@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20230606145859.697944-17-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:41 +01:00
Joey Gouly
eeda243dfe arm64: add encodings of PIRx_ELx registers
The encodings used in the permission indirection registers means that the
values that Linux puts in the PTEs do not need to be changed.

The E0 values are replicated in E1, with the execute permissions removed.
This is needed as the futex operations access user mappings with privileged
loads/stores.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Will Deacon <will@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20230606145859.697944-16-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:41 +01:00
Joey Gouly
7df7170965 arm64: disable EL2 traps for PIE
Disable trapping of TCR2_EL1 and PIRx_EL1 registers, so they can be
accessed from by EL1.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Will Deacon <will@kernel.org>
Reviewed-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20230606145859.697944-15-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:41 +01:00
Joey Gouly
fa4cdccaa5 arm64: reorganise PAGE_/PROT_ macros
Make these macros available to assembly code, so they can be re-used by the
PIE initialisation code.

This involves adding some extra macros, prepended with _ that are the raw
values not `pgprot` values.

A dummy value for PTE_MAYBE_NG is also provided, for use in assembly.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20230606145859.697944-14-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:41 +01:00
Joey Gouly
7c302cfbee arm64: add PTE_WRITE to PROT_SECT_NORMAL
With PIE enabled, PROT_SECT_NORMAL would map onto PAGE_KERNEL_RO.
Add PTE_WRITE so that this maps onto PAGE_KERNEL, so that it is writable.

Without PIE, this should enable DBM for PROT_SECT_NORMAL. However PTE_RDONLY
is already cleared, so the DBM mechanism is not used, and it is always writable,
so this is functionally equivalent.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20230606145859.697944-13-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:41 +01:00
Joey Gouly
f0af339fc4 arm64: add PTE_UXN/PTE_WRITE to SWAPPER_*_FLAGS
With PIE enabled, the swapper PTEs would have a Permission Indirection Index
(PIIndex) of 0. A PIIndex of 0 is not currently used by any other PTEs.

To avoid using index 0 specifically for the swapper PTEs, mark them as
PTE_UXN and PTE_WRITE, so that they map to a PAGE_KERNEL_EXEC equivalent.

This also adds PTE_WRITE to KPTI_NG_PTE_FLAGS, which was tested by booting
with kpti=on.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/20230606145859.697944-12-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:41 +01:00
Joey Gouly
8ef67c67e6 KVM: arm64: expose ID_AA64MMFR3_EL1 to guests
Now that KVM context switches the appropriate registers, expose ID_AA64MMFR3_EL1
to guests to allow them to use the new features.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Oliver Upton <oliver.upton@linux.dev>
Cc: James Morse <james.morse@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Zenghui Yu <yuzenghui@huawei.com>
Cc: Will Deacon <will@kernel.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230606145859.697944-11-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:41 +01:00
Joey Gouly
86f9de9db1 KVM: arm64: Save/restore PIE registers
Define the new system registers that PIE introduces and context switch them.
The PIE feature is still hidden from the ID register, and not exposed to a VM.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Oliver Upton <oliver.upton@linux.dev>
Cc: James Morse <james.morse@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Zenghui Yu <yuzenghui@huawei.com>
Cc: Will Deacon <will@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230606145859.697944-10-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:40 +01:00
Joey Gouly
fbff560682 KVM: arm64: Save/restore TCR2_EL1
Define the new system register TCR2_EL1 and context switch it.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Oliver Upton <oliver.upton@linux.dev>
Cc: James Morse <james.morse@arm.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Zenghui Yu <yuzenghui@huawei.com>
Cc: Will Deacon <will@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230606145859.697944-9-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:40 +01:00
Joey Gouly
e43454c442 arm64: cpufeature: add Permission Indirection Extension cpucap
This indicates if the system supports PIE. This is a CPUCAP_BOOT_CPU_FEATURE
as the boot CPU will enable PIE if it has it, so secondary CPUs must also
have this feature.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Will Deacon <will@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20230606145859.697944-8-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:40 +01:00
Joey Gouly
2b760046a2 arm64: cpufeature: add TCR2 cpucap
This capability indicates if the system supports the TCR2_ELx system register.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Will Deacon <will@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20230606145859.697944-7-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:40 +01:00
Joey Gouly
edc25898f0 arm64: cpufeature: add system register ID_AA64MMFR3
Add new system register ID_AA64MMFR3 to the cpufeature infrastructure.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Will Deacon <will@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20230606145859.697944-6-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:40 +01:00
Joey Gouly
c36ad1943f arm64/sysreg: add PIR*_ELx registers
Add definitions of PIR_EL1, PIR_EL12, PIRE0_EL1, PIRE0_EL12, and
PIR_EL2 registers.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Reviewed-by: Mark Brown <broonie@kernel.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20230606145859.697944-5-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:40 +01:00
Joey Gouly
25bc6f32cd arm64/sysreg: update HCRX_EL2 register
Update the HCRX_EL2 register with new bit definitions.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Reviewed-by: Mark Brown <broonie@kernel.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20230606145859.697944-4-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:40 +01:00
Joey Gouly
89b6c3ee49 arm64/sysreg: add system registers TCR2_ELx
Add definitions of TCR2_EL1, TCR2_EL12 and TCR_EL2 registers.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Reviewed-by: Mark Brown <broonie@kernel.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20230606145859.697944-3-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:40 +01:00
Joey Gouly
00ac84677d arm64/sysreg: Add ID register ID_AA64MMFR3
Add the new ID register ID_AA64MMFR3, according to DDI0601 2023-03.

Signed-off-by: Joey Gouly <joey.gouly@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Reviewed-by: Mark Brown <broonie@kernel.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/20230606145859.697944-2-joey.gouly@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-06-06 16:52:40 +01:00
Vladimir Oltean
c5c31fb71f
spi: fsl-dspi: avoid SCK glitches with continuous transfers
The DSPI controller has configurable timing for

(a) tCSC: the interval between the assertion of the chip select and the
    first clock edge

(b) tASC: the interval between the last clock edge and the deassertion
    of the chip select

What is a bit surprising, but is documented in the figure "Example of
continuous transfer (CPHA=1, CONT=1)" in the datasheet, is that when the
chip select stays asserted between multiple TX FIFO writes, the tCSC and
tASC times still apply. With CONT=1, chip select remains asserted, but
SCK takes a break and goes to the idle state for tASC + tCSC ns.

In other words, the default values (of 0 and 0 ns) result in SCK
glitches where the SCK transition to the idle state, as well as the SCK
transition from the idle state, will have no delay in between, and it
may appear that a SCK cycle has simply gone missing. The resulting
timing violation might cause data corruption in many peripherals, as
their chip select is asserted.

The driver has device tree bindings for tCSC ("fsl,spi-cs-sck-delay")
and tASC ("fsl,spi-sck-cs-delay"), but these are only specified to apply
when the chip select toggles in the first place, and this timing
characteristic depends on each peripheral. Many peripherals do not have
explicit timing requirements, so many device trees do not have these
properties present at all.

Nonetheless, the lack of SCK glitches is a common sense requirement, and
since the SCK stays in the idle state during transfers for tCSC+tASC ns,
and that in itself should look like half a cycle, then let's ensure that
tCSC and tASC are at least a quarter of a SCK period, such that their
sum is at least half of one.

Fixes: 95bf15f386 ("spi: fsl-dspi: Add ~50ns delay between cs and sck")
Reported-by: Lisa Chen (陈敏捷) <minjie.chen@geekplus.com>
Debugged-by: Lisa Chen (陈敏捷) <minjie.chen@geekplus.com>
Tested-by: Lisa Chen (陈敏捷) <minjie.chen@geekplus.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Link: https://lore.kernel.org/r/20230529223402.1199503-1-vladimir.oltean@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-06-06 16:49:20 +01:00
Chris Chiu
b752a385b5 ALSA: hda/realtek: Enable 4 amplifiers instead of 2 on a HP platform
In the commit 7bb6234095 ("ALSA: hda/realtek: fix speaker, mute/micmute
LEDs not work on a HP platform"), speakers and LEDs are fixed but only 2
CS35L41 amplifiers on SPI bus connected to Realtek codec are enabled. Need
the ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED to get all amplifiers working.

Signed-off-by: Chris Chiu <chris.chiu@canonical.com>
Fixes: 7bb6234095 ("ALSA: hda/realtek: fix speaker, mute/micmute LEDs not work on a HP platform")
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20230606145747.135966-1-chris.chiu@canonical.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2023-06-06 17:44:24 +02:00
Geert Uytterhoeven
ba65c79fbb dt-bindings: gpio: gpio-delay: Spelling s/curcuit/circuit/
Fix misspellings of "circuit".

Fixes: c7239a3da1 ("dt-bindings: gpio: Add gpio-delay binding document")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-06-06 17:43:26 +02:00
Mark Brown
59960e67b9
ASoC: Intel: machine driver updates for 6.5
Merge series from Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>:

An unusually large set of patches to deal with new SoundWire-based
platforms.

The bulk of the patches addresses support for MTL using RT712, RT713,
MAX98363, CS42L42 jack codec and amplifiers. The sof_sdw machine
driver had to be updated to remove limitations on number of codecs per
links, dai types, dai naming, etc. We also moved parts of the Realtek
and Maxim support in common code to avoid duplication.

Community users also reported two Dell SKUs which were not supported
in the mainline due to hardware permutations.
2023-06-06 16:41:59 +01:00
Arnd Bergmann
c5c3f746c9 Devicetree changes for omaps for v6.5
A non-urgent fix for gpmc,wait-pin property for am335x-myirtech-myc, and
 initial support for Epson Moverio BT-200 AR glasses.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAmR5wBQRHHRvbnlAYXRv
 bWlkZS5jb20ACgkQG9Q+yVyrpXMIFRAAsUrkbnzrvyOtar5Y/9kiAy2fo5pAcv6c
 +X7788afMQPRsjEnsF/m/FHywS6Qea3WLEXSzwr00Ms98jPyrcR7KdSMj/sQNsr3
 KmzhrtxA04La0k66E1ApQEBjHesz0Ba2qIxivlOG0TZOupPahxPU/i62MixK+oW8
 lNBdVTPQcoHzYaaaVRjUih2ssPpvEcRlgefLWWtgN6sdpgdw483Na+Sj8/dRjG6a
 pj63LMVIPZ3vOnMIBS+ETerZMhm4Vn1EU596462vqzjFOaYAWEyfQWhEjoqpd7MQ
 +QjOr2Oh0460sPQKRta+YTAxfzgt9fKkNtpFevjjWH1aTnda6CXtuK+01HnxQFO1
 FD3tEJRFD0WlVDDgH4cBk8vVDVkQI9fLNyVGPXFr1U7bik7iaaIYn9pf0MHpuo5t
 X5QP9AQtInQOw+I65Tx6jYOAVTpl5LxDibzUN+93qjEwonrMOwazHp7RR9MIwBP9
 D+5kX4KuPE9GCYcsV+UpimWZGTpS9kOgc+fsIPKvRW2SUdUg6CV0vFv2AElODYvW
 7FUguGWeQyyi+1axT5SphHmUKBPCbWXz/QMvQs7lR0ElWc4FriKVCmYVrBB/lwLH
 jVJetfjPZtZfVyupEf0MRTYxe/Lnr+VisGzunZsKFSdnhMNqMbZQZ/RmgRuyK+Bn
 ieCB5UDCz4o=
 =WXWj
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmR/U1AACgkQYKtH/8kJ
 Uic3lQ/+PfLUzVklVbAHnuz3Vedmg4Z6y0Bj5yTXz+UudI3Um+C2AGtvQGTV7E1L
 mXEiZPG/eqRZN33yQww3eCDzVbsseihaKymHVuD7zDIgbmewONq5eFYlFJFbciLS
 Ihy9LAWf4dLn63Ax3smvpa4pDx0Bm7aL4/j4+v+gN40QSxOFBxVFXlhd7WAoNY5w
 jcZO0BhavZJ8C2Sf+KxSfvru+kaoLhBJ0HozH4wqemgCVYo9DuZYk4bz91MJ8br5
 ZwEY5L1kGImNlhoCzEwI/95fRbts7T7ykrDs3tEtIRosruulL2myyJdXoFQbTcvK
 VvQ9GZ8kNzGZFmfHaECZ10nMuOW/dnVVtEmOGcW46+36LvfXNSIXUvRT0BkjZ762
 GqYQETnwi4JNpUfZH9gDSwq5C0pwL5Ght96TcWvDmDZrUpYgI/oiIxeXpjjBjhhS
 lkAW5JoGCQb1xM+tPLxcz0zn2vYF1CWmVSQMuLA/YgkfZdOxDvvF1K8yyhZVeu5z
 eQoAMD2mEU/OebWHjOax0Xj1Kxwjd551G2PbrIAYmIP7DHYhNeamiqisiAHuX8kf
 jHUNQxmCFcO/hAjd/8C3a27UyRZaqKwxea8e93b4w2O3eHKGCxdyTSw0MvewJFsb
 Qq8otBWuUeu4S66bldO+gdLZ6sg69BXZ1gK+NWWs+m6nvJlNAao=
 =ExSy
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v6.5/dt-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into soc/dt

Devicetree changes for omaps for v6.5

A non-urgent fix for gpmc,wait-pin property for am335x-myirtech-myc, and
initial support for Epson Moverio BT-200 AR glasses.

* tag 'omap-for-v6.5/dt-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  ARM: dts: omap4: add initial support for Epson Moverio BT-200
  ARM: dts: am335x-myirtech: Add missing NAND wait pin definition

Link: https://lore.kernel.org/r/pull-1685700720-242492@atomide.com-3
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-06-06 17:40:00 +02:00
Kirill A. Shutemov
c2b353ae24 x86/tdx: Refactor try_accept_one()
Rework try_accept_one() to return accepted size instead of modifying
'start' inside the helper. It makes 'start' in-only argument and
streamlines code on the caller side.

Suggested-by: Borislav Petkov <bp@alien8.de>
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Dave Hansen <dave.hansen@linux.intel.com>
Link: https://lore.kernel.org/r/20230606142637.5171-9-kirill.shutemov@linux.intel.com
2023-06-06 17:38:50 +02:00
Arnd Bergmann
33f0ceca11 Samsung DTS ARM changes for v6.5
1. Final cleanups and improvements as a result of dtbs_checks which rely
    on previously merged driver changes thus affecting older or
    out-of-tree kernels.  The changes are necessary to achieve full
    dtbs_check compliance, which justifies affecting out-of-tree users.
    Changes affecting them are:
     - Drop simple-bus compatible from FIMC: Exynos4 and S5PV210,
     - Remove empty camera pinctrl configuration: Exynos4 and S5PV210,
     - Re-order MFC clock names to match Exynos and bindings: S5PV210.
 
 2. Except above few more non-intrusive cleanups for dtbs_check for
    S5PV210.  Fix also some typos.
 
 3. Re-introduce Exynos4212 which was removed because of lack of upstream
    users.  Artur Weber adds now Samsung Galaxy Tab3 with Exynos4212.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmR5rNgQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD131PD/9b9jaNO3NBJdHCg2e1XOG4Ca4EiZy7+c7g
 JUqQcgdy478eXYSF2WM1qNLJjOIlnHgyWPChTHsNK8W0bD0wqR6JQReE5ZYj/hcA
 5C1FrL5YMfA9ZHtyLBPl5NEilwtPYnNyJw7+LkPQdZIC8QQ4k4JaZzYtAgESAc3M
 0uphSKcTIrT/hdbAA82hBFIGdSVu1GTiKfWAPRTKPyA3BGuYY8dLfMTIQ2czxVDZ
 CbH1m2R/d6idppyDEkXmUNwOAOeiWpGbiJEcOEOwXq68hJUpkDjAJXs5QKlhb2Ue
 TOR0DJp3ZorWt8WY50JXy/8Kzv3i/QgLugl7+3XMyNSvArxiFyEEDdZl9WXToJmV
 hi5KrbWmMdKIuUGpFON5ZGzsTnDUYuvpILCWU7iyP59DA4pJMZW42JTskM1i2aDb
 HPXQGCjQDJONuJq9MtB6QK+zCpHMO913hXIG7GsIiW73bimjER3y1rMW93PUL49x
 08tNHWcyFN4ghwXcMBBbrf7yWfQ8SVhUSRnD1LGcJYj0gwaJgRPHyKDnApgxxIKB
 35lVRH+84SYslLmkrZIJTN1lw2yqHF4+oxrnza0+ItdaJyZk8rmXaP34VKYjXZxs
 y5SBjVZ8lrdCIB9kVhy2DtRj8vLO88uzUFRmAQF54TRL62jhC56T2gl7PJQtCfJz
 OtyplsT7pQ==
 =prN6
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmR/UdwACgkQYKtH/8kJ
 UicS0xAAqi4ctbU0A4KNOUn2y/U1amFrEN9l7nfYjUCb1CH6Z1qAvRTyoOxO4xB/
 dK82QdS7f2si4IWurVGeWfdruSqHWure1Py82iD2oIoRm0XIOkx/5EKSmPYrEXrJ
 NbFl5lt5ox+nQLdD5mLAKsxswTP3bfor0ILYFYJj5zk5hEhdk72lGmXboO/0ulYn
 sqE8JugXgxCehbA3xYbShghIdLrapaAnQDzawTeXKIH0IFdMfj31X7kQr6D6BO8S
 EeJTvNwhaX5ZCTAgWmWX4O9fOoxj1FriRuic5WYI7skjwBwgsX2uFK/t5lV2pYn2
 9gazldz0Bx5vu/DitsAmK1nyj9ma8996j5Vh5L4DLz4uo566RkNI3cEYHt388oyQ
 d/zIloyu14HHr3YtRXieSakTf+FvHlMmHEvOMsAgqibsXFvHTJh5st6grIZHj3iO
 zmBNsLW9tcvhLDe72QPcI4ZY/QWyeROuEH/d9OedD+whTpFA45kiG+qPZZYKKcl+
 ZxOQC0kib7mW4KxvGLZoonzNC8vUMmiCbsPrkNBerTQdVHAvHt2GiO2aBvibNn/U
 QismtyjiMKBLWb27MNngWURlWDv9kmu+p7gnF19sFUhTdJCXfeTiL9PI13tvRHF3
 neG1BVchVXPUMUwymqW4RqZI01tp6H5OssGdp3kM6goXYcMlA7M=
 =7GAg
 -----END PGP SIGNATURE-----

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

Samsung DTS ARM changes for v6.5

1. Final cleanups and improvements as a result of dtbs_checks which rely
   on previously merged driver changes thus affecting older or
   out-of-tree kernels.  The changes are necessary to achieve full
   dtbs_check compliance, which justifies affecting out-of-tree users.
   Changes affecting them are:
    - Drop simple-bus compatible from FIMC: Exynos4 and S5PV210,
    - Remove empty camera pinctrl configuration: Exynos4 and S5PV210,
    - Re-order MFC clock names to match Exynos and bindings: S5PV210.

2. Except above few more non-intrusive cleanups for dtbs_check for
   S5PV210.  Fix also some typos.

3. Re-introduce Exynos4212 which was removed because of lack of upstream
   users.  Artur Weber adds now Samsung Galaxy Tab3 with Exynos4212.

* tag 'samsung-dt-6.5' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  ARM: dts: s5pv210: Fix typo in comments, fix pinctrl header
  ARM: dts: s3c64xx: Fix some typos in comments
  ARM: dts: exynos: Fix some typos in comments
  dt-bindings: arm: samsung: Add Samsung Galaxy Tab3 family boards
  ARM: dts: exynos: Re-introduce Exynos4212 DTSI
  ARM: dts: exynos: Move common Exynos4x12 definitions to exynos4x12.dtsi
  ARM: dts: s5pv210: remove empty camera pinctrl configuration
  ARM: dts: s5pv210: add dummy 5V regulator for backlight on SMDKv210
  ARM: dts: s5pv210: re-order MFC clock names to match Exynos and bindings
  ARM: dts: s5pv210: align USB node name with bindings
  ARM: dts: s5pv210: align pin configuration nodes with bindings
  ARM: dts: exynos: Remove empty camera pinctrl configuration in Odroid X/U3
  ARM: dts: exynos: Remove empty camera pinctrl configuration in Universal C210
  ARM: dts: exynos: Remove empty camera pinctrl configuration in Trats
  ARM: dts: s5pv210: drop simple-bus from FIMC
  ARM: dts: exynos: drop simple-bus from FIMC in Exynos4

Link: https://lore.kernel.org/r/20230602091501.15178-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-06-06 17:33:48 +02:00
Arnd Bergmann
4d1010ff17 AT91 DT for 6.5
It contains:
 - gpio-line-names addition for at91-tse850-3 board
 - support for SMA connectors on lan966x-pcb8309 board
 - use drive-open-drain as boolean property as this is how code handles
   it
 - generic names for clock controller devices
 - use of the new clock controller bindings for at91sam9n12 slow clock
   controller
 - one blank line removal on sama5d2.dtsi
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQTsZ8eserC1pmhwqDmejrg/N2X7/QUCZHXRoQAKCRCejrg/N2X7
 /aM4AQD9L1shYbMzPEhqj7UxQUXhGmZnoDzd5aP2OicgUS5JDwD/cg3CM29eq8Fj
 wW21GjSM/evK3sDfdbDmvatIM41uhw0=
 =zMgl
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmR/UX8ACgkQYKtH/8kJ
 UieYbw//WnKz+UvPj8HC/HUz8MOKOHGfN4ZOyiV+Hg3Tt8L3AntU7tpPraGwpuy2
 9h7rBBIPxk182VpkHIpcVCTH4xt8XQvcZKLaZoe57CaPl5VmpbFBavExtf1wzKbY
 f62LaZce/rDI/yw9F6S0+WltzwRhLSMmX/eyGAlNgNfcezd+hFKvOY3/Jt5XsVgA
 i53YTMGfryCWEaUW5F5qD5WOqz6d+LmxrKLbnPQpYjqPIaCF2K7GD+FspH0iVNpf
 wpmYZK+ku0Q3OXpRL6j5FZhXG3q7haRRB86/fp31wU+IoMEx9Il9G6NHfbe7dc8Z
 i1bHQOKUn4OPsftt5ld35v6MsJ1Kc4CWF8Rz7cOIIvDjDfsvlT91uiIMhg7cj+ql
 eJvQUlKaj1P0cjv5KlXD2pIUDXlVHNK3YGcyzHf42+P9NSDaggFgvCywtO2Et744
 46PHQ+IeuXFpbUuxFEPMn+cmzRZqodBDqSY1EWRwAIvC3nTAA14outEDclWh4rLj
 3QZPIcv/r4TMIa+OSUL37eUUhcx8v5vo8qjfSBbGioDSi/XHnJA0Ef1z9cTs6/PQ
 bDzwJuF9wAIyqegDkG6wrVbEV0DU6udcpDwibesAt/AnvUGXkX9Dj/K3JTWl7h1q
 ImJPRX+YdZSw5zA0s9iFALjp8RxOqQzIKkptlCV3toa2dQ0RCGo=
 =aFnJ
 -----END PGP SIGNATURE-----

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

AT91 DT for 6.5

It contains:
- gpio-line-names addition for at91-tse850-3 board
- support for SMA connectors on lan966x-pcb8309 board
- use drive-open-drain as boolean property as this is how code handles
  it
- generic names for clock controller devices
- use of the new clock controller bindings for at91sam9n12 slow clock
  controller
- one blank line removal on sama5d2.dtsi

* tag 'at91-dt-6.5' of https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux:
  ARM: dts: at91: sama5d2: remove extra line
  ARM: dts: at91: Return to boolean properties
  ARM: dts: lan966x: Add support for SMA connectors
  ARM: dts: at91: use clock-controller name for sckc nodes
  ARM: dts: at91: at91sam9n12: witch sckc to new clock bindings
  ARM: dts: at91: use clock-controller name for PMC nodes
  ARM: dts: at91: tse850: add properties for gpio-line-names

Link: https://lore.kernel.org/r/20230530105945.11638-1-claudiu.beznea@microchip.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-06-06 17:32:15 +02:00
Kirill A. Shutemov
ff40b5769a x86/tdx: Make _tdx_hypercall() and __tdx_module_call() available in boot stub
Memory acceptance requires a hypercall and one or multiple module calls.

Make helpers for the calls available in boot stub. It has to accept
memory where kernel image and initrd are placed.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Dave Hansen <dave.hansen@linux.intel.com>
Link: https://lore.kernel.org/r/20230606142637.5171-8-kirill.shutemov@linux.intel.com
2023-06-06 17:31:23 +02:00
Kirill A. Shutemov
c211c19e80 efi/unaccepted: Avoid load_unaligned_zeropad() stepping into unaccepted memory
load_unaligned_zeropad() can lead to unwanted loads across page boundaries.
The unwanted loads are typically harmless. But, they might be made to
totally unrelated or even unmapped memory. load_unaligned_zeropad()
relies on exception fixup (#PF, #GP and now #VE) to recover from these
unwanted loads.

But, this approach does not work for unaccepted memory. For TDX, a load
from unaccepted memory will not lead to a recoverable exception within
the guest. The guest will exit to the VMM where the only recourse is to
terminate the guest.

There are two parts to fix this issue and comprehensively avoid access
to unaccepted memory. Together these ensure that an extra "guard" page
is accepted in addition to the memory that needs to be used.

1. Implicitly extend the range_contains_unaccepted_memory(start, end)
   checks up to end+unit_size if 'end' is aligned on a unit_size
   boundary.
2. Implicitly extend accept_memory(start, end) to end+unit_size if 'end'
   is aligned on a unit_size boundary.

Side note: This leads to something strange. Pages which were accepted
	   at boot, marked by the firmware as accepted and will never
	   _need_ to be accepted might be on unaccepted_pages list
	   This is a cue to ensure that the next page is accepted
	   before 'page' can be used.

This is an actual, real-world problem which was discovered during TDX
testing.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Dave Hansen <dave.hansen@linux.intel.com>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>
Link: https://lore.kernel.org/r/20230606142637.5171-7-kirill.shutemov@linux.intel.com
2023-06-06 17:27:08 +02:00
Kirill A. Shutemov
2053bc57f3 efi: Add unaccepted memory support
efi_config_parse_tables() reserves memory that holds unaccepted memory
configuration table so it won't be reused by page allocator.

Core-mm requires few helpers to support unaccepted memory:

 - accept_memory() checks the range of addresses against the bitmap and
   accept memory if needed.

 - range_contains_unaccepted_memory() checks if anything within the
   range requires acceptance.

Architectural code has to provide efi_get_unaccepted_table() that
returns pointer to the unaccepted memory configuration table.

arch_accept_memory() handles arch-specific part of memory acceptance.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>
Link: https://lore.kernel.org/r/20230606142637.5171-6-kirill.shutemov@linux.intel.com
2023-06-06 17:22:20 +02:00
Kirill A. Shutemov
3fd1239a78 x86/boot/compressed: Handle unaccepted memory
The firmware will pre-accept the memory used to run the stub. But, the
stub is responsible for accepting the memory into which it decompresses
the main kernel. Accept memory just before decompression starts.

The stub is also responsible for choosing a physical address in which to
place the decompressed kernel image. The KASLR mechanism will randomize
this physical address. Since the accepted memory region is relatively
small, KASLR would be quite ineffective if it only used the pre-accepted
area (EFI_CONVENTIONAL_MEMORY). Ensure that KASLR randomizes among the
entire physical address space by also including EFI_UNACCEPTED_MEMORY.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Liam Merwick <liam.merwick@oracle.com>
Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>
Link: https://lore.kernel.org/r/20230606142637.5171-5-kirill.shutemov@linux.intel.com
2023-06-06 17:17:24 +02:00
Arnd Bergmann
35ee6a4deb These are some Ux500 DTS updates for the v6.5 kernel cycle:
- Define the SRAM nodes that will be the preferred way to
   specify SRAM segments to drivers going forward.
 - Fix up the naming of the STMPE nodes as we are merging
   proper YAML bindings which puts restrictions on those.
 - Disable charging on the Ux500 HREF boards because these
   do not have any real batteries connected.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEElDRnuGcz/wPCXQWMQRCzN7AZXXMFAmR0kGQACgkQQRCzN7AZ
 XXPykBAAj9fc1CTWOdLik+8uZ0Al1U1cBL6VoK/nazIf7lla/nCmAJ5zTSC6lnAw
 JtdUbyOJPTyKG5JqNvOTFngyNpChDVMQxDqgARxRcq4IRdNnE7YSsQKguUbC8rrv
 Vl040G1dPF8HYxdNSjx5hGlgqLUQRVnhe1d8bRQvd68LCEoy7nqfr4aQ0TnW3ZEZ
 IulMyA85PYmWlFgl6t5hKkCabf/tCK/mYuOM0dv0v7p1KMBLymtSp1C+89CPU/8F
 xODSeRIOHlzYgCEQfx8I4S5TT37h4DAA0nvXMaKk22WzaTqmG0EzJAF22Zad+RzN
 vKmYIJcELPV+ItCy9Vewrmwdf3y0mzIOzwTJeBxFc7O8PPyvs5VhOrBz1qjWWb4l
 HwchVLQHEQcc3U64+hVEdyAGGNGBrLn/uk3WZu/CuAi2/Nm8C8du0SBDVIfVirYI
 8ctjicsju4WUUXoAHvkCu9JCDiRCR7yUh6qoIdrZq+dDcSpPdSYsjY9o2ulJOQ1k
 6rzRSNkKs6qSTGs+xKT5lg+hd7uXyKXUn/Cd+8OSPwkWO92VUrdvP8d0k+SxXlI4
 vbNGRnsPzm6tRqWBEGK0fYdm8Q3SFOVnE1DpFBjxf0he3bRFNbCnpc8D5C1e6Kmw
 857BSmqucGyZ9Ey+CLYChkcz+MIbXXEUbx7FgDgOBsl6u1nYax8=
 =2rdu
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmR/Tc8ACgkQYKtH/8kJ
 Uif/CA/+NhW9g/NiJXwZ2+THv+46A+Dhoe+1Yu/wrliN5Li2/awypAWsLBowjuzC
 RRf1FzMhMwVNKZL5Sqy6kPUIceDBTlmarZsAc/j4qDql2XffPJBw8cggyNjgCoUO
 ufaxgVrFMqQH+dWqjYw2ybOSu0AWmN0D8zRbUwhbdJ4u8QIz1gpgH+evATGdf1Xy
 KT+1lLpol54gmC151u+JjqWPiRIgtrJ+8wlRDLTNPDeAeo1WCh+ePrX3XY5iP2+8
 dZNigT4lTGF9ByfgrpG4psitN0RdlMoPFPYj/PNjamHZUKXX8gOrgD7RN4OXykhn
 eHJqCqF25+vEuNdcHp9uKzG1KVCpGk8sWBeTNvEQSnP6fuoi2OLFIO1Jh9zkCHf4
 T+UyRtzITjY38Gxk9tuFwz4sCeqbHbD+EIcnkc12nno0sZgXZYp1bFeZomvl+pTc
 XseeM1cR1mbm7zKt7cdfKNtBUeKivwY/M4cRkWLK3ArKko6ffv6Sn8RkqSFPhQzr
 VWjEDA6SP0KvBI+sYrXLFUgNMbkVEtcT7s5ZDuDrS7cuxHZQVczDLVanP9M1XbTU
 pu3pgWLFbP/ieCb6RJpr083V61JEtT4V45BTDW382DtalUjh8dvPgTmkOJPdSo3g
 /ahKav4lWiHGhadUgkw4hxmKLKBBHvIHtfgvDFOlb/5ixl1olZQ=
 =QLb5
 -----END PGP SIGNATURE-----

Merge tag 'ux500-dts-for-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik into soc/dt

These are some Ux500 DTS updates for the v6.5 kernel cycle:
- Define the SRAM nodes that will be the preferred way to
  specify SRAM segments to drivers going forward.
- Fix up the naming of the STMPE nodes as we are merging
  proper YAML bindings which puts restrictions on those.
- Disable charging on the Ux500 HREF boards because these
  do not have any real batteries connected.

* tag 'ux500-dts-for-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik:
  ARM: dts: ux500: Add eSRAM nodes
  ARM: dts: ux500: Fix STMPE device nodes
  ARM: dts: ux500: Disable charging on HREF boards

Link: https://lore.kernel.org/r/CACRpkdZ2YLzB-n+1M9u0UqVfct_LAR5cLvYyJhxHsXNR_TFzpQ@mail.gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-06-06 17:16:31 +02:00
Jesper Dangaard Brouer
095641817e selftests/bpf: Fix check_mtu using wrong variable type
Dan Carpenter found via Smatch static checker, that unsigned 'mtu_lo' is
never less than zero.

Variable mtu_lo should have been an 'int', because read_mtu_device_lo()
uses minus as error indications.

Fixes: b62eba5632 ("selftests/bpf: Tests using bpf_check_mtu BPF-helper")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Link: https://lore.kernel.org/bpf/168605104733.3636467.17945947801753092590.stgit@firesoul
2023-06-06 17:08:22 +02:00
Conor Dooley
425d827ef9
Documentation/process: add soc maintainer handbook
Arnd suggested that adding a maintainer handbook for the SoC "subsystem"
would be helpful in trying to bring on board maintainers for the various
new platforms cropping up in RISC-V land.

Add a document briefly describing the role of the SoC subsystem and some
basic advice for (new) platform maintainers.

Suggested-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-06-06 17:07:17 +02:00
Ruiqi Gong
aa6182707a bpf: Cleanup unused function declaration
All usage and the definition of `bpf_prog_free_linfo()` has been removed
in commit e16301fbe1 ("bpf: Simplify freeing logic in linfo and
jited_linfo"). Clean up its declaration in the header file.

Signed-off-by: Ruiqi Gong <gongruiqi@huaweicloud.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Stanislav Fomichev <sdf@google.com>
Link: https://lore.kernel.org/all/20230602030842.279262-1-gongruiqi@huaweicloud.com/
Link: https://lore.kernel.org/bpf/20230606021047.170667-1-gongruiqi@huaweicloud.com
2023-06-06 17:05:21 +02:00
Kent Gibson
95ae9979bf gpio: sim: fix memory corruption when adding named lines and unnamed hogs
When constructing the sim, gpio-sim constructs an array of named lines,
sized based on the largest offset of any named line, and then initializes
that array with the names of all lines, including unnamed hogs with higher
offsets.  In doing so it writes NULLs beyond the extent of the array.

Add a check that only named lines are used to initialize the array.

Fixes: cb8c474e79 ("gpio: sim: new testing module")
Signed-off-by: Kent Gibson<warthog618@gmail.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2023-06-06 17:02:34 +02:00
Abe Kohandel
7bac98a338
spi: dt-bindings: snps,dw-apb-ssi: Add compatible for Intel Mount Evans SoC
Document the DesignWare SSI controller compatible for Intel Mount Evans
Integrated Management Complex SoC.

Signed-off-by: Abe Kohandel <abe.kohandel@intel.com>
Link: https://lore.kernel.org/r/20230606145402.474866-3-abe.kohandel@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-06-06 15:59:17 +01:00
Abe Kohandel
0760d5d0e9
spi: dw: Add compatible for Intel Mount Evans SoC
The Intel Mount Evans SoC's Integrated Management Complex uses the SPI
controller for access to a NOR SPI FLASH. However, the SoC doesn't
provide a mechanism to override the native chip select signal.

This driver doesn't use DMA for memory operations when a chip select
override is not provided due to the native chip select timing behavior.
As a result no DMA configuration is done for the controller and this
configuration is not tested.

The controller also has an errata where a full TX FIFO can result in
data corruption. The suggested workaround is to never completely fill
the FIFO. The TX FIFO has a size of 32 so the fifo_len is set to 31.

Signed-off-by: Abe Kohandel <abe.kohandel@intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20230606145402.474866-2-abe.kohandel@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2023-06-06 15:59:16 +01:00
Kirill A. Shutemov
745e3ed85f efi/libstub: Implement support for unaccepted memory
UEFI Specification version 2.9 introduces the concept of memory
acceptance: Some Virtual Machine platforms, such as Intel TDX or AMD
SEV-SNP, requiring memory to be accepted before it can be used by the
guest. Accepting happens via a protocol specific for the Virtual
Machine platform.

Accepting memory is costly and it makes VMM allocate memory for the
accepted guest physical address range. It's better to postpone memory
acceptance until memory is needed. It lowers boot time and reduces
memory overhead.

The kernel needs to know what memory has been accepted. Firmware
communicates this information via memory map: a new memory type --
EFI_UNACCEPTED_MEMORY -- indicates such memory.

Range-based tracking works fine for firmware, but it gets bulky for
the kernel: e820 (or whatever the arch uses) has to be modified on every
page acceptance. It leads to table fragmentation and there's a limited
number of entries in the e820 table.

Another option is to mark such memory as usable in e820 and track if the
range has been accepted in a bitmap. One bit in the bitmap represents a
naturally aligned power-2-sized region of address space -- unit.

For x86, unit size is 2MiB: 4k of the bitmap is enough to track 64GiB or
physical address space.

In the worst-case scenario -- a huge hole in the middle of the
address space -- It needs 256MiB to handle 4PiB of the address
space.

Any unaccepted memory that is not aligned to unit_size gets accepted
upfront.

The bitmap is allocated and constructed in the EFI stub and passed down
to the kernel via EFI configuration table. allocate_e820() allocates the
bitmap if unaccepted memory is present, according to the size of
unaccepted region.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20230606142637.5171-4-kirill.shutemov@linux.intel.com
2023-06-06 16:58:23 +02:00
David Gow
fefdb43943 Documentation: kunit: Rename references to kunit_abort()
The kunit_abort() function has been renamed __kunit_abort(), update the
references to it in the documentation.

Suggested-by: Daniel Latypov <dlatypov@google.com>
Signed-off-by: David Gow <davidgow@google.com>
Reviewed-by: Daniel Latypov <dlatypov@google.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
2023-06-06 08:57:37 -06:00
Kirill A. Shutemov
2e9f46ee15 efi/x86: Get full memory map in allocate_e820()
Currently allocate_e820() is only interested in the size of map and size
of memory descriptor to determine how many e820 entries the kernel
needs.

UEFI Specification version 2.9 introduces a new memory type --
unaccepted memory. To track unaccepted memory, the kernel needs to
allocate a bitmap. The size of the bitmap is dependent on the maximum
physical address present in the system. A full memory map is required to
find the maximum address.

Modify allocate_e820() to get a full memory map.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20230606142637.5171-3-kirill.shutemov@linux.intel.com
2023-06-06 16:45:14 +02:00
Kirill A. Shutemov
dcdfdd40fa mm: Add support for unaccepted memory
UEFI Specification version 2.9 introduces the concept of memory
acceptance. Some Virtual Machine platforms, such as Intel TDX or AMD
SEV-SNP, require memory to be accepted before it can be used by the
guest. Accepting happens via a protocol specific to the Virtual Machine
platform.

There are several ways the kernel can deal with unaccepted memory:

 1. Accept all the memory during boot. It is easy to implement and it
    doesn't have runtime cost once the system is booted. The downside is
    very long boot time.

    Accept can be parallelized to multiple CPUs to keep it manageable
    (i.e. via DEFERRED_STRUCT_PAGE_INIT), but it tends to saturate
    memory bandwidth and does not scale beyond the point.

 2. Accept a block of memory on the first use. It requires more
    infrastructure and changes in page allocator to make it work, but
    it provides good boot time.

    On-demand memory accept means latency spikes every time kernel steps
    onto a new memory block. The spikes will go away once workload data
    set size gets stabilized or all memory gets accepted.

 3. Accept all memory in background. Introduce a thread (or multiple)
    that gets memory accepted proactively. It will minimize time the
    system experience latency spikes on memory allocation while keeping
    low boot time.

    This approach cannot function on its own. It is an extension of #2:
    background memory acceptance requires functional scheduler, but the
    page allocator may need to tap into unaccepted memory before that.

    The downside of the approach is that these threads also steal CPU
    cycles and memory bandwidth from the user's workload and may hurt
    user experience.

Implement #1 and #2 for now. #2 is the default. Some workloads may want
to use #1 with accept_memory=eager in kernel command line. #3 can be
implemented later based on user's demands.

Support of unaccepted memory requires a few changes in core-mm code:

  - memblock accepts memory on allocation. It serves early boot memory
    allocations and doesn't limit them to pre-accepted pool of memory.

  - page allocator accepts memory on the first allocation of the page.
    When kernel runs out of accepted memory, it accepts memory until the
    high watermark is reached. It helps to minimize fragmentation.

EFI code will provide two helpers if the platform supports unaccepted
memory:

 - accept_memory() makes a range of physical addresses accepted.

 - range_contains_unaccepted_memory() checks anything within the range
   of physical addresses requires acceptance.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Mike Rapoport <rppt@linux.ibm.com>	# memblock
Link: https://lore.kernel.org/r/20230606142637.5171-2-kirill.shutemov@linux.intel.com
2023-06-06 16:38:22 +02:00
Roberto Sassu
95526d1303 ima: Fix build warnings
Fix build warnings (function parameters description) for
ima_collect_modsig(), ima_match_policy() and ima_parse_add_rule().

Fixes: 15588227e0 ("ima: Collect modsig") # v5.4+
Fixes: 2fe5d6def1 ("ima: integrity appraisal extension") # v5.14+
Fixes: 4af4662fa4 ("integrity: IMA policy") # v3.2+
Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
2023-06-06 09:37:23 -04:00
Nicholas Bishop
d0a1865cf7 efi/esrt: Allow ESRT access without CAP_SYS_ADMIN
Access to the files in /sys/firmware/efi/esrt has been restricted to
CAP_SYS_ADMIN since support for ESRT was added, but this seems overly
restrictive given that the files are read-only and just provide
information about UEFI firmware updates.

Remove the CAP_SYS_ADMIN restriction so that a non-root process can read
the files, provided a suitably-privileged process changes the file
ownership first. The files are still read-only and still owned by root
by default.

Signed-off-by: Nicholas Bishop <nicholasbishop@google.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2023-06-06 15:33:59 +02:00
Mark Brown
3b88f5fba2
regulator: Add X-Powers AXP15060/AXP313a PMIC
Merge series from Andre Przywara <andre.przywara@arm.com>:

This patch series adds support for the X-Powers AXP15060 and AXP313a
PMIC, which are general purpose PMICs as seen on different boards with
different SOCs, mostly from Allwinner.

This is mostly a repost of the previous patches, combining both the
AXP313a and AXP15060 series, rebased on top of v6.4-rc3, and omitting
the patches that already got merged.
The first two patches are the successors of the AXP313a v10 post,
the third patch is based on Shengyu's AXP15060 v3 post.

There were no code changes, just some tiny context differences due to
the rebase, plus I added the newly gained tags.

As the DT bindings and the AXP15060 MFD part are already in the tree,
this is just completing support with the MFD part for the AXP313a, and
the regulator support for both PMICs.
2023-06-06 14:29:41 +01:00
Johannes Berg
7d528eafc5 Revert "wifi: iwlwifi: update response for mcc_update command"
This reverts commit b70813e4a8 ("wifi: iwlwifi: update response
for mcc_update command") since it causes a merge conflict, and it
seems easier to redo the patch later.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2023-06-06 15:28:34 +02:00
Johannes Berg
8b4580ab56 Revert "wifi: iwlwifi: mvm: FTM initiator MLO support"
This reverts commit 1bcbb1208e ("wifi: iwlwifi: mvm: FTM
initiator MLO support") as it causes a merge conflict, and
we can defer and re-do those changes later.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2023-06-06 15:27:46 +02:00
Randy Dunlap
b26d3d054d x86/lib/msr: Clean up kernel-doc notation
Convert x86/lib/msr.c comments to kernel-doc notation to
eliminate kernel-doc warnings:

  msr.c:30: warning: This comment starts with '/**', but isn't \
  a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
  ...

Fixes: 22085a66c2 ("x86: Add another set of MSR accessor functions")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Link: https://lore.kernel.org/oe-kbuild-all/202304120048.v4uqUq9Q-lkp@intel.com/
2023-06-06 15:19:50 +02:00
Linus Torvalds
a4d7d70112 spi: Fixes for v6.4
A small collection of driver specific fixes, none of them particularly
 remarkable or severe.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmR/LxwACgkQJNaLcl1U
 h9DROwf+OL+WBoWbR6zVOG5xR6B70I03QNAewHOW+WWsyXAqw3im7T1H6H8rthOf
 E6xKPNTMwfGceKkTVJvzZdajjEM3QYTdxAF8gNwffv2tTmXOxDmXDF8G510Up9Nh
 h9CdqypfItEKRdVbN+qqX01XZpkqxWuHX1OeemR6u78gRSP4Tp5KCiQn6j/8GwRj
 Zd7863hCj5uVuYQCu2bxrx1rFIgodCVeC333mnrDLvQMIRGgJeS7FGSdyrg+wLTQ
 zEygY0mt5uezHt+8CyFbzHYCgmVNiM/iLBhNnkIvIzA4fhQoi4shm+S0BqGwB1VV
 NgLghGlCbnGpyQpQQmEXsZZfOKvtvQ==
 =pTb8
 -----END PGP SIGNATURE-----

Merge tag 'spi-fix-v6.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi

Pull spi fixes from Mark Brown:
 "A small collection of driver specific fixes, none of them particularly
  remarkable or severe"

* tag 'spi-fix-v6.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
  spi: qup: Request DMA before enabling clocks
  spi: mt65xx: make sure operations completed before unloading
  spi: lpspi: disable lpspi module irq in DMA mode
2023-06-06 06:18:28 -07:00
Jon Hunter
86d24f98b7 arm64: tegra: Update USB phy-name for Jetson Orin NX
Running 'make dtbs_check' reports the following warning for the Jetson
Orin NX platform ...

 arch/arm64/boot/dts/nvidia/tegra234-p3768-0000+p3767-0000.dtb:
     usb@3550000: phy-names:1: 'usb3-0' was expected

Fix this by updating the phy-names:1 to be 'usb3-0' as expected.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2023-06-06 15:11:21 +02:00
Jon Hunter
620405856d arm64: tegra: Enable USB device for Jetson AGX Orin
Enable USB device support for the Jetson AGX Orin platform and update
the mode for the usb2-0 port to be on-the-go.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2023-06-06 15:11:21 +02:00