[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v4 13/20] 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 --- v3 -> v4: - remove transient "#ifdef CONFIG_SYSCTL" --- xen/common/page_alloc.c | 2 ++ xen/include/xsm/xsm.h | 6 ++++++ xen/xsm/dummy.c | 2 ++ xen/xsm/flask/hooks.c | 6 ++++++ 4 files changed, 16 insertions(+) diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c index b204f22f50..dec4cb2ab1 100644 --- a/xen/common/page_alloc.c +++ b/xen/common/page_alloc.c @@ -1779,6 +1779,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, @@ -1863,6 +1864,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/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..45c12aa662 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 /* CONFIG_SYSCTL */ 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 /* CONFIG_SYSCTL */ 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 |