aboutsummaryrefslogtreecommitdiffstats
path: root/xen/xsm
diff options
context:
space:
mode:
authorDaniel De Graaf <dgdegra@tycho.nsa.gov>2013-01-11 10:42:30 +0000
committerDaniel De Graaf <dgdegra@tycho.nsa.gov>2013-01-11 10:42:30 +0000
commit51353955ad6ce6eb180bccab9ea6bf308c293f82 (patch)
tree640a3c9ffd98760f075ee0d543b0d441b4e847f7 /xen/xsm
parent652f94327383c5517b709f0a3e4b970216b3d375 (diff)
downloadxen-51353955ad6ce6eb180bccab9ea6bf308c293f82.tar.gz
xen-51353955ad6ce6eb180bccab9ea6bf308c293f82.tar.bz2
xen-51353955ad6ce6eb180bccab9ea6bf308c293f82.zip
xen: sysctl XSM hook removal
A number of the sysctl XSM hooks have no parameters or only pass the operation ID, making them redundant with the xsm_sysctl hook. Remove these redundant hooks. Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov> Committed-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/xsm')
-rw-r--r--xen/xsm/dummy.c10
-rw-r--r--xen/xsm/flask/hooks.c125
2 files changed, 38 insertions, 97 deletions
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index a14a755db8..131a2306ef 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -35,14 +35,8 @@ void xsm_fixup_ops (struct xsm_operations *ops)
set_to_dummy_if_null(ops, set_target);
set_to_dummy_if_null(ops, domctl);
set_to_dummy_if_null(ops, sysctl);
- set_to_dummy_if_null(ops, tbufcontrol);
set_to_dummy_if_null(ops, readconsole);
- set_to_dummy_if_null(ops, sched_id);
- set_to_dummy_if_null(ops, perfcontrol);
- set_to_dummy_if_null(ops, debug_keys);
set_to_dummy_if_null(ops, getcpuinfo);
- set_to_dummy_if_null(ops, availheap);
- set_to_dummy_if_null(ops, get_pmstat);
set_to_dummy_if_null(ops, setpminfo);
set_to_dummy_if_null(ops, pm_op);
set_to_dummy_if_null(ops, do_mca);
@@ -103,9 +97,6 @@ void xsm_fixup_ops (struct xsm_operations *ops)
set_to_dummy_if_null(ops, resource_setup_misc);
set_to_dummy_if_null(ops, page_offline);
- set_to_dummy_if_null(ops, lockprof);
- set_to_dummy_if_null(ops, cpupool_op);
- set_to_dummy_if_null(ops, sched_op);
set_to_dummy_if_null(ops, do_xsm_op);
@@ -123,7 +114,6 @@ void xsm_fixup_ops (struct xsm_operations *ops)
set_to_dummy_if_null(ops, xen_settime);
set_to_dummy_if_null(ops, memtype);
set_to_dummy_if_null(ops, microcode);
- set_to_dummy_if_null(ops, physinfo);
set_to_dummy_if_null(ops, platform_quirk);
set_to_dummy_if_null(ops, platform_op);
set_to_dummy_if_null(ops, firmware_info);
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index d13714619a..a8bfddd784 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -702,37 +702,57 @@ static int flask_sysctl(int cmd)
{
/* These have individual XSM hooks */
case XEN_SYSCTL_readconsole:
+ case XEN_SYSCTL_getdomaininfolist:
+ case XEN_SYSCTL_page_offline_op:
+#ifdef CONFIG_X86
+ case XEN_SYSCTL_cpu_hotplug:
+#endif
+ return 0;
+
case XEN_SYSCTL_tbuf_op:
+ return domain_has_xen(current->domain, XEN__TBUFCONTROL);
+
case XEN_SYSCTL_sched_id:
+ return domain_has_xen(current->domain, XEN__SCHEDULER);
+
case XEN_SYSCTL_perfc_op:
- case XEN_SYSCTL_getdomaininfolist:
+ return domain_has_xen(current->domain, XEN__PERFCONTROL);
+
case XEN_SYSCTL_debug_keys:
+ return domain_has_xen(current->domain, XEN__DEBUG);
+
case XEN_SYSCTL_getcpuinfo:
+ return domain_has_xen(current->domain, XEN__GETCPUINFO);
+
case XEN_SYSCTL_availheap:
+ return domain_has_xen(current->domain, XEN__HEAP);
+
case XEN_SYSCTL_get_pmstat:
+ return domain_has_xen(current->domain, XEN__PM_OP);
+
case XEN_SYSCTL_pm_op:
- case XEN_SYSCTL_page_offline_op:
+ return domain_has_xen(current->domain, XEN__PM_OP);
+
case XEN_SYSCTL_lockprof_op:
+ return domain_has_xen(current->domain, XEN__LOCKPROF);
+
case XEN_SYSCTL_cpupool_op:
+ return domain_has_xen(current->domain, XEN__CPUPOOL_OP);
+
case XEN_SYSCTL_scheduler_op:
-#ifdef CONFIG_X86
+ return domain_has_xen(current->domain, XEN__SCHED_OP);
+
case XEN_SYSCTL_physinfo:
- case XEN_SYSCTL_cpu_hotplug:
case XEN_SYSCTL_topologyinfo:
case XEN_SYSCTL_numainfo:
-#endif
- return 0;
+ return domain_has_xen(current->domain, XEN__PHYSINFO);
+
default:
printk("flask_sysctl: Unknown op %d\n", cmd);
return -EPERM;
}
}
-static int flask_tbufcontrol(void)
-{
- return domain_has_xen(current->domain, XEN__TBUFCONTROL);
-}
-
static int flask_readconsole(uint32_t clear)
{
u32 perms = XEN__READCONSOLE;
@@ -743,41 +763,6 @@ static int flask_readconsole(uint32_t clear)
return domain_has_xen(current->domain, perms);
}
-static int flask_sched_id(void)
-{
- return domain_has_xen(current->domain, XEN__SCHEDULER);
-}
-
-static int flask_debug_keys(void)
-{
- return domain_has_xen(current->domain, XEN__DEBUG);
-}
-
-static int flask_getcpuinfo(void)
-{
- return domain_has_xen(current->domain, XEN__GETCPUINFO);
-}
-
-static int flask_availheap(void)
-{
- return domain_has_xen(current->domain, XEN__HEAP);
-}
-
-static int flask_get_pmstat(void)
-{
- return domain_has_xen(current->domain, XEN__PM_OP);
-}
-
-static int flask_setpminfo(void)
-{
- return domain_has_xen(current->domain, XEN__PM_OP);
-}
-
-static int flask_pm_op(void)
-{
- return domain_has_xen(current->domain, XEN__PM_OP);
-}
-
static int flask_do_mca(void)
{
return domain_has_xen(current->domain, XEN__MCA_OP);
@@ -1032,26 +1017,6 @@ static inline int flask_page_offline(uint32_t cmd)
}
}
-static inline int flask_lockprof(void)
-{
- return domain_has_xen(current->domain, XEN__LOCKPROF);
-}
-
-static inline int flask_cpupool_op(void)
-{
- return domain_has_xen(current->domain, XEN__CPUPOOL_OP);
-}
-
-static inline int flask_sched_op(void)
-{
- return domain_has_xen(current->domain, XEN__SCHED_OP);
-}
-
-static int flask_perfcontrol(void)
-{
- return domain_has_xen(current->domain, XEN__PERFCONTROL);
-}
-
#ifdef CONFIG_X86
static int flask_shadow_control(struct domain *d, uint32_t op)
{
@@ -1244,11 +1209,6 @@ static int flask_microcode(void)
return domain_has_xen(current->domain, XEN__MICROCODE);
}
-static int flask_physinfo(void)
-{
- return domain_has_xen(current->domain, XEN__PHYSINFO);
-}
-
static int flask_platform_quirk(uint32_t quirk)
{
return avc_current_has_perm(SECINITSID_XEN, SECCLASS_XEN, XEN__QUIRK, NULL);
@@ -1269,17 +1229,21 @@ static int flask_platform_op(uint32_t op)
case XENPF_enter_acpi_sleep:
case XENPF_change_freq:
case XENPF_getidletime:
- case XENPF_set_processor_pminfo:
- case XENPF_get_cpuinfo:
- case XENPF_get_cpu_version:
case XENPF_cpu_online:
case XENPF_cpu_offline:
case XENPF_cpu_hotadd:
case XENPF_mem_hotadd:
/* These operations have their own XSM hooks */
return 0;
+
+ case XENPF_set_processor_pminfo:
case XENPF_core_parking:
return domain_has_xen(current->domain, XEN__PM_OP);
+
+ case XENPF_get_cpu_version:
+ case XENPF_get_cpuinfo:
+ return domain_has_xen(current->domain, XEN__GETCPUINFO);
+
default:
printk("flask_platform_op: Unknown op %d\n", op);
return -EPERM;
@@ -1475,16 +1439,7 @@ static struct xsm_operations flask_ops = {
.set_target = flask_set_target,
.domctl = flask_domctl,
.sysctl = flask_sysctl,
- .tbufcontrol = flask_tbufcontrol,
.readconsole = flask_readconsole,
- .sched_id = flask_sched_id,
- .perfcontrol = flask_perfcontrol,
- .debug_keys = flask_debug_keys,
- .getcpuinfo = flask_getcpuinfo,
- .availheap = flask_availheap,
- .get_pmstat = flask_get_pmstat,
- .setpminfo = flask_setpminfo,
- .pm_op = flask_pm_op,
.do_mca = flask_do_mca,
.evtchn_unbound = flask_evtchn_unbound,
@@ -1539,9 +1494,6 @@ static struct xsm_operations flask_ops = {
.resource_setup_misc = flask_resource_setup_misc,
.page_offline = flask_page_offline,
- .lockprof = flask_lockprof,
- .cpupool_op = flask_cpupool_op,
- .sched_op = flask_sched_op,
.do_xsm_op = do_flask_op,
@@ -1559,7 +1511,6 @@ static struct xsm_operations flask_ops = {
.xen_settime = flask_xen_settime,
.memtype = flask_memtype,
.microcode = flask_microcode,
- .physinfo = flask_physinfo,
.platform_quirk = flask_platform_quirk,
.platform_op = flask_platform_op,
.firmware_info = flask_firmware_info,