WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] x86: reduce the uses of CONFIG_COMPAT

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH] x86: reduce the uses of CONFIG_COMPAT
From: "Jan Beulich" <JBeulich@xxxxxxxxxx>
Date: Fri, 09 Oct 2009 13:19:14 +0100
Delivery-date: Fri, 09 Oct 2009 05:19:38 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
... to where it really is needed and meaningful (i.e. in some places
it seems to make more sense to use __x86_64__ instead).

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

--- 2009-09-21.orig/xen/arch/x86/domain.c       2009-09-22 16:47:17.000000000 
+0200
+++ 2009-09-21/xen/arch/x86/domain.c    2009-10-09 13:48:32.000000000 +0200
@@ -217,7 +217,7 @@ void free_vcpu_struct(struct vcpu *v)
     free_xenheap_pages(v, get_order_from_bytes(sizeof(*v)));
 }
 
-#ifdef CONFIG_COMPAT
+#ifdef __x86_64__
 
 static int setup_compat_l4(struct vcpu *v)
 {
@@ -454,12 +454,10 @@ int arch_domain_create(struct domain *d,
         l3e_from_page(virt_to_page(d->arch.mm_perdomain_l2),
                             __PAGE_HYPERVISOR);
 
-#endif /* __x86_64__ */
-
-#ifdef CONFIG_COMPAT
     HYPERVISOR_COMPAT_VIRT_START(d) =
         is_hvm_domain(d) ? ~0u : __HYPERVISOR_COMPAT_VIRT_START;
-#endif
+
+#endif /* __x86_64__ */
 
     if ( (rc = paging_domain_init(d)) != 0 )
         goto fail;
@@ -779,9 +777,7 @@ int arch_set_info_guest(
 
             v->arch.guest_table_user = pagetable_from_pfn(cr3_pfn);
         }
-#endif
     }
-#ifdef CONFIG_COMPAT
     else
     {
         l4_pgentry_t *l4tab;
@@ -801,8 +797,8 @@ int arch_set_info_guest(
         l4tab = __va(pagetable_get_paddr(v->arch.guest_table));
         *l4tab = l4e_from_pfn(
             cr3_pfn, _PAGE_PRESENT|_PAGE_RW|_PAGE_USER|_PAGE_ACCESSED);
-    }
 #endif
+    }
 
     if ( v->vcpu_id == 0 )
         update_domain_wallclock_time(d);
--- 2009-09-21.orig/xen/arch/x86/mm.c   2009-10-09 11:43:31.000000000 +0200
+++ 2009-09-21/xen/arch/x86/mm.c        2009-10-09 13:45:56.000000000 +0200
@@ -159,7 +159,7 @@ bool_t __read_mostly mpt_valid;
       !has_arch_pdevs(d)) ?                                     \
      L1_DISALLOW_MASK : (L1_DISALLOW_MASK & ~PAGE_CACHE_ATTRS))
 
-#ifdef CONFIG_COMPAT
+#ifdef __x86_64__
 l2_pgentry_t *compat_idle_pg_table_l2 = NULL;
 #define l3_disallow_mask(d) (!is_pv_32on64_domain(d) ?  \
                              L3_DISALLOW_MASK :         \
@@ -1005,7 +1005,7 @@ get_page_from_l4e(
 
 #endif
 
-#ifdef CONFIG_COMPAT
+#ifdef __x86_64__
 #define unadjust_guest_l3e(pl3e, d)                                         \
     do {                                                                    \
         if ( unlikely(is_pv_32on64_domain(d)) &&                            \
@@ -1333,7 +1333,7 @@ static int alloc_l2_table(struct page_in
                                     __PAGE_HYPERVISOR));
         pl2e[l2_table_offset(LINEAR_PT_VIRT_START)] =
             l2e_from_pfn(pfn, __PAGE_HYPERVISOR);
-#elif defined(CONFIG_COMPAT)
+#else
         memcpy(&pl2e[COMPAT_L2_PAGETABLE_FIRST_XEN_SLOT(d)],
                &compat_idle_pg_table_l2[
                    l2_table_offset(HIRO_COMPAT_MPT_VIRT_START)],
@@ -1514,7 +1514,7 @@ static void free_l1_table(struct page_in
 
 static int free_l2_table(struct page_info *page, int preemptible)
 {
-#ifdef CONFIG_COMPAT
+#ifdef __x86_64__
     struct domain *d = page_get_owner(page);
 #endif
     unsigned long pfn = page_to_mfn(page);
@@ -2449,7 +2449,7 @@ int new_guest_cr3(unsigned long mfn)
     int okay;
     unsigned long old_base_mfn;
 
-#ifdef CONFIG_COMPAT
+#ifdef __x86_64__
     if ( is_pv_32on64_domain(d) )
     {
         okay = paging_mode_refcounts(d)
--- 2009-09-21.orig/xen/arch/x86/setup.c        2009-09-22 15:47:03.000000000 
+0200
+++ 2009-09-21/xen/arch/x86/setup.c     2009-10-09 13:51:40.000000000 +0200
@@ -1142,37 +1142,23 @@ void arch_get_xen_caps(xen_capabilities_
 
     (*info)[0] = '\0';
 
-#if defined(CONFIG_X86_32)
-
-    snprintf(s, sizeof(s), "xen-%d.%d-x86_32p ", major, minor);
-    safe_strcat(*info, s);
-    if ( hvm_enabled )
-    {
-        snprintf(s, sizeof(s), "hvm-%d.%d-x86_32 ", major, minor);
-        safe_strcat(*info, s);
-        snprintf(s, sizeof(s), "hvm-%d.%d-x86_32p ", major, minor);
-        safe_strcat(*info, s);
-    }
-
-#elif defined(CONFIG_X86_64)
-
+#ifdef CONFIG_X86_64
     snprintf(s, sizeof(s), "xen-%d.%d-x86_64 ", major, minor);
     safe_strcat(*info, s);
-#ifdef CONFIG_COMPAT
+#endif
     snprintf(s, sizeof(s), "xen-%d.%d-x86_32p ", major, minor);
     safe_strcat(*info, s);
-#endif
     if ( hvm_enabled )
     {
         snprintf(s, sizeof(s), "hvm-%d.%d-x86_32 ", major, minor);
         safe_strcat(*info, s);
         snprintf(s, sizeof(s), "hvm-%d.%d-x86_32p ", major, minor);
         safe_strcat(*info, s);
+#ifdef CONFIG_X86_64
         snprintf(s, sizeof(s), "hvm-%d.%d-x86_64 ", major, minor);
         safe_strcat(*info, s);
-    }
-
 #endif
+    }
 }
 
 int xen_in_range(paddr_t start, paddr_t end)
--- 2009-09-21.orig/xen/arch/x86/smpboot.c      2009-08-19 17:01:49.000000000 
+0200
+++ 2009-09-21/xen/arch/x86/smpboot.c   2009-10-09 13:52:03.000000000 +0200
@@ -856,14 +856,12 @@ static int __devinit do_boot_cpu(int api
        if (gdt == boot_cpu_gdt_table) {
                order = get_order_from_pages(NR_RESERVED_GDT_PAGES);
 #ifdef __x86_64__
-#ifdef CONFIG_COMPAT
                page = alloc_domheap_pages(NULL, order,
                                           MEMF_node(cpu_to_node(cpu)));
                per_cpu(compat_gdt_table, cpu) = gdt = page_to_virt(page);
                memcpy(gdt, boot_cpu_compat_gdt_table,
                       NR_RESERVED_GDT_PAGES * PAGE_SIZE);
                gdt[PER_CPU_GDT_ENTRY - FIRST_RESERVED_GDT_ENTRY].a = cpu;
-#endif
                page = alloc_domheap_pages(NULL, order,
                                           MEMF_node(cpu_to_node(cpu)));
                per_cpu(gdt_table, cpu) = gdt = page_to_virt(page);
--- 2009-09-21.orig/xen/arch/x86/x86_64/Makefile        2009-06-03 
12:22:45.000000000 +0200
+++ 2009-09-21/xen/arch/x86/x86_64/Makefile     2009-10-09 13:34:03.000000000 
+0200
@@ -9,12 +9,12 @@ obj-y += pci.o
 obj-y += acpi_mmcfg.o
 obj-y += mmconfig_64.o
 obj-y += mmconfig-shared.o
+obj-y += compat.o
+obj-y += compat_kexec.o
+obj-y += domain.o
+obj-y += physdev.o
+obj-y += platform_hypercall.o
+obj-y += cpu_idle.o
+obj-y += cpufreq.o
 
 obj-$(crash_debug)   += gdbstub.o
-obj-$(CONFIG_COMPAT) += compat.o
-obj-$(CONFIG_COMPAT) += compat_kexec.o
-obj-$(CONFIG_COMPAT) += domain.o
-obj-$(CONFIG_COMPAT) += physdev.o
-obj-$(CONFIG_COMPAT) += platform_hypercall.o
-obj-$(CONFIG_COMPAT) += cpu_idle.o
-obj-$(CONFIG_COMPAT) += cpufreq.o
--- 2009-09-21.orig/xen/arch/x86/x86_64/asm-offsets.c   2008-12-17 
16:52:27.000000000 +0100
+++ 2009-09-21/xen/arch/x86/x86_64/asm-offsets.c        2009-10-09 
13:34:24.000000000 +0200
@@ -7,9 +7,7 @@
 #include <xen/config.h>
 #include <xen/perfc.h>
 #include <xen/sched.h>
-#ifdef CONFIG_COMPAT
 #include <compat/xen.h>
-#endif
 #include <asm/fixmap.h>
 #include <asm/hardirq.h>
 
@@ -128,11 +126,9 @@ void __dummy__(void)
     OFFSET(VCPUINFO_upcall_mask, struct vcpu_info, evtchn_upcall_mask);
     BLANK();
 
-#ifdef CONFIG_COMPAT
     OFFSET(COMPAT_VCPUINFO_upcall_pending, struct compat_vcpu_info, 
evtchn_upcall_pending);
     OFFSET(COMPAT_VCPUINFO_upcall_mask, struct compat_vcpu_info, 
evtchn_upcall_mask);
     BLANK();
-#endif
 
     OFFSET(CPUINFO_current_vcpu, struct cpu_info, current_vcpu);
     DEFINE(CPUINFO_sizeof, sizeof(struct cpu_info));
--- 2009-09-21.orig/xen/arch/x86/x86_64/compat/mm.c     2009-09-17 
09:08:28.000000000 +0200
+++ 2009-09-21/xen/arch/x86/x86_64/compat/mm.c  2009-10-09 13:34:37.000000000 
+0200
@@ -1,5 +1,3 @@
-#ifdef CONFIG_COMPAT
-
 #include <xen/event.h>
 #include <xen/multicall.h>
 #include <compat/memory.h>
@@ -343,8 +341,6 @@ int compat_mmuext_op(XEN_GUEST_HANDLE(mm
     return rc;
 }
 
-#endif /* CONFIG_COMPAT */
-
 /*
  * Local variables:
  * mode: C
--- 2009-09-21.orig/xen/arch/x86/x86_64/compat/traps.c  2009-06-19 
11:11:23.000000000 +0200
+++ 2009-09-21/xen/arch/x86/x86_64/compat/traps.c       2009-10-09 
13:34:45.000000000 +0200
@@ -1,5 +1,3 @@
-#ifdef CONFIG_COMPAT
-
 #include <xen/event.h>
 #include <asm/regs.h>
 #include <compat/callback.h>
@@ -361,8 +359,6 @@ int compat_set_trap_table(XEN_GUEST_HAND
     return rc;
 }
 
-#endif /* CONFIG_COMPAT */
-
 static void hypercall_page_initialise_ring1_kernel(void *hypercall_page)
 {
     char *p;
--- 2009-09-21.orig/xen/arch/x86/x86_64/mm.c    2009-09-22 16:35:10.000000000 
+0200
+++ 2009-09-21/xen/arch/x86/x86_64/mm.c 2009-10-09 13:32:54.000000000 +0200
@@ -42,9 +42,7 @@ DEFINE_WRITE_ONCE(unsigned long, ma_top_
 unsigned long __read_mostly pfn_hole_mask = 0;
 unsigned int __read_mostly pfn_pdx_hole_shift = 0;
 
-#ifdef CONFIG_COMPAT
 unsigned int m2p_compat_vstart = __HYPERVISOR_COMPAT_VIRT_START;
-#endif
 
 DEFINE_PER_CPU_READ_MOSTLY(void *, compat_arg_xlat);
 
--- 2009-09-21.orig/xen/include/asm-x86/domain.h        2009-09-22 
16:15:41.000000000 +0200
+++ 2009-09-21/xen/include/asm-x86/domain.h     2009-10-09 13:37:28.000000000 
+0200
@@ -234,19 +234,15 @@ struct arch_domain
     struct page_info **mm_perdomain_pt_pages;
     l2_pgentry_t *mm_perdomain_l2;
     l3_pgentry_t *mm_perdomain_l3;
+
+    unsigned int hv_compat_vstart;
 #else
     l1_pgentry_t *mm_perdomain_pt;
-#endif
 
-#ifdef CONFIG_X86_32
     /* map_domain_page() mapping cache. */
     struct mapcache_domain mapcache;
 #endif
 
-#ifdef CONFIG_COMPAT
-    unsigned int hv_compat_vstart;
-#endif
-
     bool_t s3_integrity;
 
     /* I/O-port admin-specified access capabilities. */
--- 2009-09-21.orig/xen/include/asm-x86/hypercall.h     2008-01-21 
11:03:09.000000000 +0100
+++ 2009-09-21/xen/include/asm-x86/hypercall.h  2009-10-09 13:40:38.000000000 
+0200
@@ -121,19 +121,6 @@ do_set_segment_base(
     unsigned int which,
     unsigned long base);
 
-#else
-
-extern long
-do_set_callbacks(
-    unsigned long event_selector,
-    unsigned long event_address,
-    unsigned long failsafe_selector,
-    unsigned long failsafe_address);
-
-#endif
-
-#ifdef CONFIG_COMPAT
-
 extern int
 compat_physdev_op(
     int cmd,
@@ -143,6 +130,15 @@ extern int
 arch_compat_vcpu_op(
     int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg);
 
+#else
+
+extern long
+do_set_callbacks(
+    unsigned long event_selector,
+    unsigned long event_address,
+    unsigned long failsafe_selector,
+    unsigned long failsafe_address);
+
 #endif
 
 #endif /* __ASM_X86_HYPERCALL_H__ */
--- 2009-09-21.orig/xen/include/asm-x86/mm.h    2009-09-21 11:47:56.000000000 
+0200
+++ 2009-09-21/xen/include/asm-x86/mm.h 2009-10-09 13:36:30.000000000 +0200
@@ -457,10 +457,8 @@ extern bool_t mpt_valid;
 
 #define INVALID_MFN             (~0UL)
 
-#ifdef CONFIG_COMPAT
 #define compat_pfn_to_cr3(pfn) (((unsigned)(pfn) << 12) | ((unsigned)(pfn) >> 
20))
 #define compat_cr3_to_pfn(cr3) (((unsigned)(cr3) >> 12) | ((unsigned)(cr3) << 
20))
-#endif
 
 #ifdef MEMORY_GUARD
 void memguard_init(void);
@@ -508,10 +506,8 @@ int __sync_lazy_execstate(void);
 /* Arch-specific portion of memory_op hypercall. */
 long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg);
 long subarch_memory_op(int op, XEN_GUEST_HANDLE(void) arg);
-#ifdef CONFIG_COMPAT
 int compat_arch_memory_op(int op, XEN_GUEST_HANDLE(void));
 int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE(void));
-#endif
 
 int steal_page(
     struct domain *d, struct page_info *page, unsigned int memflags);



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH] x86: reduce the uses of CONFIG_COMPAT, Jan Beulich <=