RE: [PATCH v3 3/3] x86/hyperv: Make encrypted/decrypted changes safe for load_unaligned_zeropad()

From: Michael Kelley
Date: Thu Jan 11 2024 - 22:20:10 EST


From: Edgecombe, Rick P <rick.p.edgecombe@xxxxxxxxx> Sent: Thursday, January 11, 2024 4:27 PM
>
> On Fri, 2024-01-05 at 10:30 -0800, mhkelley58@xxxxxxxxx wrote:
> >   * hv_vtom_set_host_visibility - Set specified memory visible to host.
> >   *
> > @@ -521,7 +547,7 @@ static bool hv_vtom_set_host_visibility(unsigned long kbuffer, int pagecount, bo
> >
> >         pfn_array = kmalloc(HV_HYP_PAGE_SIZE, GFP_KERNEL);
> >         if (!pfn_array)
> > -               return false;
> > +               goto err_set_memory_p;
> >
>
> If kmalloc() fails here, and set_memory_p() succeeds below, then
> hv_vtom_set_host_visibility() returns true, but skips all the
> hv_mark_gpa_visibility() work. Shouldn't it return false?

Ooops. Yes. If the kmalloc() fails, need to set "result" to false before
doing the goto. Will fix in the next version.

Michael