From fcb8baddf00e0034ef382eef8f3f11bf1330c14e Mon Sep 17 00:00:00 2001 From: Daniel De Graaf Date: Fri, 11 Jan 2013 10:43:02 +0000 Subject: 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 Committed-by: Keir Fraser --- xen/xsm/dummy.c | 12 ------ xen/xsm/flask/hooks.c | 107 ++++++++++++++------------------------------------ 2 files changed, 30 insertions(+), 89 deletions(-) (limited to 'xen/xsm') 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, -- cgit v1.2.3