aboutsummaryrefslogtreecommitdiffstats
path: root/xen/xsm
diff options
context:
space:
mode:
authorDaniel De Graaf <dgdegra@tycho.nsa.gov>2013-01-11 10:43:02 +0000
committerDaniel De Graaf <dgdegra@tycho.nsa.gov>2013-01-11 10:43:02 +0000
commitfcb8baddf00e0034ef382eef8f3f11bf1330c14e (patch)
tree718f642768aa43569636a50f08344b68b1ad75c1 /xen/xsm
parent51353955ad6ce6eb180bccab9ea6bf308c293f82 (diff)
downloadxen-fcb8baddf00e0034ef382eef8f3f11bf1330c14e.tar.gz
xen-fcb8baddf00e0034ef382eef8f3f11bf1330c14e.tar.bz2
xen-fcb8baddf00e0034ef382eef8f3f11bf1330c14e.zip
xen: platform_hypercall XSM hook removal
A number of the platform_hypercall XSM hooks have no parameters or only pass the operation ID, making them redundant with the xsm_platform_op 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.c12
-rw-r--r--xen/xsm/flask/hooks.c107
2 files changed, 30 insertions, 89 deletions
diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
index 131a2306ef..e254251d15 100644
--- a/xen/xsm/dummy.c
+++ b/xen/xsm/dummy.c
@@ -36,9 +36,6 @@ void xsm_fixup_ops (struct xsm_operations *ops)
set_to_dummy_if_null(ops, domctl);
set_to_dummy_if_null(ops, sysctl);
set_to_dummy_if_null(ops, readconsole);
- set_to_dummy_if_null(ops, getcpuinfo);
- set_to_dummy_if_null(ops, setpminfo);
- set_to_dummy_if_null(ops, pm_op);
set_to_dummy_if_null(ops, do_mca);
set_to_dummy_if_null(ops, evtchn_unbound);
@@ -111,16 +108,7 @@ void xsm_fixup_ops (struct xsm_operations *ops)
set_to_dummy_if_null(ops, mem_event_op);
set_to_dummy_if_null(ops, mem_sharing_op);
set_to_dummy_if_null(ops, apic);
- 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, platform_quirk);
set_to_dummy_if_null(ops, platform_op);
- set_to_dummy_if_null(ops, firmware_info);
- set_to_dummy_if_null(ops, efi_call);
- set_to_dummy_if_null(ops, acpi_sleep);
- set_to_dummy_if_null(ops, change_freq);
- set_to_dummy_if_null(ops, getidletime);
set_to_dummy_if_null(ops, machine_memory_map);
set_to_dummy_if_null(ops, domain_memory_map);
set_to_dummy_if_null(ops, mmu_update);
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index a8bfddd784..f7309fd760 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -1177,64 +1177,51 @@ static int flask_apic(struct domain *d, int cmd)
return domain_has_xen(d, perm);
}
-static int flask_xen_settime(void)
-{
- return domain_has_xen(current->domain, XEN__SETTIME);
-}
-
-static int flask_memtype(uint32_t access)
-{
- u32 perm;
-
- switch ( access )
- {
- case XENPF_add_memtype:
- perm = XEN__MTRR_ADD;
- break;
- case XENPF_del_memtype:
- perm = XEN__MTRR_DEL;
- break;
- case XENPF_read_memtype:
- perm = XEN__MTRR_READ;
- break;
- default:
- return -EPERM;
- }
-
- return domain_has_xen(current->domain, perm);
-}
-
-static int flask_microcode(void)
-{
- return domain_has_xen(current->domain, XEN__MICROCODE);
-}
-
-static int flask_platform_quirk(uint32_t quirk)
-{
- return avc_current_has_perm(SECINITSID_XEN, SECCLASS_XEN, XEN__QUIRK, NULL);
-}
-
static int flask_platform_op(uint32_t op)
{
switch ( op )
{
+#ifdef CONFIG_X86
+ /* These operations have their own XSM hooks */
+ case XENPF_cpu_online:
+ case XENPF_cpu_offline:
+ case XENPF_cpu_hotadd:
+ case XENPF_mem_hotadd:
+ return 0;
+#endif
+
case XENPF_settime:
+ return domain_has_xen(current->domain, XEN__SETTIME);
+
case XENPF_add_memtype:
+ return domain_has_xen(current->domain, XEN__MTRR_ADD);
+
case XENPF_del_memtype:
+ return domain_has_xen(current->domain, XEN__MTRR_DEL);
+
case XENPF_read_memtype:
+ return domain_has_xen(current->domain, XEN__MTRR_READ);
+
case XENPF_microcode_update:
+ return domain_has_xen(current->domain, XEN__MICROCODE);
+
case XENPF_platform_quirk:
+ return domain_has_xen(current->domain, XEN__QUIRK);
+
case XENPF_firmware_info:
+ return domain_has_xen(current->domain, XEN__FIRMWARE);
+
case XENPF_efi_runtime_call:
+ return domain_has_xen(current->domain, XEN__FIRMWARE);
+
case XENPF_enter_acpi_sleep:
+ return domain_has_xen(current->domain, XEN__SLEEP);
+
case XENPF_change_freq:
+ return domain_has_xen(current->domain, XEN__FREQUENCY);
+
case XENPF_getidletime:
- 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;
+ return domain_has_xen(current->domain, XEN__GETIDLE);
case XENPF_set_processor_pminfo:
case XENPF_core_parking:
@@ -1250,31 +1237,6 @@ static int flask_platform_op(uint32_t op)
}
}
-static int flask_firmware_info(void)
-{
- return domain_has_xen(current->domain, XEN__FIRMWARE);
-}
-
-static int flask_efi_call(void)
-{
- return domain_has_xen(current->domain, XEN__FIRMWARE);
-}
-
-static int flask_acpi_sleep(void)
-{
- return domain_has_xen(current->domain, XEN__SLEEP);
-}
-
-static int flask_change_freq(void)
-{
- return domain_has_xen(current->domain, XEN__FREQUENCY);
-}
-
-static int flask_getidletime(void)
-{
- return domain_has_xen(current->domain, XEN__GETIDLE);
-}
-
static int flask_machine_memory_map(void)
{
return avc_current_has_perm(SECINITSID_XEN, SECCLASS_MMU, MMU__MEMORYMAP, NULL);
@@ -1508,16 +1470,7 @@ static struct xsm_operations flask_ops = {
.mem_event_op = flask_mem_event_op,
.mem_sharing_op = flask_mem_sharing_op,
.apic = flask_apic,
- .xen_settime = flask_xen_settime,
- .memtype = flask_memtype,
- .microcode = flask_microcode,
- .platform_quirk = flask_platform_quirk,
.platform_op = flask_platform_op,
- .firmware_info = flask_firmware_info,
- .efi_call = flask_efi_call,
- .acpi_sleep = flask_acpi_sleep,
- .change_freq = flask_change_freq,
- .getidletime = flask_getidletime,
.machine_memory_map = flask_machine_memory_map,
.domain_memory_map = flask_domain_memory_map,
.mmu_update = flask_mmu_update,