|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v7 00/22] Merge IS_PRIV checks into XSM hooks
Changes from v6:
* Remove patches the have been applied; rebase on xen-unstable
* Reorder patches to fix header autogeneration first
* Add documentation of the current XSM permissions
Changes from v5:
* Add a few comments/docs
* Remove CPP hackery so ctags can find dummy XSM hook implementations
* Clean up XSM hooks that are redundant after the introduction of the
generic domctl, sysctl, and platform_hypercall sub-operation hooks.
* Add a parameter of type enum xsm_default to XSM hook invocations to
document the default action of an XSM hook at the call site.
Changes from v4:
* Removed patches that have been applied
* Rename __do_xsm_op to do_xsm_op
* Rebased on current xen-unstable
* Policy headers moved under hypervisor
Changes from v3:
* Moved x86-specific sysctls inside #ifdef CONFIG_X86
* Removed pt_domain parameter from mmu_update hook when unused
* Renamed xsm___do_xsm_op to xsm_do_xsm_op
* Added struct domain* argument to arch_do_domctl
* Cleaned up mem_event code duplication
Changes from v2:
* Added overall hooks for domctl, sysctl, and platform_hypercall so
that new sub-operations are protected by IS_PRIV checks
* Reorganized the IS_PRIV additions to dummy.h so they are added in the
same patch that removes the IS_PRIV they are replacing
* Reworked hooks in the MM hotpath to increase efficiency
* Dropped some unneeded XSM hook additions due to do_domctl hook
* Dropped the rcu_lock*target_domain_by_id function removal patch
* Restore IS_PRIV check in PHYSDEVOP_alloc_irq_vector
* Use the existing hook function structure for tmem
Patch summary:
Refactor XSM/FLASK compilation:
[PATCH 01/22] xsm: Use the dummy XSM module if XSM is disabled
[PATCH 02/22] flask: move policy headers into hypervisor
Preparatory new XSM hooks:
[PATCH 03/22] arch/x86: add distinct XSM hooks for map/unmap
* the distinction here is required for pushing IS_PRIV into XSM
IS_PRIV removal:
[PATCH 04/22] xen: use XSM instead of IS_PRIV where duplicated
[PATCH 05/22] xen: avoid calling rcu_lock_*target_domain when an XSM
[PATCH 06/22] xen: convert do_domctl to use XSM
[PATCH 07/22] xen: convert do_sysctl to use XSM
[PATCH 08/22] arch/x86: convert platform_hypercall to use XSM
Updates to FLASK allowing full emulation of IS_PRIV:
[PATCH 09/22] xsm/flask: Add checks on the domain performing the
[PATCH 10/22] xsm/flask: add missing hooks
[PATCH 11/22] xsm/flask: add distinct SIDs for self/target access
New or updated XSM hooks:
[PATCH 12/22] arch/x86: Add missing mem_sharing XSM hooks
[PATCH 13/22] arch/x86: use XSM hooks for get_pg_owner access checks
[PATCH 14/22] xen: add XSM hook for XENMEM_exchange
[PATCH 19/22] tmem: add XSM hooks
[PATCH 20/22] xen/xsm: distinguish scheduler get/set operations
Deletion of now-redundant XSM hooks:
[PATCH 15/22] xen: domctl XSM hook removal
[PATCH 16/22] xen: sysctl XSM hook removal
[PATCH 17/22] xen: platform_hypercall XSM hook removal
Documentation/readability improvements:
[PATCH 18/22] xen/xsm: Add xsm_default parameter to XSM hooks
[PATCH 21/22] xsm/flask: document the access vectors
[PATCH 22/22] xsm/flask: remove unused permissions
---
.gitignore | 5 +
.hgignore | 5 +
docs/misc/xsm-flask.txt | 43 +-
tools/flask/policy/Makefile | 2 +-
tools/flask/policy/policy/flask/Makefile | 41 -
tools/flask/policy/policy/flask/access_vectors | 178 ----
tools/flask/policy/policy/modules/xen/xen.if | 72 +-
tools/flask/policy/policy/modules/xen/xen.te | 25 +-
xen/arch/x86/acpi/power.c | 2 +-
xen/arch/x86/cpu/mcheck/mce.c | 5 +-
xen/arch/x86/domctl.c | 94 +-
xen/arch/x86/hvm/hvm.c | 64 +-
xen/arch/x86/irq.c | 5 +-
xen/arch/x86/mm.c | 92 +-
xen/arch/x86/mm/mem_event.c | 41 +-
xen/arch/x86/mm/mem_sharing.c | 25 +-
xen/arch/x86/mm/paging.c | 2 +-
xen/arch/x86/msi.c | 2 +-
xen/arch/x86/physdev.c | 66 +-
xen/arch/x86/platform_hypercall.c | 71 +-
xen/arch/x86/sysctl.c | 17 +-
xen/arch/x86/traps.c | 2 +-
xen/common/domain.c | 17 +-
xen/common/domctl.c | 101 +-
xen/common/event_channel.c | 30 +-
xen/common/grant_table.c | 71 +-
xen/common/kexec.c | 5 +-
xen/common/memory.c | 33 +-
xen/common/schedule.c | 18 +-
xen/common/sysctl.c | 57 +-
xen/common/tmem.c | 3 +
xen/common/xenoprof.c | 2 +-
xen/drivers/char/console.c | 8 +-
xen/drivers/passthrough/iommu.c | 10 +-
xen/drivers/passthrough/pci.c | 4 +-
xen/include/asm-x86/mem_event.h | 1 -
xen/include/xen/sched.h | 6 +
xen/include/xen/tmem_xen.h | 8 +-
xen/include/xsm/dummy.h | 583 +++++++++++
xen/include/xsm/xsm.h | 633 ++++--------
xen/xsm/dummy.c | 673 +-----------
xen/xsm/flask/Makefile | 25 +
xen/xsm/flask/flask_op.c | 9 +
xen/xsm/flask/hooks.c | 1080 +++++++++-----------
xen/xsm/flask/include/av_perm_to_string.h | 135 ---
xen/xsm/flask/include/av_permissions.h | 145 ---
xen/xsm/flask/include/class_to_string.h | 15 -
xen/xsm/flask/include/flask.h | 35 -
xen/xsm/flask/include/initial_sid_to_string.h | 16 -
xen/xsm/flask/include/objsec.h | 2 +
xen/xsm/flask/policy/access_vectors | 436 ++++++++
.../flask => xen/xsm/flask/policy}/initial_sids | 0
.../xsm/flask/policy}/mkaccess_vector.sh | 4 +-
.../flask => xen/xsm/flask/policy}/mkflask.sh | 6 +-
.../xsm/flask/policy}/security_classes | 0
xen/xsm/xsm_core.c | 2 +-
56 files changed, 2212 insertions(+), 2820 deletions(-)
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |