X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fum%2Fkernel%2Fphysmem.c;h=d0e0f50dce90e6b281cfef2700e25b5eaa342a9b;hb=9c920a8402f2bb9bd931801d429b65f4eb6a262b;hp=258e158a553668faf51db9a3a94f06dd429e1186;hpb=a91482bdcc2e0f6035702e46f1b99043a0893346;p=linux-2.6.git diff --git a/arch/um/kernel/physmem.c b/arch/um/kernel/physmem.c index 258e158a5..d0e0f50dc 100644 --- a/arch/um/kernel/physmem.c +++ b/arch/um/kernel/physmem.c @@ -122,19 +122,14 @@ int physmem_subst_mapping(void *virt, int fd, __u64 offset, int w) unsigned long phys; int err; - phys = __pa(virt); - desc = find_virtmem_hash(&virtmem_hash, (void *) virt); - if(desc != NULL){ - if((virt != desc->virt) || (fd != desc->fd) || - (offset != desc->offset)) - panic("Address 0x%p is already substituted\n", virt); - return(0); - } - fd_maps = descriptor_mapping(fd); if(fd_maps == NULL) return(-ENOMEM); + phys = __pa(virt); + if(find_virtmem_hash(&virtmem_hash, virt) != NULL) + panic("Address 0x%p is already substituted\n", virt); + err = -ENOMEM; desc = kmalloc(sizeof(*desc), GFP_ATOMIC); if(desc == NULL) @@ -205,9 +200,6 @@ void physmem_forget_descriptor(int fd) if(desc == NULL) return; - if(!list_empty(&desc->pages)) - printk("Still have mapped pages on fd %d\n", fd); - list_for_each_safe(ele, next, &desc->pages){ page = list_entry(ele, struct phys_desc, list); offset = page->offset; @@ -240,16 +232,9 @@ void arch_free_page(struct page *page, int order) } } -int is_remapped(const void *virt, int fd, __u64 offset) +int is_remapped(void *virt) { - struct phys_desc *desc; - - desc = find_virtmem_hash(&virtmem_hash, (void *) virt); - if(desc == NULL) - return(0); - if(offset != desc->offset) - printk("offset mismatch\n"); - return(find_virtmem_hash(&virtmem_hash, (void *) virt) != NULL); + return(find_virtmem_hash(&virtmem_hash, virt) != NULL); } /* Changed during early boot */