[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 01/28] target/arm/kvm: Retry KVM_CREATE_VM call if it fails EINTR
From: |
Peter Maydell |
Subject: |
[PULL 01/28] target/arm/kvm: Retry KVM_CREATE_VM call if it fails EINTR |
Date: |
Mon, 10 Oct 2022 15:27:03 +0100 |
Occasionally the KVM_CREATE_VM ioctl can return EINTR, even though
there is no pending signal to be taken. In commit 94ccff13382055
we added a retry-on-EINTR loop to the KVM_CREATE_VM call in the
generic KVM code. Adopt the same approach for the use of the
ioctl in the Arm-specific KVM code (where we use it to create a
scratch VM for probing for various things).
For more information, see the mailing list thread:
https://lore.kernel.org/qemu-devel/8735e0s1zw.wl-maz@kernel.org/
Reported-by: Vitaly Chikunov <vt@altlinux.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Vitaly Chikunov <vt@altlinux.org>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Message-id: 20220930113824.1933293-1-peter.maydell@linaro.org
---
target/arm/kvm.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/target/arm/kvm.c b/target/arm/kvm.c
index e5c1bd50d29..1e4de9b42e3 100644
--- a/target/arm/kvm.c
+++ b/target/arm/kvm.c
@@ -79,7 +79,9 @@ bool kvm_arm_create_scratch_host_vcpu(const uint32_t
*cpus_to_try,
if (max_vm_pa_size < 0) {
max_vm_pa_size = 0;
}
- vmfd = ioctl(kvmfd, KVM_CREATE_VM, max_vm_pa_size);
+ do {
+ vmfd = ioctl(kvmfd, KVM_CREATE_VM, max_vm_pa_size);
+ } while (vmfd == -1 && errno == EINTR);
if (vmfd < 0) {
goto err;
}
--
2.25.1
- [PULL 00/28] target-arm queue, Peter Maydell, 2022/10/10
- [PULL 02/28] target/arm: allow setting SCR_EL3.EnTP2 when FEAT_SME is implemented, Peter Maydell, 2022/10/10
- [PULL 01/28] target/arm/kvm: Retry KVM_CREATE_VM call if it fails EINTR,
Peter Maydell <=
- [PULL 03/28] docs/nuvoton: Update URL for images, Peter Maydell, 2022/10/10
- [PULL 04/28] target/arm: Split s2walk_secure from ipa_secure in get_phys_addr, Peter Maydell, 2022/10/10
- [PULL 05/28] target/arm: Make the final stage1+2 write to secure be unconditional, Peter Maydell, 2022/10/10
- [PULL 06/28] target/arm: Add is_secure parameter to get_phys_addr_lpae, Peter Maydell, 2022/10/10
- [PULL 07/28] target/arm: Fix S2 disabled check in S1_ptw_translate, Peter Maydell, 2022/10/10
- [PULL 08/28] target/arm: Add is_secure parameter to regime_translation_disabled, Peter Maydell, 2022/10/10
- [PULL 09/28] target/arm: Split out get_phys_addr_with_secure, Peter Maydell, 2022/10/10
- [PULL 10/28] target/arm: Add is_secure parameter to v7m_read_half_insn, Peter Maydell, 2022/10/10
- [PULL 11/28] target/arm: Add TBFLAG_M32.SECURE, Peter Maydell, 2022/10/10
- [PULL 16/28] target/arm: Drop secure check for HCR.TGE vs SCTLR_EL1.M, Peter Maydell, 2022/10/10