mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
x86: don't include domctl and alike in shim-exclusive builds
There is no need for platform-wide, system-wide, or per-domain control in this case. Hence avoid including this dead code in the build. Signed-off-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
This commit is contained in:
1 parent
a1568878df
commit
8b5b49ceb3
6 files changed
+42
-7
No files matched your search
@@ -23,7 +23,6 @@ obj-$(CONFIG_GDBSX) += debug.o
|
||||
obj-y += delay.o
|
||||
obj-y += desc.o
|
||||
obj-bin-y += dmi_scan.init.o
|
||||
obj-y += domctl.o
|
||||
obj-y += domain.o
|
||||
obj-bin-y += dom0_build.init.o
|
||||
obj-y += domain_page.o
|
||||
@@ -51,7 +50,6 @@ obj-y += numa.o
|
||||
obj-y += pci.o
|
||||
obj-y += percpu.o
|
||||
obj-y += physdev.o x86_64/physdev.o
|
||||
obj-y += platform_hypercall.o x86_64/platform_hypercall.o
|
||||
obj-y += psr.o
|
||||
obj-y += setup.o
|
||||
obj-y += shutdown.o
|
||||
@@ -60,7 +58,6 @@ obj-y += smpboot.o
|
||||
obj-y += spec_ctrl.o
|
||||
obj-y += srat.o
|
||||
obj-y += string.o
|
||||
obj-y += sysctl.o
|
||||
obj-y += time.o
|
||||
obj-y += trace.o
|
||||
obj-y += traps.o
|
||||
@@ -71,6 +68,13 @@ obj-$(CONFIG_TBOOT) += tboot.o
|
||||
obj-y += hpet.o
|
||||
obj-y += vm_event.o
|
||||
obj-y += xstate.o
|
||||
|
||||
ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
|
||||
obj-y += domctl.o
|
||||
obj-y += platform_hypercall.o x86_64/platform_hypercall.o
|
||||
obj-y += sysctl.o
|
||||
endif
|
||||
|
||||
extra-y += asm-macros.i
|
||||
|
||||
ifneq ($(CONFIG_HVM),y)
|
||||
|
||||
@@ -47,6 +47,8 @@
|
||||
/* Per-CPU variable for enforcing the lock ordering */
|
||||
DEFINE_PER_CPU(int, mm_lock_level);
|
||||
|
||||
#ifndef CONFIG_PV_SHIM_EXCLUSIVE
|
||||
|
||||
/************************************************/
|
||||
/* LOG DIRTY SUPPORT */
|
||||
/************************************************/
|
||||
@@ -628,6 +630,8 @@ void paging_log_dirty_init(struct domain *d, const struct log_dirty_ops *ops)
|
||||
d->arch.paging.log_dirty.ops = ops;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_PV_SHIM_EXCLUSIVE */
|
||||
|
||||
/************************************************/
|
||||
/* CODE FOR PAGING SUPPORT */
|
||||
/************************************************/
|
||||
@@ -667,7 +671,7 @@ void paging_vcpu_init(struct vcpu *v)
|
||||
shadow_vcpu_init(v);
|
||||
}
|
||||
|
||||
|
||||
#ifndef CONFIG_PV_SHIM_EXCLUSIVE
|
||||
int paging_domctl(struct domain *d, struct xen_domctl_shadow_op *sc,
|
||||
XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl,
|
||||
bool_t resuming)
|
||||
@@ -788,6 +792,7 @@ long paging_domctl_continuation(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endif /* CONFIG_PV_SHIM_EXCLUSIVE */
|
||||
|
||||
/* Call when destroying a domain */
|
||||
int paging_teardown(struct domain *d)
|
||||
@@ -803,10 +808,12 @@ int paging_teardown(struct domain *d)
|
||||
if ( preempted )
|
||||
return -ERESTART;
|
||||
|
||||
#ifndef CONFIG_PV_SHIM_EXCLUSIVE
|
||||
/* clean up log dirty resources. */
|
||||
rc = paging_free_log_dirty_bitmap(d, 0);
|
||||
if ( rc == -ERESTART )
|
||||
return rc;
|
||||
#endif
|
||||
|
||||
/* Move populate-on-demand cache back to domain_list for destruction */
|
||||
rc = p2m_pod_empty_cache(d);
|
||||
|
||||
@@ -42,7 +42,9 @@ const hypercall_table_t pv_hypercall_table[] = {
|
||||
COMPAT_CALL(set_callbacks),
|
||||
HYPERCALL(fpu_taskswitch),
|
||||
HYPERCALL(sched_op_compat),
|
||||
#ifndef CONFIG_PV_SHIM_EXCLUSIVE
|
||||
COMPAT_CALL(platform_op),
|
||||
#endif
|
||||
HYPERCALL(set_debugreg),
|
||||
HYPERCALL(get_debugreg),
|
||||
COMPAT_CALL(update_descriptor),
|
||||
@@ -72,8 +74,10 @@ const hypercall_table_t pv_hypercall_table[] = {
|
||||
#endif
|
||||
HYPERCALL(event_channel_op),
|
||||
COMPAT_CALL(physdev_op),
|
||||
#ifndef CONFIG_PV_SHIM_EXCLUSIVE
|
||||
HYPERCALL(sysctl),
|
||||
HYPERCALL(domctl),
|
||||
#endif
|
||||
#ifdef CONFIG_KEXEC
|
||||
COMPAT_CALL(kexec_op),
|
||||
#endif
|
||||
@@ -89,7 +93,9 @@ const hypercall_table_t pv_hypercall_table[] = {
|
||||
HYPERCALL(hypfs_op),
|
||||
#endif
|
||||
HYPERCALL(mca),
|
||||
#ifndef CONFIG_PV_SHIM_EXCLUSIVE
|
||||
HYPERCALL(arch_1),
|
||||
#endif
|
||||
};
|
||||
|
||||
#undef do_arch_1
|
||||
|
||||
+6
-3
@@ -6,7 +6,6 @@ obj-$(CONFIG_CORE_PARKING) += core_parking.o
|
||||
obj-y += cpu.o
|
||||
obj-$(CONFIG_DEBUG_TRACE) += debugtrace.o
|
||||
obj-$(CONFIG_HAS_DEVICE_TREE) += device_tree.o
|
||||
obj-y += domctl.o
|
||||
obj-y += domain.o
|
||||
obj-y += event_2l.o
|
||||
obj-y += event_channel.o
|
||||
@@ -26,7 +25,6 @@ obj-$(CONFIG_NEEDS_LIST_SORT) += list_sort.o
|
||||
obj-$(CONFIG_LIVEPATCH) += livepatch.o livepatch_elf.o
|
||||
obj-$(CONFIG_MEM_ACCESS) += mem_access.o
|
||||
obj-y += memory.o
|
||||
obj-y += monitor.o
|
||||
obj-y += multicall.o
|
||||
obj-y += notifier.o
|
||||
obj-y += page_alloc.o
|
||||
@@ -47,7 +45,6 @@ obj-y += spinlock.o
|
||||
obj-y += stop_machine.o
|
||||
obj-y += string.o
|
||||
obj-y += symbols.o
|
||||
obj-y += sysctl.o
|
||||
obj-y += tasklet.o
|
||||
obj-y += time.o
|
||||
obj-y += timer.o
|
||||
@@ -66,6 +63,12 @@ obj-bin-$(CONFIG_X86) += $(foreach n,decompress bunzip2 unxz unlzma lzo unlzo un
|
||||
|
||||
obj-$(CONFIG_COMPAT) += $(addprefix compat/,domain.o kernel.o memory.o multicall.o xlat.o)
|
||||
|
||||
ifneq ($(CONFIG_PV_SHIM_EXCLUSIVE),y)
|
||||
obj-y += domctl.o
|
||||
obj-y += monitor.o
|
||||
obj-y += sysctl.o
|
||||
endif
|
||||
|
||||
extra-y := symbols-dummy.o
|
||||
|
||||
obj-$(CONFIG_COVERAGE) += coverage/
|
||||
|
||||
@@ -154,6 +154,8 @@ struct paging_mode {
|
||||
/*****************************************************************************
|
||||
* Log dirty code */
|
||||
|
||||
#ifndef CONFIG_PV_SHIM_EXCLUSIVE
|
||||
|
||||
/* get the dirty bitmap for a specific range of pfns */
|
||||
void paging_log_dirty_range(struct domain *d,
|
||||
unsigned long begin_pfn,
|
||||
@@ -202,6 +204,15 @@ struct sh_dirty_vram {
|
||||
s_time_t last_dirty;
|
||||
};
|
||||
|
||||
#else /* !CONFIG_PV_SHIM_EXCLUSIVE */
|
||||
|
||||
static inline void paging_log_dirty_init(struct domain *d,
|
||||
const struct log_dirty_ops *ops) {}
|
||||
static inline void paging_mark_dirty(struct domain *d, mfn_t gmfn) {}
|
||||
static inline void paging_mark_pfn_dirty(struct domain *d, pfn_t pfn) {}
|
||||
|
||||
#endif /* CONFIG_PV_SHIM_EXCLUSIVE */
|
||||
|
||||
/*****************************************************************************
|
||||
* Entry points into the paging-assistance code */
|
||||
|
||||
|
||||
@@ -125,6 +125,10 @@ struct vnuma_info {
|
||||
struct xen_vmemrange *vmemrange;
|
||||
};
|
||||
|
||||
#ifndef CONFIG_PV_SHIM_EXCLUSIVE
|
||||
void vnuma_destroy(struct vnuma_info *vnuma);
|
||||
#else
|
||||
static inline void vnuma_destroy(struct vnuma_info *vnuma) { ASSERT(!vnuma); }
|
||||
#endif
|
||||
|
||||
#endif /* __XEN_DOMAIN_H__ */
|
||||