KVM: arm64: Fail the idreg iterator if idregs aren't initialized
authorOliver Upton <oliver.upton@linux.dev>
Tue, 27 Feb 2024 09:41:14 +0000 (09:41 +0000)
committerOliver Upton <oliver.upton@linux.dev>
Tue, 27 Feb 2024 19:19:05 +0000 (19:19 +0000)
Return an error to userspace if the VM's ID register values haven't been
initialized in preparation for changing the debugfs file initialization
order.

Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20240227094115.1723330-2-oliver.upton@linux.dev
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
arch/arm64/kvm/sys_regs.c

index e3faedc8b7a30d9d711e0355a5158fb2db257294..e9319d90d66ffb7be0a87b03cae2aff075ac0f08 100644 (file)
@@ -3431,7 +3431,8 @@ static void *idregs_debug_start(struct seq_file *s, loff_t *pos)
        mutex_lock(&kvm->arch.config_lock);
 
        iter = &kvm->arch.idreg_debugfs_iter;
-       if (*iter == (u8)~0) {
+       if (test_bit(KVM_ARCH_FLAG_ID_REGS_INITIALIZED, &kvm->arch.flags) &&
+           *iter == (u8)~0) {
                *iter = *pos;
                if (*iter >= KVM_ARM_ID_REG_NUM)
                        iter = NULL;