# HG changeset patch
# User Steven Smith <steven.smith@xxxxxxxxxxxxx>
# Date 1242731493 -3600
# Node ID 6cba03677059ca31345cb588fb294d915b8639a8
# Parent 5c6214b1f6003bfb0db95ad8f02a1665a98a21ba
Try not to use the active grant table structure when we don't hold the lock.
Signed-off-by: Steven Smith <steven.smith@xxxxxxxxxx>
diff -r 5c6214b1f600 -r 6cba03677059 xen/common/grant_table.c
--- a/xen/common/grant_table.c Tue May 19 12:11:33 2009 +0100
+++ b/xen/common/grant_table.c Tue May 19 12:11:33 2009 +0100
@@ -206,6 +206,7 @@
unsigned long frame = 0, nr_gets = 0;
int rc = GNTST_okay;
u32 old_pin;
+ u32 act_pin;
unsigned int cache_flags;
struct active_grant_entry *act;
struct grant_mapping *mt;
@@ -336,6 +337,7 @@
GNTPIN_hstr_inc : GNTPIN_hstw_inc;
frame = act->frame;
+ act_pin = act->pin;
cache_flags = (sha->flags & (GTF_PAT | GTF_PWT | GTF_PCD) );
@@ -398,7 +400,7 @@
if ( need_iommu(ld) &&
!(old_pin & (GNTPIN_hstw_mask|GNTPIN_devw_mask)) &&
- (act->pin & (GNTPIN_hstw_mask|GNTPIN_devw_mask)) )
+ (act_pin & (GNTPIN_hstw_mask|GNTPIN_devw_mask)) )
{
if ( iommu_map_page(ld, mfn_to_gmfn(ld, frame), frame) )
{
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|