From fb6151ed359c11646e35660ed0dfda2292e79b8f Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Sun, 11 Dec 2005 19:57:52 -0800 Subject: [PATCH] --- yaml --- r: 14975 b: refs/heads/master c: 7fc7e2eeecb599ba719c4c4503100fc8cd6a6920 h: refs/heads/master i: 14973: 61708c6152f176b60760d2e46f03eb52c4d7cb66 14971: ed07d6d05a61892e743c52d845e90af313ae5ff1 14967: 95eaaca93d326d7fefa5288502d52f1a77d55889 14959: 012496fee8179c1af3c8e97b1bc995a1feaebefb 14943: 6ea4db8a6f44b8b075eb2c4ed9639e0087c45b5e 14911: 90f1568536d56739204c18aee177886ef6840ea9 14847: 92d0216f28c7d55d581d98ede6b6a795bcfca9a3 v: v3 --- [refs] | 2 +- trunk/include/linux/mm.h | 1 - trunk/mm/memory.c | 46 +--------------------------------------- 3 files changed, 2 insertions(+), 47 deletions(-) diff --git a/[refs] b/[refs] index a6dc61f28a3e..381d446b818b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fb155c1619f056ae9765eed272cd6aba6e1a7399 +refs/heads/master: 7fc7e2eeecb599ba719c4c4503100fc8cd6a6920 diff --git a/trunk/include/linux/mm.h b/trunk/include/linux/mm.h index 29f02d8513f6..e5677f456742 100644 --- a/trunk/include/linux/mm.h +++ b/trunk/include/linux/mm.h @@ -163,7 +163,6 @@ extern unsigned int kobjsize(const void *objp); #define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */ #define VM_NONLINEAR 0x00800000 /* Is non-linear (remap_file_pages) */ #define VM_MAPPED_COPY 0x01000000 /* T if mapped copy of data (nommu mmap) */ -#define VM_INCOMPLETE 0x02000000 /* Strange partial PFN mapping marker */ #ifndef VM_STACK_DEFAULT_FLAGS /* arch can override this */ #define VM_STACK_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS diff --git a/trunk/mm/memory.c b/trunk/mm/memory.c index e65f8fc8ea67..430a72ed08d5 100644 --- a/trunk/mm/memory.c +++ b/trunk/mm/memory.c @@ -1227,50 +1227,6 @@ int vm_insert_page(struct vm_area_struct *vma, unsigned long addr, struct page * } EXPORT_SYMBOL(vm_insert_page); -/* - * Somebody does a pfn remapping that doesn't actually work as a vma. - * - * Do it as individual pages instead, and warn about it. It's bad form, - * and very inefficient. - */ -static int incomplete_pfn_remap(struct vm_area_struct *vma, - unsigned long start, unsigned long end, - unsigned long pfn, pgprot_t prot) -{ - static int warn = 10; - struct page *page; - int retval; - - if (!(vma->vm_flags & VM_INCOMPLETE)) { - if (warn) { - warn--; - printk("%s does an incomplete pfn remapping", current->comm); - dump_stack(); - } - } - vma->vm_flags |= VM_INCOMPLETE | VM_IO | VM_RESERVED; - - if (start < vma->vm_start || end > vma->vm_end) - return -EINVAL; - - if (!pfn_valid(pfn)) - return -EINVAL; - - page = pfn_to_page(pfn); - if (!PageReserved(page)) - return -EINVAL; - - retval = 0; - while (start < end) { - retval = insert_page(vma->vm_mm, start, page, prot); - if (retval < 0) - break; - start += PAGE_SIZE; - page++; - } - return retval; -} - /* * maps a range of physical memory into the requested pages. the old * mappings are removed. any references to nonexistent pages results @@ -1365,7 +1321,7 @@ int remap_pfn_range(struct vm_area_struct *vma, unsigned long addr, */ if (!(vma->vm_flags & VM_SHARED)) { if (addr != vma->vm_start || end != vma->vm_end) - return incomplete_pfn_remap(vma, addr, end, pfn, prot); + return -EINVAL; vma->vm_pgoff = pfn; }