[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


  • To: xen-devel@xxxxxxxxxxxxx
  • From: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
  • Date: Thu, 10 Jan 2013 10:33:24 -0500
  • Delivery-date: Thu, 10 Jan 2013 15:34:07 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xen.org>

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.