physmem.c (77bf4400319db9d2a8af6b00c2be6faa0f3d07cb) | physmem.c (ba180fd437156f7fd8cfb2fdd021d949eeef08d6) |
---|---|
1/* 2 * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) 3 * Licensed under the GPL 4 */ 5 6#include "linux/bootmem.h" 7#include "linux/mm.h" 8#include "linux/pfn.h" --- 61 unchanged lines hidden (view full) --- 70{ 71 __u64 offset; 72 int fd, err; 73 74 fd = phys_mapping(phys, &offset); 75 err = os_map_memory((void *) virt, fd, offset, len, r, w, x); 76 if (err) { 77 if (err == -ENOMEM) | 1/* 2 * Copyright (C) 2000 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) 3 * Licensed under the GPL 4 */ 5 6#include "linux/bootmem.h" 7#include "linux/mm.h" 8#include "linux/pfn.h" --- 61 unchanged lines hidden (view full) --- 70{ 71 __u64 offset; 72 int fd, err; 73 74 fd = phys_mapping(phys, &offset); 75 err = os_map_memory((void *) virt, fd, offset, len, r, w, x); 76 if (err) { 77 if (err == -ENOMEM) |
78 printk("try increasing the host's " | 78 printk(KERN_ERR "try increasing the host's " |
79 "/proc/sys/vm/max_map_count to <physical " 80 "memory size>/4096\n"); 81 panic("map_memory(0x%lx, %d, 0x%llx, %ld, %d, %d, %d) failed, " 82 "err = %d\n", virt, fd, offset, len, r, w, x, err); 83 } 84} 85 86extern int __syscall_stub_start; --- 11 unchanged lines hidden (view full) --- 98 offset = uml_reserved - uml_physmem; 99 err = os_map_memory((void *) uml_reserved, physmem_fd, offset, 100 len - offset, 1, 1, 1); 101 if (err < 0) { 102 os_print_error(err, "Mapping memory"); 103 exit(1); 104 } 105 | 79 "/proc/sys/vm/max_map_count to <physical " 80 "memory size>/4096\n"); 81 panic("map_memory(0x%lx, %d, 0x%llx, %ld, %d, %d, %d) failed, " 82 "err = %d\n", virt, fd, offset, len, r, w, x, err); 83 } 84} 85 86extern int __syscall_stub_start; --- 11 unchanged lines hidden (view full) --- 98 offset = uml_reserved - uml_physmem; 99 err = os_map_memory((void *) uml_reserved, physmem_fd, offset, 100 len - offset, 1, 1, 1); 101 if (err < 0) { 102 os_print_error(err, "Mapping memory"); 103 exit(1); 104 } 105 |
106 /* Special kludge - This page will be mapped in to userspace processes | 106 /* 107 * Special kludge - This page will be mapped in to userspace processes |
107 * from physmem_fd, so it needs to be written out there. 108 */ 109 os_seek_file(physmem_fd, __pa(&__syscall_stub_start)); 110 os_write_file(physmem_fd, &__syscall_stub_start, PAGE_SIZE); 111 112 bootmap_size = init_bootmem(pfn, pfn + delta); 113 free_bootmem(__pa(reserve_end) + bootmap_size, 114 len - bootmap_size - reserve); --- 82 unchanged lines hidden (view full) --- 197 struct iomem_region *region = iomem_regions; 198 unsigned long iomem_start = high_physmem + PAGE_SIZE; 199 int err; 200 201 while (region != NULL) { 202 err = os_map_memory((void *) iomem_start, region->fd, 0, 203 region->size, 1, 1, 0); 204 if (err) | 108 * from physmem_fd, so it needs to be written out there. 109 */ 110 os_seek_file(physmem_fd, __pa(&__syscall_stub_start)); 111 os_write_file(physmem_fd, &__syscall_stub_start, PAGE_SIZE); 112 113 bootmap_size = init_bootmem(pfn, pfn + delta); 114 free_bootmem(__pa(reserve_end) + bootmap_size, 115 len - bootmap_size - reserve); --- 82 unchanged lines hidden (view full) --- 198 struct iomem_region *region = iomem_regions; 199 unsigned long iomem_start = high_physmem + PAGE_SIZE; 200 int err; 201 202 while (region != NULL) { 203 err = os_map_memory((void *) iomem_start, region->fd, 0, 204 region->size, 1, 1, 0); 205 if (err) |
205 printk("Mapping iomem region for driver '%s' failed, " 206 "errno = %d\n", region->driver, -err); | 206 printk(KERN_ERR "Mapping iomem region for driver '%s' " 207 "failed, errno = %d\n", region->driver, -err); |
207 else { 208 region->virt = iomem_start; 209 region->phys = __pa(region->virt); 210 } 211 212 iomem_start += region->size + PAGE_SIZE; 213 region = region->next; 214 } 215 216 return 0; 217} 218 219__initcall(setup_iomem); | 208 else { 209 region->virt = iomem_start; 210 region->phys = __pa(region->virt); 211 } 212 213 iomem_start += region->size + PAGE_SIZE; 214 region = region->next; 215 } 216 217 return 0; 218} 219 220__initcall(setup_iomem); |