[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v2 11/19] xen/sysctl: wrap around XEN_SYSCTL_page_offline_op
The following functions are only to deal with XEN_SYSCTL_page_offline_op, then shall be wrapped: - xsm_page_offline - online_page - query_page_offline Signed-off-by: Penny Zheng <Penny.Zheng@xxxxxxx> Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> --- v1 -> v2: - add transient #ifdef in sysctl.c for correct compilation - no need to wrap declarations - place the #ifdef inside the function body to have less redundancy --- xen/common/page_alloc.c | 2 ++ xen/common/sysctl.c | 2 ++ xen/include/xsm/xsm.h | 6 ++++++ xen/xsm/dummy.c | 2 ++ xen/xsm/flask/hooks.c | 6 ++++++ 5 files changed, 18 insertions(+) diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c index bd4538c28d..cc2ad4423a 100644 --- a/xen/common/page_alloc.c +++ b/xen/common/page_alloc.c @@ -1758,6 +1758,7 @@ int offline_page(mfn_t mfn, int broken, uint32_t *status) return 0; } +#ifdef CONFIG_SYSCTL /* * Online the memory. * The caller should make sure end_pfn <= max_page, @@ -1842,6 +1843,7 @@ int query_page_offline(mfn_t mfn, uint32_t *status) return 0; } +#endif /* CONFIG_SYSCTL */ /* * This function should only be called with valid pages from the same NUMA diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c index c17f1b3dec..3129fc602d 100644 --- a/xen/common/sysctl.c +++ b/xen/common/sysctl.c @@ -188,6 +188,7 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl) break; #endif /* CONFIG_PM_STATS */ +#ifdef CONFIG_SYSCTL case XEN_SYSCTL_page_offline_op: { uint32_t *status, *ptr; @@ -248,6 +249,7 @@ long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl) copyback = 0; } break; +#endif /* CONFIG_SYSCTL */ case XEN_SYSCTL_cpupool_op: ret = cpupool_do_sysctl(&op->u.cpupool_op); diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h index 042a99449f..5ac99904c4 100644 --- a/xen/include/xsm/xsm.h +++ b/xen/include/xsm/xsm.h @@ -138,7 +138,9 @@ struct xsm_ops { int (*resource_setup_gsi)(int gsi); int (*resource_setup_misc)(void); +#ifdef CONFIG_SYSCTL int (*page_offline)(uint32_t cmd); +#endif int (*hypfs_op)(void); long (*do_xsm_op)(XEN_GUEST_HANDLE_PARAM(void) op); @@ -597,7 +599,11 @@ static inline int xsm_resource_setup_misc(xsm_default_t def) static inline int xsm_page_offline(xsm_default_t def, uint32_t cmd) { +#ifdef CONFIG_SYSCTL return alternative_call(xsm_ops.page_offline, cmd); +#else + return -EOPNOTSUPP; +#endif } static inline int xsm_hypfs_op(xsm_default_t def) diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c index cd0e844fcf..d46413ad8c 100644 --- a/xen/xsm/dummy.c +++ b/xen/xsm/dummy.c @@ -96,7 +96,9 @@ static const struct xsm_ops __initconst_cf_clobber dummy_ops = { .resource_setup_gsi = xsm_resource_setup_gsi, .resource_setup_misc = xsm_resource_setup_misc, +#ifdef CONFIG_SYSCTL .page_offline = xsm_page_offline, +#endif .hypfs_op = xsm_hypfs_op, .hvm_param = xsm_hvm_param, .hvm_param_altp2mhvm = xsm_hvm_param_altp2mhvm, diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c index df7e10775b..39f8331207 100644 --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1206,10 +1206,12 @@ static int cf_check flask_resource_unplug_core(void) return avc_current_has_perm(SECINITSID_DOMXEN, SECCLASS_RESOURCE, RESOURCE__UNPLUG, NULL); } +#ifdef CONFIG_SYSCTL static int flask_resource_use_core(void) { return avc_current_has_perm(SECINITSID_DOMXEN, SECCLASS_RESOURCE, RESOURCE__USE, NULL); } +#endif static int cf_check flask_resource_plug_pci(uint32_t machine_bdf) { @@ -1274,6 +1276,7 @@ static int cf_check flask_resource_setup_misc(void) return avc_current_has_perm(SECINITSID_XEN, SECCLASS_RESOURCE, RESOURCE__SETUP, NULL); } +#ifdef CONFIG_SYSCTL static inline int cf_check flask_page_offline(uint32_t cmd) { switch ( cmd ) @@ -1288,6 +1291,7 @@ static inline int cf_check flask_page_offline(uint32_t cmd) return avc_unknown_permission("page_offline", cmd); } } +#endif static inline int cf_check flask_hypfs_op(void) { @@ -1948,7 +1952,9 @@ static const struct xsm_ops __initconst_cf_clobber flask_ops = { .resource_setup_gsi = flask_resource_setup_gsi, .resource_setup_misc = flask_resource_setup_misc, +#ifdef CONFIG_SYSCTL .page_offline = flask_page_offline, +#endif .hypfs_op = flask_hypfs_op, .hvm_param = flask_hvm_param, .hvm_param_altp2mhvm = flask_hvm_param_altp2mhvm, -- 2.34.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |