Re: [v2 1/1] KVM: s390: VSIE: sort out virtual/physical address in pin_guest_page

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 25 Oct 2022 10:20:39 +0200
Nico Boehr <nrb@xxxxxxxxxxxxx> wrote:

> pin_guest_page() used page_to_virt() to calculate the hpa of the pinned
> page. This currently works, because virtual and physical addresses are
> the same. Use page_to_phys() instead to resolve the virtual-real address
> confusion.
> 
> One caller of pin_guest_page() actually expected the hpa to be a hva, so
> add the missing phys_to_virt() conversion here.
> 
> Signed-off-by: Nico Boehr <nrb@xxxxxxxxxxxxx>

Reviewed-by: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx>

> ---
>  arch/s390/kvm/vsie.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/s390/kvm/vsie.c b/arch/s390/kvm/vsie.c
> index 94138f8f0c1c..0e9d020d7093 100644
> --- a/arch/s390/kvm/vsie.c
> +++ b/arch/s390/kvm/vsie.c
> @@ -654,7 +654,7 @@ static int pin_guest_page(struct kvm *kvm, gpa_t gpa, hpa_t *hpa)
>  	page = gfn_to_page(kvm, gpa_to_gfn(gpa));
>  	if (is_error_page(page))
>  		return -EINVAL;
> -	*hpa = (hpa_t) page_to_virt(page) + (gpa & ~PAGE_MASK);
> +	*hpa = (hpa_t)page_to_phys(page) + (gpa & ~PAGE_MASK);
>  	return 0;
>  }
>  
> @@ -869,7 +869,7 @@ static int pin_scb(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page,
>  		WARN_ON_ONCE(rc);
>  		return 1;
>  	}
> -	vsie_page->scb_o = (struct kvm_s390_sie_block *) hpa;
> +	vsie_page->scb_o = phys_to_virt(hpa);
>  	return 0;
>  }
>  




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux