Wrap domctl hypercall def and domctl.o with CONFIG_DOMCTL
We need to make DOMCTL with prompt back, add help info and set default
value as y. We shall at least provide "# CONFIG_DOMCTL is not set" in preset
configs for PV shim on x86.

Signed-off-by: Penny Zheng <penny.zh...@amd.com>
---
 xen/arch/x86/configs/pvshim_defconfig | 1 +
 xen/common/Kconfig                    | 5 ++++-
 xen/common/Makefile                   | 2 +-
 xen/include/hypercall-defs.c          | 4 ++++
 4 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/configs/pvshim_defconfig 
b/xen/arch/x86/configs/pvshim_defconfig
index c58c29adb0..c100b84fa8 100644
--- a/xen/arch/x86/configs/pvshim_defconfig
+++ b/xen/arch/x86/configs/pvshim_defconfig
@@ -25,3 +25,4 @@ CONFIG_EXPERT=y
 # CONFIG_DEBUG is not set
 # CONFIG_GDBSX is not set
 # CONFIG_SYSCTL is not set
+# CONFIG_DOMCTL is not set
diff --git a/xen/common/Kconfig b/xen/common/Kconfig
index 24a7b83af9..31db3d448b 100644
--- a/xen/common/Kconfig
+++ b/xen/common/Kconfig
@@ -629,7 +629,10 @@ config SYSCTL
 
 config DOMCTL
        bool "Enable domctl hypercall"
-       def_bool y
+       default y
+       help
+         This option shall only be disabled on some dom0less systems, or
+         PV shim on x86, to reduce Xen footprint.
 
 endmenu
 
diff --git a/xen/common/Makefile b/xen/common/Makefile
index 756ddf52c3..fc83a45b60 100644
--- a/xen/common/Makefile
+++ b/xen/common/Makefile
@@ -11,7 +11,7 @@ obj-$(filter-out $(CONFIG_X86),$(CONFIG_ACPI)) += device.o
 obj-$(CONFIG_DEVICE_TREE_PARSE) += device-tree/
 obj-$(CONFIG_IOREQ_SERVER) += dm.o
 obj-y += domain.o
-obj-y += domctl.o
+obj-$(CONFIG_DOMCTL) += domctl.o
 obj-y += event_2l.o
 obj-y += event_channel.o
 obj-$(CONFIG_EVTCHN_FIFO) += event_fifo.o
diff --git a/xen/include/hypercall-defs.c b/xen/include/hypercall-defs.c
index c70f745ac2..ccc38e5e22 100644
--- a/xen/include/hypercall-defs.c
+++ b/xen/include/hypercall-defs.c
@@ -197,7 +197,9 @@ dm_op(domid_t domid, unsigned int nr_bufs, xen_dm_op_buf_t 
*bufs)
 #ifdef CONFIG_SYSCTL
 sysctl(xen_sysctl_t *u_sysctl)
 #endif
+#ifdef CONFIG_DOMCTL
 domctl(xen_domctl_t *u_domctl)
+#endif
 #if PG_log_dirty
 paging_domctl_cont(xen_domctl_t *u_domctl)
 #endif
@@ -280,7 +282,9 @@ hvm_op                             do       do       do     
  do       do
 #ifdef CONFIG_SYSCTL
 sysctl                             do       do       do       do       do
 #endif
+#ifdef CONFIG_DOMCTL
 domctl                             do       do       do       do       do
+#endif
 #ifdef CONFIG_KEXEC
 kexec_op                           compat   do       -        -        -
 #endif
-- 
2.34.1


Reply via email to