All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/2] KVM: arm64: Fix and test MMIO sign-extending loads
@ 2026-07-06 11:55 Fuad Tabba
  2026-07-06 11:55 ` [PATCH v3 1/2] KVM: arm64: Fix sign-extension of MMIO loads Fuad Tabba
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Fuad Tabba @ 2026-07-06 11:55 UTC (permalink / raw)
  To: Marc Zyngier, Oliver Upton
  Cc: Joey Gouly, Suzuki K Poulose, Zenghui Yu, Steffen Eiden,
	Catalin Marinas, Will Deacon, Shuah Khan, Christoffer Dall,
	Victor Kamensky, Fuad Tabba, linux-arm-kernel, kvmarm,
	linux-kernel

Hi folks,

Changes since v2 [1]:
  - Patch 2: dropped the second make_el0_accessible() call and the
    el0_be_loads_end symbol; the EL0 code page does not need its
    user-access bit set because it is fetched, not loaded. (sashiko)

Oliver's Reviewed-by is on patch 1 only: the code there is unchanged
since v1.

A sign-extending load (LDRSB/LDRSH/LDRSW) from emulated MMIO returns a
zero-extended value rather than the sign-extended one the architecture
requires; vcpu_data_host_to_guest() strips the sign bits when it masks
the data to the access width.

If my git archeology is right, the masking dates to 2014 (b30070862edbd,
big-endian support) and has been wrong ever since, but sign-extending
loads from device memory are rare enough that nobody hit it. Patch 1
fixes it; patch 2 adds a selftest so it doesn't regress.

Both passes run under QEMU, which reports mixed-endian support.

Based on Linux 7.2-rc2 (8cdeaa50eae8d).

Cheers,
/fuad

[1] https://lore.kernel.org/all/20260625144807.2603272-1-fuad.tabba@linux.dev/

Fuad Tabba (2):
  KVM: arm64: Fix sign-extension of MMIO loads
  KVM: arm64: selftests: Add MMIO sign-extending load test

 arch/arm64/kvm/mmio.c                         |   7 +-
 tools/testing/selftests/kvm/Makefile.kvm      |   1 +
 .../selftests/kvm/arm64/mmio_sign_ext.c       | 255 ++++++++++++++++++
 3 files changed, 260 insertions(+), 3 deletions(-)
 create mode 100644 tools/testing/selftests/kvm/arm64/mmio_sign_ext.c

-- 
2.39.5


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-07-06 16:19 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-06 11:55 [PATCH v3 0/2] KVM: arm64: Fix and test MMIO sign-extending loads Fuad Tabba
2026-07-06 11:55 ` [PATCH v3 1/2] KVM: arm64: Fix sign-extension of MMIO loads Fuad Tabba
2026-07-06 11:55 ` [PATCH v3 2/2] KVM: arm64: selftests: Add MMIO sign-extending load test Fuad Tabba
2026-07-06 12:08   ` sashiko-bot
2026-07-06 12:19     ` Fuad Tabba
2026-07-06 16:19 ` [PATCH v3 0/2] KVM: arm64: Fix and test MMIO sign-extending loads Marc Zyngier

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.