diff options
Diffstat (limited to 'drivers/xen/xencomm.c')
| -rw-r--r-- | drivers/xen/xencomm.c | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/drivers/xen/xencomm.c b/drivers/xen/xencomm.c index 797cb4e31f07..a240b2c20b99 100644 --- a/drivers/xen/xencomm.c +++ b/drivers/xen/xencomm.c | |||
| @@ -23,13 +23,7 @@ | |||
| 23 | #include <asm/page.h> | 23 | #include <asm/page.h> |
| 24 | #include <xen/xencomm.h> | 24 | #include <xen/xencomm.h> |
| 25 | #include <xen/interface/xen.h> | 25 | #include <xen/interface/xen.h> |
| 26 | #ifdef __ia64__ | 26 | #include <asm/xen/xencomm.h> /* for xencomm_is_phys_contiguous() */ |
| 27 | #include <asm/xen/xencomm.h> /* for is_kern_addr() */ | ||
| 28 | #endif | ||
| 29 | |||
| 30 | #ifdef HAVE_XEN_PLATFORM_COMPAT_H | ||
| 31 | #include <xen/platform-compat.h> | ||
| 32 | #endif | ||
| 33 | 27 | ||
| 34 | static int xencomm_init(struct xencomm_desc *desc, | 28 | static int xencomm_init(struct xencomm_desc *desc, |
| 35 | void *buffer, unsigned long bytes) | 29 | void *buffer, unsigned long bytes) |
| @@ -157,20 +151,11 @@ static int xencomm_create(void *buffer, unsigned long bytes, | |||
| 157 | return 0; | 151 | return 0; |
| 158 | } | 152 | } |
| 159 | 153 | ||
| 160 | /* check if memory address is within VMALLOC region */ | ||
| 161 | static int is_phys_contiguous(unsigned long addr) | ||
| 162 | { | ||
| 163 | if (!is_kernel_addr(addr)) | ||
| 164 | return 0; | ||
| 165 | |||
| 166 | return (addr < VMALLOC_START) || (addr >= VMALLOC_END); | ||
| 167 | } | ||
| 168 | |||
| 169 | static struct xencomm_handle *xencomm_create_inline(void *ptr) | 154 | static struct xencomm_handle *xencomm_create_inline(void *ptr) |
| 170 | { | 155 | { |
| 171 | unsigned long paddr; | 156 | unsigned long paddr; |
| 172 | 157 | ||
| 173 | BUG_ON(!is_phys_contiguous((unsigned long)ptr)); | 158 | BUG_ON(!xencomm_is_phys_contiguous((unsigned long)ptr)); |
| 174 | 159 | ||
| 175 | paddr = (unsigned long)xencomm_pa(ptr); | 160 | paddr = (unsigned long)xencomm_pa(ptr); |
| 176 | BUG_ON(paddr & XENCOMM_INLINE_FLAG); | 161 | BUG_ON(paddr & XENCOMM_INLINE_FLAG); |
| @@ -202,7 +187,7 @@ struct xencomm_handle *xencomm_map(void *ptr, unsigned long bytes) | |||
| 202 | int rc; | 187 | int rc; |
| 203 | struct xencomm_desc *desc; | 188 | struct xencomm_desc *desc; |
| 204 | 189 | ||
| 205 | if (is_phys_contiguous((unsigned long)ptr)) | 190 | if (xencomm_is_phys_contiguous((unsigned long)ptr)) |
| 206 | return xencomm_create_inline(ptr); | 191 | return xencomm_create_inline(ptr); |
| 207 | 192 | ||
| 208 | rc = xencomm_create(ptr, bytes, &desc, GFP_KERNEL); | 193 | rc = xencomm_create(ptr, bytes, &desc, GFP_KERNEL); |
| @@ -219,7 +204,7 @@ struct xencomm_handle *__xencomm_map_no_alloc(void *ptr, unsigned long bytes, | |||
| 219 | int rc; | 204 | int rc; |
| 220 | struct xencomm_desc *desc = NULL; | 205 | struct xencomm_desc *desc = NULL; |
| 221 | 206 | ||
| 222 | if (is_phys_contiguous((unsigned long)ptr)) | 207 | if (xencomm_is_phys_contiguous((unsigned long)ptr)) |
| 223 | return xencomm_create_inline(ptr); | 208 | return xencomm_create_inline(ptr); |
| 224 | 209 | ||
| 225 | rc = xencomm_create_mini(ptr, bytes, xc_desc, | 210 | rc = xencomm_create_mini(ptr, bytes, xc_desc, |
