This commit is contained in:
tdeegan@york.uk.xensource.com committed 2006-08-29 09:42:35 +01:00
commit 7340fac441
3 files changed
+5 -13

No files matched your search

+3 -11
View File
@@ -397,22 +397,14 @@ shadow_validate_guest_pt_write(struct vcpu *v, mfn_t gmfn,
ASSERT(shadow_lock_is_acquired(v->domain));
rc = __shadow_validate_guest_entry(v, gmfn, entry, size);
if ( rc & SHADOW_SET_FLUSH )
{
// Flush everyone except the local processor, which will flush when it
// re-enters the HVM guest.
//
cpumask_t mask = d->domain_dirty_cpumask;
cpu_clear(v->processor, mask);
flush_tlb_mask(mask);
}
/* Need to flush TLBs to pick up shadow PT changes */
flush_tlb_mask(d->domain_dirty_cpumask);
if ( rc & SHADOW_SET_ERROR )
{
/* This page is probably not a pagetable any more: tear it out of the
* shadows, along with any tables that reference it */
shadow_remove_all_shadows_and_parents(v, gmfn);
}
/* We ignore the other bits: since we are about to change CR3 on
* VMENTER we don't need to do any extra TLB flushes. */
}
@@ -1129,7 +1121,7 @@ sh_gfn_to_mfn_foreign(struct domain *d, unsigned long gpfn)
#if CONFIG_PAGING_LEVELS > 2
if ( gpfn > (RO_MPT_VIRT_END - RO_MPT_VIRT_START) / sizeof(l1_pgentry_t) )
if ( gpfn >= (RO_MPT_VIRT_END-RO_MPT_VIRT_START) / sizeof(l1_pgentry_t) )
/* This pfn is higher than the p2m map can hold */
return _mfn(INVALID_MFN);
#endif
+1 -1
View File
@@ -555,7 +555,7 @@ vcpu_gfn_to_mfn_nofault(struct vcpu *v, unsigned long gfn)
return _mfn(gfn);
#if CONFIG_PAGING_LEVELS > 2
if ( gfn > (RO_MPT_VIRT_END - RO_MPT_VIRT_START) / sizeof(l1_pgentry_t) )
if ( gfn >= (RO_MPT_VIRT_END - RO_MPT_VIRT_START) / sizeof(l1_pgentry_t) )
/* This pfn is higher than the p2m map can hold */
return _mfn(INVALID_MFN);
#endif
+1 -1
View File
@@ -368,7 +368,7 @@ static inline unsigned long get_mfn_from_gpfn(unsigned long pfn)
int ret;
#if CONFIG_PAGING_LEVELS > 2
if ( pfn > (RO_MPT_VIRT_END - RO_MPT_VIRT_START) / sizeof (l1_pgentry_t) )
if ( pfn >= (RO_MPT_VIRT_END - RO_MPT_VIRT_START) / sizeof(l1_pgentry_t) )
/* This pfn is higher than the p2m map can hold */
return INVALID_MFN;
#endif
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.