On 18.12.2019 21:40, Tamas K Lengyel wrote:
> Use __get_gfn_type_access instead of p2m->get_entry to trigger page-forking
> when the mem_access permission is being set on a page that has not yet been
> copied over from the parent.
> 
> Signed-off-by: Tamas K Lengyel <tamas.lengyel@intel.comReviewed-by: Alexandru 
> Isaila <aisa...@bitdefender.com>

> ---
>   xen/arch/x86/mm/mem_access.c | 5 ++---
>   1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/arch/x86/mm/mem_access.c b/xen/arch/x86/mm/mem_access.c
> index 320b9fe621..9caf08a5b2 100644
> --- a/xen/arch/x86/mm/mem_access.c
> +++ b/xen/arch/x86/mm/mem_access.c
> @@ -303,11 +303,10 @@ static int set_mem_access(struct domain *d, struct 
> p2m_domain *p2m,
>       ASSERT(!ap2m);
>   #endif
>       {
> -        mfn_t mfn;
>           p2m_access_t _a;
>           p2m_type_t t;
> -
> -        mfn = p2m->get_entry(p2m, gfn, &t, &_a, 0, NULL, NULL);
> +        mfn_t mfn = __get_gfn_type_access(p2m, gfn_x(gfn), &t, &_a,
> +                                          P2M_ALLOC, NULL, false);

Don't you want p2m_query_t to be 0 as it was in the p2m->get_entry() call ?

>           rc = p2m->set_entry(p2m, gfn, mfn, PAGE_ORDER_4K, t, a, -1);
>       }
>   
> 

Alex
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to