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

Re: [Xen-devel] [PATCH 2/2] x86/mm: Use mfn_t for make_cr3()



On Wed, Aug 30, 2017 at 1:19 PM, Andrew Cooper
<andrew.cooper3@xxxxxxxxxx> wrote:
> No functional change.
>
> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>

Acked-by: George Dunlap <george.dunlap@xxxxxxxxxx>

> ---
> CC: Jan Beulich <JBeulich@xxxxxxxx>
> CC: Wei Liu <wei.liu2@xxxxxxxxxx>
> CC: Tim Deegan <tim@xxxxxxx>
> CC: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
> ---
>  xen/arch/x86/mm.c               | 10 +++++-----
>  xen/arch/x86/mm/hap/hap.c       |  2 +-
>  xen/arch/x86/mm/shadow/common.c |  8 ++++----
>  xen/arch/x86/mm/shadow/multi.c  |  4 ++--
>  xen/include/asm-x86/mm.h        |  2 +-
>  5 files changed, 13 insertions(+), 13 deletions(-)
>
> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
> index dc07b4f..f0c81e7 100644
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -498,9 +498,9 @@ void free_shared_domheap_page(struct page_info *page)
>      free_domheap_page(page);
>  }
>
> -void make_cr3(struct vcpu *v, unsigned long mfn)
> +void make_cr3(struct vcpu *v, mfn_t mfn)
>  {
> -    v->arch.cr3 = mfn << PAGE_SHIFT;
> +    v->arch.cr3 = mfn_x(mfn) << PAGE_SHIFT;
>  }
>
>  void write_ptbase(struct vcpu *v)
> @@ -518,7 +518,7 @@ void write_ptbase(struct vcpu *v)
>   */
>  void update_cr3(struct vcpu *v)
>  {
> -    unsigned long cr3_mfn;
> +    mfn_t cr3_mfn;
>
>      if ( paging_mode_enabled(v->domain) )
>      {
> @@ -527,9 +527,9 @@ void update_cr3(struct vcpu *v)
>      }
>
>      if ( !(v->arch.flags & TF_kernel_mode) )
> -        cr3_mfn = pagetable_get_pfn(v->arch.guest_table_user);
> +        cr3_mfn = pagetable_get_mfn(v->arch.guest_table_user);
>      else
> -        cr3_mfn = pagetable_get_pfn(v->arch.guest_table);
> +        cr3_mfn = pagetable_get_mfn(v->arch.guest_table);
>
>      make_cr3(v, cr3_mfn);
>  }
> diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
> index 15e4877..6946fde 100644
> --- a/xen/arch/x86/mm/hap/hap.c
> +++ b/xen/arch/x86/mm/hap/hap.c
> @@ -719,7 +719,7 @@ static void hap_update_paging_modes(struct vcpu *v)
>      {
>          mfn_t mmfn = hap_make_monitor_table(v);
>          v->arch.monitor_table = pagetable_from_mfn(mmfn);
> -        make_cr3(v, mfn_x(mmfn));
> +        make_cr3(v, mmfn);
>          hvm_update_host_cr3(v);
>      }
>
> diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
> index e8ee6db..3926ed6 100644
> --- a/xen/arch/x86/mm/shadow/common.c
> +++ b/xen/arch/x86/mm/shadow/common.c
> @@ -2961,7 +2961,7 @@ static void sh_update_paging_modes(struct vcpu *v)
>          {
>              mfn_t mmfn = v->arch.paging.mode->shadow.make_monitor_table(v);
>              v->arch.monitor_table = pagetable_from_mfn(mmfn);
> -            make_cr3(v, mfn_x(mmfn));
> +            make_cr3(v, mmfn);
>              hvm_update_host_cr3(v);
>          }
>
> @@ -3004,7 +3004,7 @@ static void sh_update_paging_modes(struct vcpu *v)
>                  /* Don't be running on the old monitor table when we
>                   * pull it down!  Switch CR3, and warn the HVM code that
>                   * its host cr3 has changed. */
> -                make_cr3(v, mfn_x(new_mfn));
> +                make_cr3(v, new_mfn);
>                  if ( v == current )
>                      write_ptbase(v);
>                  hvm_update_host_cr3(v);
> @@ -3380,9 +3380,9 @@ static int shadow_one_bit_disable(struct domain *d, u32 
> mode)
>              if ( v->arch.paging.mode )
>                  v->arch.paging.mode->shadow.detach_old_tables(v);
>              if ( !(v->arch.flags & TF_kernel_mode) )
> -                make_cr3(v, pagetable_get_pfn(v->arch.guest_table_user));
> +                make_cr3(v, pagetable_get_mfn(v->arch.guest_table_user));
>              else
> -                make_cr3(v, pagetable_get_pfn(v->arch.guest_table));
> +                make_cr3(v, pagetable_get_mfn(v->arch.guest_table));
>
>  #if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC)
>              {
> diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c
> index c5c0af8..f7efe66 100644
> --- a/xen/arch/x86/mm/shadow/multi.c
> +++ b/xen/arch/x86/mm/shadow/multi.c
> @@ -4273,7 +4273,7 @@ sh_update_cr3(struct vcpu *v, int do_locking)
>      ///
>      if ( shadow_mode_external(d) )
>      {
> -        make_cr3(v, pagetable_get_pfn(v->arch.monitor_table));
> +        make_cr3(v, pagetable_get_mfn(v->arch.monitor_table));
>      }
>      else // not shadow_mode_external...
>      {
> @@ -4287,7 +4287,7 @@ sh_update_cr3(struct vcpu *v, int do_locking)
>          v->arch.cr3 = virt_to_maddr(&v->arch.paging.shadow.l3table);
>  #else
>          /* 4-on-4: Just use the shadow top-level directly */
> -        make_cr3(v, pagetable_get_pfn(v->arch.shadow_table[0]));
> +        make_cr3(v, pagetable_get_mfn(v->arch.shadow_table[0]));
>  #endif
>      }
>
> diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h
> index 4c03a33..dce3f16 100644
> --- a/xen/include/asm-x86/mm.h
> +++ b/xen/include/asm-x86/mm.h
> @@ -540,7 +540,7 @@ void audit_domains(void);
>  #endif
>
>  int new_guest_cr3(mfn_t mfn);
> -void make_cr3(struct vcpu *v, unsigned long mfn);
> +void make_cr3(struct vcpu *v, mfn_t mfn);
>  void update_cr3(struct vcpu *v);
>  int vcpu_destroy_pagetables(struct vcpu *);
>  void *do_page_walk(struct vcpu *v, unsigned long addr);
> --
> 2.1.4
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> https://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.