xen: portability clean up and some minor clean up for xencomm.c
authorIsaku Yamahata <yamahata@valinux.co.jp>
Wed, 15 Oct 2008 00:50:41 +0000 (17:50 -0700)
committerIngo Molnar <mingo@elte.hu>
Wed, 22 Oct 2008 13:10:49 +0000 (15:10 +0200)
clean up of xencomm.c. is_phys_contiguous() is arch dependent
function that depends on how virtual memory are laid out.
So split out the function into arch specific code.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: "Luck, Tony" <tony.luck@intel.com>
drivers/xen/xencomm.c

index 797cb4e..a240b2c 100644 (file)
 #include <asm/page.h>
 #include <xen/xencomm.h>
 #include <xen/interface/xen.h>
-#ifdef __ia64__
-#include <asm/xen/xencomm.h>   /* for is_kern_addr() */
-#endif
-
-#ifdef HAVE_XEN_PLATFORM_COMPAT_H
-#include <xen/platform-compat.h>
-#endif
+#include <asm/xen/xencomm.h>   /* for xencomm_is_phys_contiguous() */
 
 static int xencomm_init(struct xencomm_desc *desc,
                        void *buffer, unsigned long bytes)
@@ -157,20 +151,11 @@ static int xencomm_create(void *buffer, unsigned long bytes,
        return 0;
 }
 
-/* check if memory address is within VMALLOC region  */
-static int is_phys_contiguous(unsigned long addr)
-{
-       if (!is_kernel_addr(addr))
-               return 0;
-
-       return (addr < VMALLOC_START) || (addr >= VMALLOC_END);
-}
-
 static struct xencomm_handle *xencomm_create_inline(void *ptr)
 {
        unsigned long paddr;
 
-       BUG_ON(!is_phys_contiguous((unsigned long)ptr));
+       BUG_ON(!xencomm_is_phys_contiguous((unsigned long)ptr));
 
        paddr = (unsigned long)xencomm_pa(ptr);
        BUG_ON(paddr & XENCOMM_INLINE_FLAG);
@@ -202,7 +187,7 @@ struct xencomm_handle *xencomm_map(void *ptr, unsigned long bytes)
        int rc;
        struct xencomm_desc *desc;
 
-       if (is_phys_contiguous((unsigned long)ptr))
+       if (xencomm_is_phys_contiguous((unsigned long)ptr))
                return xencomm_create_inline(ptr);
 
        rc = xencomm_create(ptr, bytes, &desc, GFP_KERNEL);
@@ -219,7 +204,7 @@ struct xencomm_handle *__xencomm_map_no_alloc(void *ptr, unsigned long bytes,
        int rc;
        struct xencomm_desc *desc = NULL;
 
-       if (is_phys_contiguous((unsigned long)ptr))
+       if (xencomm_is_phys_contiguous((unsigned long)ptr))
                return xencomm_create_inline(ptr);
 
        rc = xencomm_create_mini(ptr, bytes, xc_desc,