[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Separate the validity checking of the page frame in 2 chunks.



# HG changeset patch
# User vhanquez@xxxxxxxxxxxxxxxxxxxxxxx
# Node ID aad2b2da3c8beda24bc62ca6e92b28c28def0849
# Parent  159ef7d83f1c9860cbc5d6adcf10d3752eafffbb
Separate the validity checking of the page frame in 2 chunks.
give a more accurate error message, and don't call pfn_to_page before
validating the pfn.

Signed-off-by: Vincent Hanquez <vincent@xxxxxxxxxxxxx>

diff -r 159ef7d83f1c -r aad2b2da3c8b xen/common/grant_table.c
--- a/xen/common/grant_table.c  Wed Jan 25 11:34:02 2006
+++ b/xen/common/grant_table.c  Wed Jan 25 11:51:21 2006
@@ -719,10 +719,18 @@
         }
 
         /* Check the passed page frame for basic validity. */
+        if ( unlikely(!pfn_valid(gop.mfn)) )
+        { 
+            DPRINTK("gnttab_transfer: out-of-range %lx\n",
+                    (unsigned long)gop.mfn);
+            (void)__put_user(GNTST_bad_page, &uop[i].status);
+            continue;
+        }
+
         page = pfn_to_page(gop.mfn);
-        if ( unlikely(!pfn_valid(gop.mfn) || IS_XEN_HEAP_FRAME(page)) )
+        if ( unlikely(IS_XEN_HEAP_FRAME(page)) )
         { 
-            DPRINTK("gnttab_transfer: out-of-range or xen frame %lx\n",
+            DPRINTK("gnttab_transfer: xen frame %lx\n",
                     (unsigned long)gop.mfn);
             (void)__put_user(GNTST_bad_page, &uop[i].status);
             continue;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.