# HG changeset patch # User Isaku Yamahata # Date 1210148132 -32400 # Node ID 350c8198eab0293f92a197738c23f09d4ed175af # Parent f2457c7aff8d45949bc2c83876a7d26d0588663f [IA64] define VHPT_ENABLED in Rules.mk instead of the header file, vhpt.h. VHPT_ENABLED is defined in vhpt.h, but it is intended for compile time option. Defining in the header file caused that VHPT_ENABLED is undefined in some files resulting in unintentional compilation. Define the macro in Rules.mk resolves it. And minor modifications to remove compilation error/warning. PATCHNAME: ia64_vhpt_enabled Signed-off-by: Isaku Yamahata diff --git a/xen/arch/ia64/Rules.mk b/xen/arch/ia64/Rules.mk --- a/xen/arch/ia64/Rules.mk +++ b/xen/arch/ia64/Rules.mk @@ -8,6 +8,7 @@ no_warns ?= n vti_debug ?= n vmx_panic ?= n +vhpt_disable ?= n xen_ia64_expose_p2m ?= y xen_ia64_pervcpu_vhpt ?= y xen_ia64_tlb_track ?= y @@ -45,6 +46,9 @@ endif ifeq ($(xen_ia64_pervcpu_vhpt),y) CFLAGS += -DCONFIG_XEN_IA64_PERVCPU_VHPT +ifeq ($(vhpt_disable),y) +$(error "both xen_ia64_pervcpu_vhpt=y and vhpt_disable=y are enabled. they can't be enabled simultaneously. disable one of them.") +endif endif ifeq ($(xen_ia64_tlb_track),y) CFLAGS += -DCONFIG_XEN_IA64_TLB_TRACK @@ -57,6 +61,11 @@ endif ifeq ($(no_warns),y) CFLAGS += -Wa,--fatal-warnings -Werror -Wno-uninitialized +endif +ifneq ($(vhpt_disable),y) +CFLAGS += -DVHPT_ENABLED=1 +else +CFLAGS += -DVHPT_ENABLED=0 endif LDFLAGS := -g diff --git a/xen/arch/ia64/asm-offsets.c b/xen/arch/ia64/asm-offsets.c --- a/xen/arch/ia64/asm-offsets.c +++ b/xen/arch/ia64/asm-offsets.c @@ -254,10 +254,12 @@ DEFINE(IA64_MCA_CPU_RBSTORE_OFFSET, offsetof(struct ia64_mca_cpu, rbstore)); +#if VHPT_ENABLED DEFINE(IA64_VCPU_VHPT_PAGE_OFFSET, offsetof(struct vcpu, arch.vhpt_page)); DEFINE(IA64_VCPU_VHPT_MADDR_OFFSET, offsetof(struct vcpu, arch.vhpt_maddr)); +#endif BLANK(); DEFINE(IA64_MCA_TLB_INFO_SIZE, sizeof(struct ia64_mca_tlb_info)); diff --git a/xen/arch/ia64/xen/domain.c b/xen/arch/ia64/xen/domain.c --- a/xen/arch/ia64/xen/domain.c +++ b/xen/arch/ia64/xen/domain.c @@ -499,10 +499,9 @@ int vcpu_late_initialise(struct vcpu *v) { - struct domain *d = v->domain; int rc, order; - if (HAS_PERVCPU_VHPT(d)) { + if (HAS_PERVCPU_VHPT(v->domain)) { rc = pervcpu_vhpt_alloc(v); if (rc != 0) return rc; diff --git a/xen/include/asm-ia64/vhpt.h b/xen/include/asm-ia64/vhpt.h --- a/xen/include/asm-ia64/vhpt.h +++ b/xen/include/asm-ia64/vhpt.h @@ -1,7 +1,5 @@ #ifndef ASM_VHPT_H #define ASM_VHPT_H - -#define VHPT_ENABLED 1 /* Size of the VHPT. */ // XXX work around to avoid trigerring xenLinux software lock up detection.