Rename memory_is_conventional_ram() to page_is_conventional_ram().
authorKeir Fraser <keir.fraser@citrix.com>
Sun, 25 Jan 2009 10:32:26 +0000 (10:32 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Sun, 25 Jan 2009 10:32:26 +0000 (10:32 +0000)
It now checks that a whole contiguous page is conventional RAM.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
xen/arch/ia64/xen/mm.c
xen/arch/x86/mm.c
xen/drivers/passthrough/vtd/iommu.c
xen/drivers/video/vga.c
xen/include/xen/mm.h

index 3583b3c27b8961563f4ca7c925e4026150a8a517..d4052b3bbb861f3597b5db5e392c6b4580232f45 100644 (file)
@@ -3246,9 +3246,9 @@ int get_page_type(struct page_info *page, u32 type)
     return 1;
 }
 
-int memory_is_conventional_ram(paddr_t p)
+int page_is_conventional_ram(unsigned long mfn)
 {
-    return (efi_mem_type(p) == EFI_CONVENTIONAL_MEMORY);
+    return (efi_mem_type(pfn_to_paddr(mfn)) == EFI_CONVENTIONAL_MEMORY);
 }
 
 
index b4d8a8792a8f5567d3e2f44839d6975431bfbac6..5785a3ecbceb7992381948750a56e42b299b83a2 100644 (file)
@@ -290,15 +290,16 @@ void __init arch_init_memory(void)
     subarch_init_memory();
 }
 
-int memory_is_conventional_ram(paddr_t p)
+int page_is_conventional_ram(unsigned long mfn)
 {
+    uint64_t maddr = pfn_to_paddr(mfn);
     int i;
 
     for ( i = 0; i < e820.nr_map; i++ )
     {
         if ( (e820.map[i].type == E820_RAM) &&
-             (e820.map[i].addr <= p) &&
-             ((e820.map[i].addr + e820.map[i].size) > p) )
+             (e820.map[i].addr <= maddr) &&
+             ((e820.map[i].addr + e820.map[i].size) >= (maddr + PAGE_SIZE)) )
             return 1;
     }
 
index 905ac51b8163880820d2ac8f22ee56738b1252a4..9e76597d86ecd44efeaf4c14c549f35bd1e4088b 100644 (file)
@@ -998,8 +998,8 @@ static int intel_iommu_domain_init(struct domain *d)
         /* Set up 1:1 page table for dom0 for all RAM except Xen bits. */
         for ( i = 0; i < max_page; i++ )
         {
-            if ( xen_in_range(i << PAGE_SHIFT, (i + 1) << PAGE_SHIFT) ||
-                 !memory_is_conventional_ram(i << PAGE_SHIFT) )
+            if ( !page_is_conventional_ram(i) ||
+                 xen_in_range(i << PAGE_SHIFT, (i + 1) << PAGE_SHIFT) )
                 continue;
 
             tmp = 1 << (PAGE_SHIFT - PAGE_SHIFT_4K);
index f64dc06eca619ecefdd91ae5d2fa351f8183c31b..22db37430e4e041ab1509a39d92e68f8b6e1f228 100644 (file)
@@ -79,7 +79,7 @@ void __init vga_init(void)
     switch ( vga_console_info.video_type )
     {
     case XEN_VGATYPE_TEXT_MODE_3:
-        if ( memory_is_conventional_ram(0xB8000) ||
+        if ( page_is_conventional_ram(paddr_to_pfn(0xB8000)) ||
              ((video = ioremap(0xB8000, 0x8000)) == NULL) )
             return;
         outw(0x200a, 0x3d4); /* disable cursor */
index 0b78e8647e090cd932ed24a72624da482f729e57..a982609f55e1f062c2b932e4d8be40c489d91b71 100644 (file)
@@ -103,8 +103,8 @@ unsigned long avail_scrub_pages(void);
 
 int guest_remove_page(struct domain *d, unsigned long gmfn);
 
-/* Returns TRUE if the memory at address @p is ordinary RAM. */
-int memory_is_conventional_ram(paddr_t p);
+/* Returns TRUE if the whole page at @mfn is ordinary RAM. */
+int page_is_conventional_ram(unsigned long mfn);
 
 extern unsigned long *alloc_bitmap;    /* for vmcoreinfo */