diff options
author | Tim Deegan <Tim.Deegan@citrix.com> | 2011-06-02 13:16:52 +0100 |
---|---|---|
committer | Tim Deegan <Tim.Deegan@citrix.com> | 2011-06-02 13:16:52 +0100 |
commit | 301493fb027648db6808b66d1ccf849f524b8422 (patch) | |
tree | 39e01927adf67c86b6ae5109f77582ab30ff5781 /xen/include/asm-x86/hap.h | |
parent | eed8876543b558c781de64973778170a003508e8 (diff) | |
download | xen-301493fb027648db6808b66d1ccf849f524b8422.tar.gz xen-301493fb027648db6808b66d1ccf849f524b8422.tar.bz2 xen-301493fb027648db6808b66d1ccf849f524b8422.zip |
x86/mm: dedup the various copies of the shadow lock functions
Define the lock and unlock functions once, and list all the locks in one
place so (a) it's obvious what the locking discipline is and (b) none of
the locks are visible to non-mm code. Automatically enforce that these
locks never get taken in the wrong order.
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
Diffstat (limited to 'xen/include/asm-x86/hap.h')
-rw-r--r-- | xen/include/asm-x86/hap.h | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/xen/include/asm-x86/hap.h b/xen/include/asm-x86/hap.h index 4d01f1b5d9..a2532a4271 100644 --- a/xen/include/asm-x86/hap.h +++ b/xen/include/asm-x86/hap.h @@ -47,41 +47,6 @@ hap_unmap_domain_page(void *p) } /************************************************/ -/* locking for hap code */ -/************************************************/ -#define hap_lock_init(_d) \ - do { \ - spin_lock_init(&(_d)->arch.paging.hap.lock); \ - (_d)->arch.paging.hap.locker = -1; \ - (_d)->arch.paging.hap.locker_function = "nobody"; \ - } while (0) - -#define hap_locked_by_me(_d) \ - (current->processor == (_d)->arch.paging.hap.locker) - -#define hap_lock(_d) \ - do { \ - if ( unlikely((_d)->arch.paging.hap.locker == current->processor) )\ - { \ - printk("Error: hap lock held by %s\n", \ - (_d)->arch.paging.hap.locker_function); \ - BUG(); \ - } \ - spin_lock(&(_d)->arch.paging.hap.lock); \ - ASSERT((_d)->arch.paging.hap.locker == -1); \ - (_d)->arch.paging.hap.locker = current->processor; \ - (_d)->arch.paging.hap.locker_function = __func__; \ - } while (0) - -#define hap_unlock(_d) \ - do { \ - ASSERT((_d)->arch.paging.hap.locker == current->processor); \ - (_d)->arch.paging.hap.locker = -1; \ - (_d)->arch.paging.hap.locker_function = "nobody"; \ - spin_unlock(&(_d)->arch.paging.hap.lock); \ - } while (0) - -/************************************************/ /* hap domain level functions */ /************************************************/ void hap_domain_init(struct domain *d); |