Commit 07519775 authored by Fuad Tabba's avatar Fuad Tabba Committed by cuiyudong
Browse files

KVM: arm64: Change kvm_handle_mmio_return() return polarity

stable inclusion
from stable-v6.6.66
commit 3fe534a02897f5fb8a83c3a5d4447831d0cc9204
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IBLUBO

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=3fe534a02897f5fb8a83c3a5d4447831d0cc9204



--------------------------------

Most exit handlers return <= 0 to indicate that the host needs to
handle the exit. Make kvm_handle_mmio_return() consistent with
the exit handlers in handle_exit(). This makes the code easier to
reason about, and makes it easier to add other handlers in future
patches.

No functional change intended.

Signed-off-by: default avatarFuad Tabba <tabba@google.com>
Acked-by: default avatarOliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20240423150538.2103045-15-tabba@google.com


Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
Stable-dep-of: e735a5da6442 ("KVM: arm64: Don't retire aborted MMIO instruction")
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Conflicts:
arch/arm64/kvm/arm.c
arch/arm64/kvm/mmio.c
Signed-off-by: default avatarcuiyudong <cuiyudong@kylinos.cn>
parent 56e0de56
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -1108,7 +1108,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu)


	if (run->exit_reason == KVM_EXIT_MMIO) {
	if (run->exit_reason == KVM_EXIT_MMIO) {
		ret = kvm_handle_mmio_return(vcpu);
		ret = kvm_handle_mmio_return(vcpu);
		if (ret)
		if (ret <= 0)
			return ret;
			return ret;
	}
	}


+2 −2
Original line number Original line Diff line number Diff line
@@ -115,7 +115,7 @@ int kvm_handle_mmio_return(struct kvm_vcpu *vcpu)
	 * the MMIO access.
	 * the MMIO access.
	 */
	 */
	if (unlikely(!vcpu->mmio_needed || kvm_pending_sync_exception(vcpu)))
	if (unlikely(!vcpu->mmio_needed || kvm_pending_sync_exception(vcpu)))
		return 0;
		return 1;


	vcpu->mmio_needed = 0;
	vcpu->mmio_needed = 0;


@@ -152,7 +152,7 @@ int kvm_handle_mmio_return(struct kvm_vcpu *vcpu)
	 */
	 */
	kvm_incr_pc(vcpu);
	kvm_incr_pc(vcpu);


	return 0;
	return 1;
}
}


int io_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa)
int io_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa)