linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] KVM: arm64: Return -EINVAL for an empty SMCCC filter range at base 0
@ 2026-08-29  5:48 Karl Mehltretter
  2026-08-29  5:48 ` [PATCH 1/2] " Karl Mehltretter
  2026-08-29  5:48 ` [PATCH 2/2] KVM: arm64: selftests: Test " Karl Mehltretter
  0 siblings, 2 replies; 7+ messages in thread
From: Karl Mehltretter @ 2026-08-29  5:48 UTC (permalink / raw)
  To: Marc Zyngier, Oliver Upton, kvmarm
  Cc: Karl Mehltretter, Fuad Tabba, Joey Gouly, Steffen Eiden,
	Suzuki K Poulose, Zenghui Yu, Catalin Marinas, Will Deacon,
	Mark Rutland, Paolo Bonzini, Sean Christopherson, Shuah Khan,
	linux-arm-kernel, linux-kernel, kvm, linux-kselftest

KVM_ARM_VM_SMCCC_FILTER rejects an empty range (nr_functions == 0) with
-EINVAL for every base except 0. kvm_smccc_set_filter() only rejects a
range if its inclusive end, base + nr_functions - 1, is below base; for
base 0 that end wraps to U32_MAX, and KVM then tries to insert
[0, U32_MAX], which overlaps the reserved Arm Architecture Calls
ranges, so the attribute returns -EEXIST instead of -EINVAL.

The request is rejected either way; only the errno is wrong, so this is
a minor UAPI validation fix.

Patch 1 rejects a zero function count explicitly. Patch 2 adds the base
0 case to test_invalid_nr_functions(), which only covered a nonzero base
and therefore never caught this.

Tested on an arm64 KVM host in VHE mode running under QEMU TCG: a small
userspace reproducer gets EEXIST before patch 1 and EINVAL after it, and
the smccc_filter selftest including the new assertion passes with patch 1
applied and fails at the new assertion with EEXIST without it.

Karl Mehltretter (2):
  KVM: arm64: Return -EINVAL for an empty SMCCC filter range at base 0
  KVM: arm64: selftests: Test empty SMCCC filter range at base 0

 arch/arm64/kvm/hypercalls.c                      | 3 ++-
 tools/testing/selftests/kvm/arm64/smccc_filter.c | 4 ++++
 2 files changed, 6 insertions(+), 1 deletion(-)


base-commit: 548e7bcd0c5460ddcbca9600cea603ebeebf4da7
-- 
2.39.5 (Apple Git-154)



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

end of thread, other threads:[~2026-08-29 15:56 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-29  5:48 [PATCH 0/2] KVM: arm64: Return -EINVAL for an empty SMCCC filter range at base 0 Karl Mehltretter
2026-08-29  5:48 ` [PATCH 1/2] " Karl Mehltretter
2026-08-29 15:04   ` Fuad Tabba
2026-08-29 15:53     ` Karl Mehltretter
2026-08-29 15:55       ` Fuad Tabba
2026-08-29  5:48 ` [PATCH 2/2] KVM: arm64: selftests: Test " Karl Mehltretter
2026-08-29 15:04   ` Fuad Tabba

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).