| 
    
 [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [v7][RFC][PATCH 08/13] xen/x86/p2m: set p2m_access_n for reserved device memory mapping
 On 2014/11/3 19:53, Jan Beulich wrote: On 03.11.14 at 12:48, <tiejun.chen@xxxxxxxxx> wrote:On 2014/11/3 18:03, Jan Beulich wrote:On 03.11.14 at 10:51, <tiejun.chen@xxxxxxxxx> wrote:On 2014/11/3 17:00, Jan Beulich wrote:On 03.11.14 at 07:20, <tiejun.chen@xxxxxxxxx> wrote:#2 the error handling In an error case what should I do? Currently we still create these mapping as normal. This means these mfns will be valid so later we can't set them again then device can't be assigned as passthrough. I think this makes sense. Or we should just stop them from setting 1:1 mapping?You should, with very few exceptions, not ignore errors (which includes "handling" them by just logging a message. Instead, you should propagate the error back up the call chain. I guess you mean we should return out in this error case,@@ -686,8 +686,25 @@ guest_physmap_add_entry(struct domain *d, unsigned long gfn, 
     /* Now, actually do the two-way mapping */
     if ( mfn_valid(_mfn(mfn)) )
     {
-        rc = p2m_set_entry(p2m, gfn, _mfn(mfn), page_order, t,
-                           p2m->default_access);
+        rc = 0;
+        a =  p2m->default_access;
+        if ( !is_hardware_domain(d) )
+        {
+            rc = 
iommu_get_reserved_device_memory(p2m_check_reserved_device_memory,
+                                                  &gfn);
+            /* We always avoid populating reserved device memory. */
+            if ( rc == 1 )
+                goto out;
+            else if ( rc < 0 )
+            {
+                printk(XENLOG_G_WARNING
+                       "Dom%d can't check reserved device memory.\n",
+                       d->domain_id);
+                goto out;
+            }
+        }
+
+        rc = p2m_set_entry(p2m, gfn, _mfn(mfn), page_order, t, a);
         if ( rc )
             goto out; /* Failed to update p2m, bail without updating 
m2p. */
Thanks Tiejun _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel 
 
 
  | 
  
![]()  | 
            
         Lists.xenproject.org is hosted with RackSpace, monitoring our  |