diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-10-12 12:56:00 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-10-12 12:56:00 +0100 |
commit | 5a153a9f8ca72b91d05aa123fedfe11a582a56f4 (patch) | |
tree | 49daca531216c90380c1e4aae8d29c276622a1e8 | |
parent | f98ee759c5e0209ae78dbf416df792339ced9e2e (diff) | |
download | xen-5a153a9f8ca72b91d05aa123fedfe11a582a56f4.tar.gz xen-5a153a9f8ca72b91d05aa123fedfe11a582a56f4.tar.bz2 xen-5a153a9f8ca72b91d05aa123fedfe11a582a56f4.zip |
x86: reduce the uses of CONFIG_COMPAT
... 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@novell.com>
-rw-r--r-- | xen/arch/x86/domain.c | 12 | ||||
-rw-r--r-- | xen/arch/x86/mm.c | 10 | ||||
-rw-r--r-- | xen/arch/x86/setup.c | 22 | ||||
-rw-r--r-- | xen/arch/x86/smpboot.c | 2 | ||||
-rw-r--r-- | xen/arch/x86/x86_64/Makefile | 14 | ||||
-rw-r--r-- | xen/arch/x86/x86_64/asm-offsets.c | 4 | ||||
-rw-r--r-- | xen/arch/x86/x86_64/compat/mm.c | 4 | ||||
-rw-r--r-- | xen/arch/x86/x86_64/compat/traps.c | 4 | ||||
-rw-r--r-- | xen/arch/x86/x86_64/mm.c | 2 | ||||
-rw-r--r-- | xen/include/asm-x86/domain.h | 8 | ||||
-rw-r--r-- | xen/include/asm-x86/hypercall.h | 22 | ||||
-rw-r--r-- | xen/include/asm-x86/mm.h | 4 |
12 files changed, 31 insertions, 77 deletions
diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index d9d6fb075e..20d3e3fc80 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -208,7 +208,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) { @@ -445,12 +445,10 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags) 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; @@ -768,9 +766,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; @@ -790,8 +786,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); diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index 96a3db1472..f30d9ca2fd 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -158,7 +158,7 @@ boolean_param("allowhugepage", opt_allow_hugepage); !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 : \ @@ -1002,7 +1002,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)) && \ @@ -1330,7 +1330,7 @@ static int alloc_l2_table(struct page_info *page, unsigned long type, __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)], @@ -1511,7 +1511,7 @@ static void free_l1_table(struct page_info *page) 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); @@ -2446,7 +2446,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) diff --git a/xen/arch/x86/setup.c b/xen/arch/x86/setup.c index 608b67a320..c9727468d2 100644 --- a/xen/arch/x86/setup.c +++ b/xen/arch/x86/setup.c @@ -1154,37 +1154,23 @@ void arch_get_xen_caps(xen_capabilities_info_t *info) (*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) diff --git a/xen/arch/x86/smpboot.c b/xen/arch/x86/smpboot.c index 2a64bd5f27..99836ef65a 100644 --- a/xen/arch/x86/smpboot.c +++ b/xen/arch/x86/smpboot.c @@ -864,14 +864,12 @@ static int __devinit do_boot_cpu(int apicid, int cpu) 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); diff --git a/xen/arch/x86/x86_64/Makefile b/xen/arch/x86/x86_64/Makefile index dd340c48c3..5d1335c460 100644 --- a/xen/arch/x86/x86_64/Makefile +++ b/xen/arch/x86/x86_64/Makefile @@ -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 diff --git a/xen/arch/x86/x86_64/asm-offsets.c b/xen/arch/x86/x86_64/asm-offsets.c index d4c4262f1f..eec4e3c7ed 100644 --- a/xen/arch/x86/x86_64/asm-offsets.c +++ b/xen/arch/x86/x86_64/asm-offsets.c @@ -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)); diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c index e444aa097b..27b6227bfe 100644 --- a/xen/arch/x86/x86_64/compat/mm.c +++ b/xen/arch/x86/x86_64/compat/mm.c @@ -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(mmuext_op_compat_t) cmp_uops, return rc; } -#endif /* CONFIG_COMPAT */ - /* * Local variables: * mode: C diff --git a/xen/arch/x86/x86_64/compat/traps.c b/xen/arch/x86/x86_64/compat/traps.c index 67fd3e0a09..f44aadec29 100644 --- a/xen/arch/x86/x86_64/compat/traps.c +++ b/xen/arch/x86/x86_64/compat/traps.c @@ -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_HANDLE(trap_info_compat_t) traps) return rc; } -#endif /* CONFIG_COMPAT */ - static void hypercall_page_initialise_ring1_kernel(void *hypercall_page) { char *p; diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c index 45831bdd1c..66f00b5a61 100644 --- a/xen/arch/x86/x86_64/mm.c +++ b/xen/arch/x86/x86_64/mm.c @@ -43,9 +43,7 @@ unsigned long __read_mostly ma_top_mask = 0; 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); diff --git a/xen/include/asm-x86/domain.h b/xen/include/asm-x86/domain.h index 2f045d50d4..b5888505eb 100644 --- a/xen/include/asm-x86/domain.h +++ b/xen/include/asm-x86/domain.h @@ -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. */ diff --git a/xen/include/asm-x86/hypercall.h b/xen/include/asm-x86/hypercall.h index fc7ccc0be5..86377862f1 100644 --- a/xen/include/asm-x86/hypercall.h +++ b/xen/include/asm-x86/hypercall.h @@ -127,19 +127,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, @@ -149,6 +136,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__ */ diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h index c569573446..14505a5a36 100644 --- a/xen/include/asm-x86/mm.h +++ b/xen/include/asm-x86/mm.h @@ -455,10 +455,8 @@ TYPE_SAFE(unsigned long,mfn); #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); @@ -506,10 +504,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); |