aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/shadow.h
diff options
context:
space:
mode:
authorTim Deegan <Tim.Deegan@xensource.com>2006-12-20 11:53:01 +0000
committerTim Deegan <Tim.Deegan@xensource.com>2006-12-20 11:53:01 +0000
commit2716d15280677f9c507568381a30c1d6f82eae43 (patch)
treea8d4667fe7b7f90a103bb1cbb9e553456340bd0b /xen/include/asm-x86/shadow.h
parent27ea071e57c755308015fe8440f12c731497e23e (diff)
downloadxen-2716d15280677f9c507568381a30c1d6f82eae43.tar.gz
xen-2716d15280677f9c507568381a30c1d6f82eae43.tar.bz2
xen-2716d15280677f9c507568381a30c1d6f82eae43.zip
[XEN] Better diagnostics of recursive shadow faults
Give a trace of the recursive fault instead of BUG()ing in the shadow handler. Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
Diffstat (limited to 'xen/include/asm-x86/shadow.h')
-rw-r--r--xen/include/asm-x86/shadow.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/xen/include/asm-x86/shadow.h b/xen/include/asm-x86/shadow.h
index f923f662de..94591e6dad 100644
--- a/xen/include/asm-x86/shadow.h
+++ b/xen/include/asm-x86/shadow.h
@@ -105,7 +105,7 @@
(_d)->arch.shadow.locker_function = "nobody"; \
} while (0)
-#define shadow_lock_is_acquired(_d) \
+#define shadow_locked_by_me(_d) \
(current->processor == (_d)->arch.shadow.locker)
#define shadow_lock(_d) \
@@ -337,7 +337,7 @@ static inline void mark_dirty(struct domain *d, unsigned long gmfn)
/* Internal version, for when the shadow lock is already held */
static inline void sh_mark_dirty(struct domain *d, mfn_t gmfn)
{
- ASSERT(shadow_lock_is_acquired(d));
+ ASSERT(shadow_locked_by_me(d));
if ( unlikely(shadow_mode_log_dirty(d)) )
sh_do_mark_dirty(d, gmfn);
}
@@ -552,7 +552,7 @@ shadow_remove_all_shadows_and_parents(struct vcpu *v, mfn_t gmfn);
extern void sh_remove_shadows(struct vcpu *v, mfn_t gmfn, int fast, int all);
static inline void shadow_remove_all_shadows(struct vcpu *v, mfn_t gmfn)
{
- int was_locked = shadow_lock_is_acquired(v->domain);
+ int was_locked = shadow_locked_by_me(v->domain);
if ( !was_locked )
shadow_lock(v->domain);
sh_remove_shadows(v, gmfn, 0, 1);