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

Re: [Xen-devel] [PATCH 2/3] x86: drop is_pv_32on64_domain()



On 06/23/2015 04:19 PM, Jan Beulich wrote:
> ... as being identical to is_pv_32bit_domain() after the x86-32
> removal.
> 
> In a few cases this includes no longer open-coding is_pv_32bit_vcpu().
> 
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>

Reviewed-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>

> 
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -367,7 +367,7 @@ int switch_native(struct domain *d)
>  
>      if ( !may_switch_mode(d) )
>          return -EACCES;
> -    if ( !is_pv_32on64_domain(d) )
> +    if ( !is_pv_32bit_domain(d) )
>          return 0;
>  
>      d->arch.is_32bit_pv = d->arch.has_32bit_shinfo = 0;
> @@ -392,7 +392,7 @@ int switch_compat(struct domain *d)
>  
>      if ( !may_switch_mode(d) )
>          return -EACCES;
> -    if ( is_pv_32on64_domain(d) )
> +    if ( is_pv_32bit_domain(d) )
>          return 0;
>  
>      d->arch.is_32bit_pv = d->arch.has_32bit_shinfo = 1;
> @@ -481,7 +481,7 @@ int vcpu_initialise(struct vcpu *v)
>  
>      v->arch.pv_vcpu.ctrlreg[4] = real_cr4_to_pv_guest_cr4(mmu_cr4_features);
>  
> -    rc = is_pv_32on64_domain(d) ? setup_compat_l4(v) : 0;
> +    rc = is_pv_32bit_domain(d) ? setup_compat_l4(v) : 0;
>   done:
>      if ( rc )
>      {
> @@ -689,7 +689,7 @@ unsigned long pv_guest_cr4_fixup(const s
>      hv_cr4_mask = ~X86_CR4_TSD;
>      if ( cpu_has_de )
>          hv_cr4_mask &= ~X86_CR4_DE;
> -    if ( cpu_has_fsgsbase && !is_pv_32bit_domain(v->domain) )
> +    if ( cpu_has_fsgsbase && !is_pv_32bit_vcpu(v) )
>          hv_cr4_mask &= ~X86_CR4_FSGSBASE;
>      if ( cpu_has_xsave )
>          hv_cr4_mask &= ~X86_CR4_OSXSAVE;
> @@ -721,7 +721,7 @@ int arch_set_info_guest(
>  
>      /* The context is a compat-mode one if the target domain is compat-mode;
>       * we expect the tools to DTRT even in compat-mode callers. */
> -    compat = is_pv_32on64_domain(d);
> +    compat = is_pv_32bit_domain(d);
>  
>  #define c(fld) (compat ? (c.cmp->fld) : (c.nat->fld))
>      flags = c(flags);
> @@ -1195,7 +1195,7 @@ static void load_segments(struct vcpu *n
>              all_segs_okay &= loadsegment(gs, uregs->gs);
>      }
>  
> -    if ( !is_pv_32on64_domain(n->domain) )
> +    if ( !is_pv_32bit_vcpu(n) )
>      {
>          /* This can only be non-zero if selector is NULL. */
>          if ( n->arch.pv_vcpu.fs_base )
> @@ -1224,7 +1224,7 @@ static void load_segments(struct vcpu *n
>              (unsigned long *)pv->kernel_sp;
>          unsigned long cs_and_mask, rflags;
>  
> -        if ( is_pv_32on64_domain(n->domain) )
> +        if ( is_pv_32bit_vcpu(n) )
>          {
>              unsigned int *esp = ring_1(regs) ?
>                                  (unsigned int *)regs->rsp :
> @@ -1340,7 +1340,7 @@ static void save_segments(struct vcpu *v
>      if ( regs->es )
>          dirty_segment_mask |= DIRTY_ES;
>  
> -    if ( regs->fs || is_pv_32on64_domain(v->domain) )
> +    if ( regs->fs || is_pv_32bit_vcpu(v) )
>      {
>          dirty_segment_mask |= DIRTY_FS;
>          v->arch.pv_vcpu.fs_base = 0; /* != 0 selector kills fs_base */
> @@ -1350,7 +1350,7 @@ static void save_segments(struct vcpu *v
>          dirty_segment_mask |= DIRTY_FS_BASE;
>      }
>  
> -    if ( regs->gs || is_pv_32on64_domain(v->domain) )
> +    if ( regs->gs || is_pv_32bit_vcpu(v) )
>      {
>          dirty_segment_mask |= DIRTY_GS;
>          v->arch.pv_vcpu.gs_base_user = 0; /* != 0 selector kills 
> gs_base_user */
> @@ -1483,8 +1483,8 @@ static void __context_switch(void)
>  
>      psr_ctxt_switch_to(nd);
>  
> -    gdt = !is_pv_32on64_domain(nd) ? per_cpu(gdt_table, cpu) :
> -                                     per_cpu(compat_gdt_table, cpu);
> +    gdt = !is_pv_32bit_domain(nd) ? per_cpu(gdt_table, cpu) :
> +                                    per_cpu(compat_gdt_table, cpu);
>      if ( need_full_gdt(nd) )
>      {
>          unsigned long mfn = virt_to_mfn(gdt);
> @@ -1568,7 +1568,7 @@ void context_switch(struct vcpu *prev, s
>          if ( is_pv_domain(nextd) &&
>               (is_idle_domain(prevd) ||
>                has_hvm_container_domain(prevd) ||
> -              is_pv_32on64_domain(prevd) != is_pv_32on64_domain(nextd)) )
> +              is_pv_32bit_domain(prevd) != is_pv_32bit_domain(nextd)) )
>          {
>              uint64_t efer = read_efer();
>              if ( !(efer & EFER_SCE) )
> --- a/xen/arch/x86/domain_build.c
> +++ b/xen/arch/x86/domain_build.c
> @@ -293,7 +293,7 @@ static unsigned long __init compute_dom0
>      avail -= (d->max_vcpus - 1UL)
>               << get_order_from_bytes(sizeof(struct vcpu));
>      /* ...and compat_l4's, if needed. */
> -    if ( is_pv_32on64_domain(d) )
> +    if ( is_pv_32bit_domain(d) )
>          avail -= d->max_vcpus - 1;
>  
>      /* Reserve memory for iommu_dom0_init() (rough estimate). */
> @@ -608,7 +608,7 @@ static __init void dom0_update_physmap(s
>          BUG_ON(rc);
>          return;
>      }
> -    if ( !is_pv_32on64_domain(d) )
> +    if ( !is_pv_32bit_domain(d) )
>          ((unsigned long *)vphysmap_s)[pfn] = mfn;
>      else
>          ((unsigned int *)vphysmap_s)[pfn] = mfn;
> @@ -718,7 +718,7 @@ static __init void mark_pv_pt_pages_rdon
>  
>          /* Top-level p.t. is pinned. */
>          if ( (page->u.inuse.type_info & PGT_type_mask) ==
> -             (!is_pv_32on64_domain(d) ?
> +             (!is_pv_32bit_domain(d) ?
>                PGT_l4_page_table : PGT_l3_page_table) )
>          {
>              page->count_info        += 1;
> @@ -1048,7 +1048,7 @@ int __init construct_dom0(
>          vinitrd_end    = vinitrd_start + initrd_len;
>          vphysmap_start = round_pgup(vinitrd_end);
>      }
> -    vphysmap_end     = vphysmap_start + (nr_pages * (!is_pv_32on64_domain(d) 
> ?
> +    vphysmap_end     = vphysmap_start + (nr_pages * (!is_pv_32bit_domain(d) ?
>                                                       sizeof(unsigned long) :
>                                                       sizeof(unsigned int)));
>      if ( parms.p2m_base != UNSET_ADDR )
> @@ -1076,9 +1076,9 @@ int __init construct_dom0(
>  #define NR(_l,_h,_s) \
>      (((((_h) + ((1UL<<(_s))-1)) & ~((1UL<<(_s))-1)) - \
>         ((_l) & ~((1UL<<(_s))-1))) >> (_s))
> -        if ( (!is_pv_32on64_domain(d) + /* # L4 */
> +        if ( (!is_pv_32bit_domain(d) + /* # L4 */
>                NR(v_start, v_end, L4_PAGETABLE_SHIFT) + /* # L3 */
> -              (!is_pv_32on64_domain(d) ?
> +              (!is_pv_32bit_domain(d) ?
>                 NR(v_start, v_end, L3_PAGETABLE_SHIFT) : /* # L2 */
>                 4) + /* # compat L2 */
>                NR(v_start, v_end, L2_PAGETABLE_SHIFT))  /* # L1 */
> @@ -1176,7 +1176,7 @@ int __init construct_dom0(
>          mpt_alloc -= PAGE_ALIGN(initrd_len);
>  
>      /* Overlap with Xen protected area? */
> -    if ( !is_pv_32on64_domain(d) ?
> +    if ( !is_pv_32bit_domain(d) ?
>           ((v_start < HYPERVISOR_VIRT_END) &&
>            (v_end > HYPERVISOR_VIRT_START)) :
>           (v_end > HYPERVISOR_COMPAT_VIRT_START(d)) )
> @@ -1186,14 +1186,14 @@ int __init construct_dom0(
>          goto out;
>      }
>  
> -    if ( is_pv_32on64_domain(d) )
> +    if ( is_pv_32bit_domain(d) )
>      {
>          v->arch.pv_vcpu.failsafe_callback_cs = FLAT_COMPAT_KERNEL_CS;
>          v->arch.pv_vcpu.event_callback_cs    = FLAT_COMPAT_KERNEL_CS;
>      }
>  
>      /* WARNING: The new domain must have its 'processor' field filled in! */
> -    if ( !is_pv_32on64_domain(d) )
> +    if ( !is_pv_32bit_domain(d) )
>      {
>          maddr_to_page(mpt_alloc)->u.inuse.type_info = PGT_l4_page_table;
>          l4start = l4tab = __va(mpt_alloc); mpt_alloc += PAGE_SIZE;
> @@ -1211,7 +1211,7 @@ int __init construct_dom0(
>      clear_page(l4tab);
>      init_guest_l4_table(l4tab, d, 0);
>      v->arch.guest_table = pagetable_from_paddr(__pa(l4start));
> -    if ( is_pv_32on64_domain(d) )
> +    if ( is_pv_32bit_domain(d) )
>          v->arch.guest_table_user = v->arch.guest_table;
>  
>      l4tab += l4_table_offset(v_start);
> @@ -1257,7 +1257,7 @@ int __init construct_dom0(
>              mfn = pfn++;
>          else
>              mfn = initrd_mfn++;
> -        *l1tab = l1e_from_pfn(mfn, (!is_pv_32on64_domain(d) ?
> +        *l1tab = l1e_from_pfn(mfn, (!is_pv_32bit_domain(d) ?
>                                      L1_PROT : COMPAT_L1_PROT));
>          l1tab++;
>  
> @@ -1270,7 +1270,7 @@ int __init construct_dom0(
>          }
>      }
>  
> -    if ( is_pv_32on64_domain(d) )
> +    if ( is_pv_32bit_domain(d) )
>      {
>          /* Ensure the first four L3 entries are all populated. */
>          for ( i = 0, l3tab = l3start; i < 4; ++i, ++l3tab )
> @@ -1477,7 +1477,7 @@ int __init construct_dom0(
>      if ( is_pvh_domain(d) )
>          si->shared_info = shared_info_paddr;
>  
> -    if ( is_pv_32on64_domain(d) )
> +    if ( is_pv_32bit_domain(d) )
>          xlat_start_info(si, XLAT_start_info_console_dom0);
>  
>      /* Return to idle domain's page tables. */
> @@ -1499,10 +1499,10 @@ int __init construct_dom0(
>       */
>      regs = &v->arch.user_regs;
>      regs->ds = regs->es = regs->fs = regs->gs =
> -        !is_pv_32on64_domain(d) ? FLAT_KERNEL_DS : FLAT_COMPAT_KERNEL_DS;
> -    regs->ss = (!is_pv_32on64_domain(d) ?
> +        !is_pv_32bit_domain(d) ? FLAT_KERNEL_DS : FLAT_COMPAT_KERNEL_DS;
> +    regs->ss = (!is_pv_32bit_domain(d) ?
>                  FLAT_KERNEL_SS : FLAT_COMPAT_KERNEL_SS);
> -    regs->cs = (!is_pv_32on64_domain(d) ?
> +    regs->cs = (!is_pv_32bit_domain(d) ?
>                  FLAT_KERNEL_CS : FLAT_COMPAT_KERNEL_CS);
>      regs->eip = parms.virt_entry;
>      regs->esp = vstack_end;
> --- a/xen/arch/x86/domctl.c
> +++ b/xen/arch/x86/domctl.c
> @@ -349,7 +349,7 @@ long arch_do_domctl(
>  
>      case XEN_DOMCTL_get_address_size:
>          domctl->u.address_size.size =
> -            is_pv_32on64_domain(d) ? 32 : BITS_PER_LONG;
> +            is_pv_32bit_domain(d) ? 32 : BITS_PER_LONG;
>          copyback = 1;
>          break;
>  
> @@ -1183,7 +1183,7 @@ void arch_get_info_guest(struct vcpu *v,
>  {
>      unsigned int i;
>      const struct domain *d = v->domain;
> -    bool_t compat = is_pv_32on64_domain(d);
> +    bool_t compat = is_pv_32bit_domain(d);
>  #define c(fld) (!compat ? (c.nat->fld) : (c.cmp->fld))
>  
>      if ( !is_pv_domain(d) )
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -163,9 +163,8 @@ static uint32_t base_disallow_mask;
>  #define L1_DISALLOW_MASK ((base_disallow_mask | _PAGE_GNTTAB) & 
> ~_PAGE_GLOBAL)
>  #define L2_DISALLOW_MASK (base_disallow_mask & ~_PAGE_PSE)
>  
> -#define l3_disallow_mask(d) (!is_pv_32on64_domain(d) ?  \
> -                             base_disallow_mask :       \
> -                             0xFFFFF198U)
> +#define l3_disallow_mask(d) (!is_pv_32bit_domain(d) ? \
> +                             base_disallow_mask : 0xFFFFF198U)
>  
>  #define L4_DISALLOW_MASK (base_disallow_mask)
>  
> @@ -985,7 +984,7 @@ get_page_from_l4e(
>  #define adjust_guest_l1e(pl1e, d)                                            
> \
>      do {                                                                     
> \
>          if ( likely(l1e_get_flags((pl1e)) & _PAGE_PRESENT) &&                
> \
> -             likely(!is_pv_32on64_domain(d)) )                               
> \
> +             likely(!is_pv_32bit_domain(d)) )                                
> \
>          {                                                                    
> \
>              /* _PAGE_GUEST_KERNEL page cannot have the Global bit set. */    
> \
>              if ( (l1e_get_flags((pl1e)) & (_PAGE_GUEST_KERNEL|_PAGE_GLOBAL)) 
> \
> @@ -1002,14 +1001,14 @@ get_page_from_l4e(
>  #define adjust_guest_l2e(pl2e, d)                               \
>      do {                                                        \
>          if ( likely(l2e_get_flags((pl2e)) & _PAGE_PRESENT) &&   \
> -             likely(!is_pv_32on64_domain(d)) )                  \
> +             likely(!is_pv_32bit_domain(d)) )                   \
>              l2e_add_flags((pl2e), _PAGE_USER);                  \
>      } while ( 0 )
>  
>  #define adjust_guest_l3e(pl3e, d)                                   \
>      do {                                                            \
>          if ( likely(l3e_get_flags((pl3e)) & _PAGE_PRESENT) )        \
> -            l3e_add_flags((pl3e), likely(!is_pv_32on64_domain(d)) ? \
> +            l3e_add_flags((pl3e), likely(!is_pv_32bit_domain(d)) ?  \
>                                           _PAGE_USER :               \
>                                           _PAGE_USER|_PAGE_RW);      \
>      } while ( 0 )
> @@ -1017,13 +1016,13 @@ get_page_from_l4e(
>  #define adjust_guest_l4e(pl4e, d)                               \
>      do {                                                        \
>          if ( likely(l4e_get_flags((pl4e)) & _PAGE_PRESENT) &&   \
> -             likely(!is_pv_32on64_domain(d)) )                  \
> +             likely(!is_pv_32bit_domain(d)) )                   \
>              l4e_add_flags((pl4e), _PAGE_USER);                  \
>      } while ( 0 )
>  
>  #define unadjust_guest_l3e(pl3e, d)                                         \
>      do {                                                                    \
> -        if ( unlikely(is_pv_32on64_domain(d)) &&                            \
> +        if ( unlikely(is_pv_32bit_domain(d)) &&                             \
>               likely(l3e_get_flags((pl3e)) & _PAGE_PRESENT) )                \
>              l3e_remove_flags((pl3e), _PAGE_USER|_PAGE_RW|_PAGE_ACCESSED);   \
>      } while ( 0 )
> @@ -1314,7 +1313,7 @@ static int alloc_l3_table(struct page_in
>       * 512 entries must be valid/verified, which is most easily achieved
>       * by clearing them out.
>       */
> -    if ( is_pv_32on64_domain(d) )
> +    if ( is_pv_32bit_domain(d) )
>          memset(pl3e + 4, 0, (L3_PAGETABLE_ENTRIES - 4) * sizeof(*pl3e));
>  
>      for ( i = page->nr_validated_ptes; i < L3_PAGETABLE_ENTRIES;
> @@ -1391,7 +1390,7 @@ void init_guest_l4_table(l4_pgentry_t l4
>          l4e_from_pfn(domain_page_map_to_mfn(l4tab), __PAGE_HYPERVISOR);
>      l4tab[l4_table_offset(PERDOMAIN_VIRT_START)] =
>          l4e_from_page(d->arch.perdomain_l3_pg, __PAGE_HYPERVISOR);
> -    if ( zap_ro_mpt || is_pv_32on64_domain(d) || paging_mode_refcounts(d) )
> +    if ( zap_ro_mpt || is_pv_32bit_domain(d) || paging_mode_refcounts(d) )
>          l4tab[l4_table_offset(RO_MPT_VIRT_START)] = l4e_empty();
>  }
>  
> @@ -2707,7 +2706,7 @@ int new_guest_cr3(unsigned long mfn)
>      int rc;
>      unsigned long old_base_mfn;
>  
> -    if ( is_pv_32on64_domain(d) )
> +    if ( is_pv_32bit_domain(d) )
>      {
>          unsigned long gt_mfn = pagetable_get_pfn(curr->arch.guest_table);
>          l4_pgentry_t *pl4e = map_domain_page(gt_mfn);
> @@ -2856,7 +2855,7 @@ static inline int vcpumask_to_pcpumask(
>      unsigned int vcpu_id, vcpu_bias, offs;
>      unsigned long vmask;
>      struct vcpu *v;
> -    bool_t is_native = !is_pv_32on64_domain(d);
> +    bool_t is_native = !is_pv_32bit_domain(d);
>  
>      cpumask_clear(pmask);
>      for ( vmask = 0, offs = 0; ; ++offs)
> @@ -5165,7 +5164,7 @@ int ptwr_do_page_fault(struct vcpu *v, u
>      ptwr_ctxt.ctxt.regs = regs;
>      ptwr_ctxt.ctxt.force_writeback = 0;
>      ptwr_ctxt.ctxt.addr_size = ptwr_ctxt.ctxt.sp_size =
> -        is_pv_32on64_domain(d) ? 32 : BITS_PER_LONG;
> +        is_pv_32bit_domain(d) ? 32 : BITS_PER_LONG;
>      ptwr_ctxt.ctxt.swint_emulate = x86_swint_emulate_none;
>      ptwr_ctxt.cr2 = addr;
>      ptwr_ctxt.pte = pte;
> @@ -5235,10 +5234,9 @@ static const struct x86_emulate_ops mmio
>  int mmio_ro_do_page_fault(struct vcpu *v, unsigned long addr,
>                            struct cpu_user_regs *regs)
>  {
> -    l1_pgentry_t      pte;
> -    unsigned long     mfn;
> -    unsigned int      addr_size = is_pv_32on64_domain(v->domain) ?
> -                                  32 : BITS_PER_LONG;
> +    l1_pgentry_t pte;
> +    unsigned long mfn;
> +    unsigned int addr_size = is_pv_32bit_vcpu(v) ? 32 : BITS_PER_LONG;
>      struct mmio_ro_emulate_ctxt mmio_ro_ctxt = {
>          .ctxt.regs = regs,
>          .ctxt.addr_size = addr_size,
> --- a/xen/arch/x86/mm/shadow/common.c
> +++ b/xen/arch/x86/mm/shadow/common.c
> @@ -2110,7 +2110,7 @@ void sh_destroy_shadow(struct domain *d,
>             t == SH_type_fl1_pae_shadow ||
>             t == SH_type_fl1_64_shadow  ||
>             t == SH_type_monitor_table  ||
> -           (is_pv_32on64_domain(d) && t == SH_type_l4_64_shadow) ||
> +           (is_pv_32bit_domain(d) && t == SH_type_l4_64_shadow) ||
>             (page_get_owner(mfn_to_page(backpointer(sp))) == d));
>  
>      /* The down-shifts here are so that the switch statement is on nice
> @@ -2139,7 +2139,7 @@ void sh_destroy_shadow(struct domain *d,
>          SHADOW_INTERNAL_NAME(sh_destroy_l1_shadow, 4)(d, smfn);
>          break;
>      case SH_type_l2h_64_shadow:
> -        ASSERT(is_pv_32on64_domain(d));
> +        ASSERT(is_pv_32bit_domain(d));
>          /* Fall through... */
>      case SH_type_l2_64_shadow:
>          SHADOW_INTERNAL_NAME(sh_destroy_l2_shadow, 4)(d, smfn);
> @@ -3472,7 +3472,7 @@ static int sh_enable_log_dirty(struct do
>      /* 32bit PV guests on 64bit xen behave like older 64bit linux: they
>       * change an l4e instead of cr3 to switch tables.  Give them the
>       * same optimization */
> -    if ( is_pv_32on64_domain(d) )
> +    if ( is_pv_32bit_domain(d) )
>          d->arch.paging.shadow.opt_flags = SHOPT_LINUX_L3_TOPLEVEL;
>  #endif
>  
> --- a/xen/arch/x86/mm/shadow/multi.c
> +++ b/xen/arch/x86/mm/shadow/multi.c
> @@ -131,8 +131,8 @@ set_shadow_status(struct domain *d, mfn_
>  
>      ASSERT(mfn_to_page(smfn)->u.sh.head);
>  
> -    /* 32-on-64 PV guests don't own their l4 pages so can't get_page them */
> -    if ( !is_pv_32on64_domain(d) || shadow_type != SH_type_l4_64_shadow )
> +    /* 32-bit PV guests don't own their l4 pages so can't get_page them */
> +    if ( !is_pv_32bit_domain(d) || shadow_type != SH_type_l4_64_shadow )
>      {
>          res = get_page(mfn_to_page(gmfn), d);
>          ASSERT(res == 1);
> @@ -159,8 +159,8 @@ delete_shadow_status(struct domain *d, m
>                    d->domain_id, mfn_x(gmfn), shadow_type, mfn_x(smfn));
>      ASSERT(mfn_to_page(smfn)->u.sh.head);
>      shadow_hash_delete(d, mfn_x(gmfn), shadow_type, smfn);
> -    /* 32-on-64 PV guests don't own their l4 pages; see set_shadow_status */
> -    if ( !is_pv_32on64_domain(d) || shadow_type != SH_type_l4_64_shadow )
> +    /* 32-bit PV guests don't own their l4 pages; see set_shadow_status */
> +    if ( !is_pv_32bit_domain(d) || shadow_type != SH_type_l4_64_shadow )
>          put_page(mfn_to_page(gmfn));
>  }
>  
> @@ -698,7 +698,7 @@ _sh_propagate(struct vcpu *v,
>      // PV guests in 64-bit mode use two different page tables for user vs
>      // supervisor permissions, making the guest's _PAGE_USER bit irrelevant.
>      // It is always shadowed as present...
> -    if ( (GUEST_PAGING_LEVELS == 4) && !is_pv_32on64_domain(d)
> +    if ( (GUEST_PAGING_LEVELS == 4) && !is_pv_32bit_domain(d)
>           && is_pv_domain(d) )
>      {
>          sflags |= _PAGE_USER;
> @@ -1346,8 +1346,8 @@ do {                                    
>      for ( _i = 0; _i < SHADOW_L2_PAGETABLE_ENTRIES; _i++ )                  \
>      {                                                                       \
>          if ( (!(_xen))                                                      \
> -             || !is_pv_32on64_domain(_dom)                                  \
> -             || mfn_to_page(_sl2mfn)->u.sh.type != SH_type_l2h_64_shadow\
> +             || !is_pv_32bit_domain(_dom)                                   \
> +             || mfn_to_page(_sl2mfn)->u.sh.type != SH_type_l2h_64_shadow    \
>               || (_i < COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT(_dom)) )           \
>          {                                                                   \
>              (_sl2e) = _sp + _i;                                             \
> @@ -1435,7 +1435,7 @@ void sh_install_xen_entries_in_l4(struct
>          shadow_l4e_from_mfn(page_to_mfn(d->arch.perdomain_l3_pg),
>                              __PAGE_HYPERVISOR);
>  
> -    if ( !shadow_mode_external(d) && !is_pv_32on64_domain(d) &&
> +    if ( !shadow_mode_external(d) && !is_pv_32bit_domain(d) &&
>           !VM_ASSIST(d, m2p_strict) )
>      {
>          /* open coded zap_ro_mpt(mfn_x(sl4mfn)): */
> @@ -1475,7 +1475,7 @@ static void sh_install_xen_entries_in_l2
>  {
>      shadow_l2e_t *sl2e;
>  
> -    if ( !is_pv_32on64_domain(d) )
> +    if ( !is_pv_32bit_domain(d) )
>          return;
>  
>      sl2e = sh_map_domain_page(sl2hmfn);
> @@ -1620,9 +1620,9 @@ sh_make_monitor_table(struct vcpu *v)
>              l3e[0] = l3e_from_pfn(mfn_x(m2mfn), __PAGE_HYPERVISOR);
>              sh_unmap_domain_page(l3e);
>  
> -            if ( is_pv_32on64_domain(d) )
> +            if ( is_pv_32bit_domain(d) )
>              {
> -                /* For 32-on-64 PV guests, we need to map the 32-bit Xen
> +                /* For 32-bit PV guests, we need to map the 32-bit Xen
>                   * area into its usual VAs in the monitor tables */
>                  m3mfn = shadow_alloc(d, SH_type_monitor_table, 0);
>                  mfn_to_page(m3mfn)->shadow_flags = 3;
> @@ -1740,7 +1740,7 @@ static shadow_l2e_t * shadow_get_and_cre
>          unsigned int t = SH_type_l2_shadow;
>  
>          /* Tag compat L2 containing hypervisor (m2p) mappings */
> -        if ( is_pv_32on64_domain(v->domain) &&
> +        if ( is_pv_32bit_vcpu(v) &&
>               guest_l4_table_offset(gw->va) == 0 &&
>               guest_l3_table_offset(gw->va) == 3 )
>              t = SH_type_l2h_shadow;
> @@ -2043,7 +2043,7 @@ void sh_destroy_monitor_table(struct vcp
>          sh_unmap_domain_page(l3e);
>          shadow_free(d, m3mfn);
>  
> -        if ( is_pv_32on64_domain(d) )
> +        if ( is_pv_32bit_domain(d) )
>          {
>              /* Need to destroy the l3 and l2 monitor pages that map the
>               * Xen VAs at 3GB-4GB */
> @@ -3963,7 +3963,7 @@ sh_update_cr3(struct vcpu *v, int do_loc
>                     (unsigned long)pagetable_get_pfn(v->arch.guest_table));
>  
>  #if GUEST_PAGING_LEVELS == 4
> -    if ( !(v->arch.flags & TF_kernel_mode) && !is_pv_32on64_domain(d) )
> +    if ( !(v->arch.flags & TF_kernel_mode) && !is_pv_32bit_domain(d) )
>          gmfn = pagetable_get_mfn(v->arch.guest_table_user);
>      else
>  #endif
> @@ -4078,7 +4078,7 @@ sh_update_cr3(struct vcpu *v, int do_loc
>      if ( sh_remove_write_access(d, gmfn, 4, 0) != 0 )
>          flush_tlb_mask(d->domain_dirty_cpumask);
>      sh_set_toplevel_shadow(v, 0, gmfn, SH_type_l4_shadow);
> -    if ( !shadow_mode_external(d) && !is_pv_32on64_domain(d) )
> +    if ( !shadow_mode_external(d) && !is_pv_32bit_domain(d) )
>      {
>          mfn_t smfn = pagetable_get_mfn(v->arch.shadow_table[0]);
>  
> @@ -5104,7 +5104,7 @@ int sh_audit_l3_table(struct vcpu *v, mf
>              gmfn = get_shadow_status(d, get_gfn_query_unlocked(
>                                          d, gfn_x(gfn), &p2mt),
>                                       ((GUEST_PAGING_LEVELS == 3 ||
> -                                       is_pv_32on64_domain(d))
> +                                       is_pv_32bit_domain(d))
>                                        && !shadow_mode_external(d)
>                                        && (guest_index(gl3e) % 4) == 3)
>                                       ? SH_type_l2h_shadow
> --- a/xen/arch/x86/traps.c
> +++ b/xen/arch/x86/traps.c
> @@ -951,7 +951,7 @@ void pv_cpuid(struct cpu_user_regs *regs
>              __clear_bit(X86_FEATURE_LM % 32, &d);
>              __clear_bit(X86_FEATURE_LAHF_LM % 32, &c);
>          }
> -        if ( is_pv_32on64_domain(currd) &&
> +        if ( is_pv_32bit_domain(currd) &&
>               boot_cpu_data.x86_vendor != X86_VENDOR_AMD )
>              __clear_bit(X86_FEATURE_SYSCALL % 32, &d);
>          __clear_bit(X86_FEATURE_PAGE1GB % 32, &d);
> @@ -3675,7 +3675,7 @@ long register_guest_nmi_callback(unsigne
>  
>      t->vector  = TRAP_nmi;
>      t->flags   = 0;
> -    t->cs      = (is_pv_32on64_domain(d) ?
> +    t->cs      = (is_pv_32bit_domain(d) ?
>                    FLAT_COMPAT_KERNEL_CS : FLAT_KERNEL_CS);
>      t->address = address;
>      TI_SET_IF(t, 1);
> --- a/xen/arch/x86/x86_64/mm.c
> +++ b/xen/arch/x86/x86_64/mm.c
> @@ -1188,7 +1188,7 @@ int handle_memadd_fault(unsigned long ad
>      unsigned long mfn, idle_index;
>      int ret = 0;
>  
> -    if (!is_pv_32on64_domain(d))
> +    if (!is_pv_32bit_domain(d))
>          return 0;
>  
>      if ( (addr < HYPERVISOR_COMPAT_VIRT_START(d)) ||
> @@ -1247,7 +1247,7 @@ unmap:
>  
>  void domain_set_alloc_bitsize(struct domain *d)
>  {
> -    if ( !is_pv_32on64_domain(d) ||
> +    if ( !is_pv_32bit_domain(d) ||
>           (MACH2PHYS_COMPAT_NR_ENTRIES(d) >= max_page) ||
>           d->arch.physaddr_bitsize > 0 )
>          return;
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -495,7 +495,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe
>              break;
>  
>  #ifdef CONFIG_COMPAT
> -        if ( !is_pv_32on64_domain(d) )
> +        if ( !is_pv_32bit_domain(d) )
>              ret = copy_from_guest(c.nat, op->u.vcpucontext.ctxt, 1);
>          else
>              ret = copy_from_guest(c.cmp,
> @@ -901,7 +901,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xe
>          vcpu_unpause(v);
>  
>  #ifdef CONFIG_COMPAT
> -        if ( !is_pv_32on64_domain(d) )
> +        if ( !is_pv_32bit_domain(d) )
>              ret = copy_to_guest(op->u.vcpucontext.ctxt, c.nat, 1);
>          else
>              ret = copy_to_guest(guest_handle_cast(op->u.vcpucontext.ctxt,
> --- a/xen/common/kexec.c
> +++ b/xen/common/kexec.c
> @@ -872,7 +872,7 @@ static int kexec_load_slot(struct kexec_
>  static uint16_t kexec_load_v1_arch(void)
>  {
>  #ifdef CONFIG_X86
> -    return is_pv_32on64_domain(hardware_domain) ? EM_386 : EM_X86_64;
> +    return is_pv_32bit_domain(hardware_domain) ? EM_386 : EM_X86_64;
>  #else
>      return EM_NONE;
>  #endif
> --- a/xen/common/xenoprof.c
> +++ b/xen/common/xenoprof.c
> @@ -219,7 +219,7 @@ static int alloc_xenoprof_struct(
>      bufsize = sizeof(struct xenoprof_buf);
>      i = sizeof(struct event_log);
>  #ifdef CONFIG_COMPAT
> -    d->xenoprof->is_compat = is_pv_32on64_domain(is_passive ? 
> hardware_domain : d);
> +    d->xenoprof->is_compat = is_pv_32bit_domain(is_passive ? hardware_domain 
> : d);
>      if ( XENOPROF_COMPAT(d->xenoprof) )
>      {
>          bufsize = sizeof(struct compat_oprof_buf);
> --- a/xen/include/asm-x86/desc.h
> +++ b/xen/include/asm-x86/desc.h
> @@ -65,7 +65,7 @@
>   */
>  #define guest_gate_selector_okay(d, sel)                                \
>      ((((sel)>>3) < FIRST_RESERVED_GDT_ENTRY) || /* Guest seg? */        \
> -     ((sel) == (!is_pv_32on64_domain(d) ?                               \
> +     ((sel) == (!is_pv_32bit_domain(d) ?                                \
>                  FLAT_KERNEL_CS :                /* Xen default seg? */  \
>                  FLAT_COMPAT_KERNEL_CS)) ||                              \
>       ((sel) & 4))                               /* LDT seg? */
> --- a/xen/include/asm-x86/domain.h
> +++ b/xen/include/asm-x86/domain.h
> @@ -14,7 +14,6 @@
>  #define has_32bit_shinfo(d)    ((d)->arch.has_32bit_shinfo)
>  #define is_pv_32bit_domain(d)  ((d)->arch.is_32bit_pv)
>  #define is_pv_32bit_vcpu(v)    (is_pv_32bit_domain((v)->domain))
> -#define is_pv_32on64_domain(d) (is_pv_32bit_domain(d))
>  
>  #define is_hvm_pv_evtchn_domain(d) (has_hvm_container_domain(d) && \
>          d->arch.hvm_domain.irq.callback_via_type == HVMIRQ_callback_vector)
> 
> 


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


 


Rackspace

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