[PATCH] unpaged: private write VM_RESERVED
The PageReserved removal in 2.6.15-rc1 issued a "deprecated" message when you tried to mmap or mprotect MAP_PRIVATE PROT_WRITE a VM_RESERVED, and failed with -EACCES: because do_wp_page lacks the refinement to COW pages in those areas, nor do we expect to find anonymous pages in them; and it seemed just bloat to add code for handling such a peculiar case. But immediately it caused vbetool and ddcprobe (using lrmi) to fail. So revert the "deprecated" messages, letting mmap and mprotect succeed. But leave do_wp_page's BUG_ON(vma->vm_flags & VM_RESERVED) in place until we've added the code to do it right: so this particular patch is only good if the app doesn't really need to write to that private area. Signed-off-by: Hugh Dickins <hugh@veritas.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
ed5297a940
commit
83e9b7e929
11
mm/mmap.c
11
mm/mmap.c
@@ -1076,17 +1076,6 @@ munmap_back:
|
||||
error = file->f_op->mmap(file, vma);
|
||||
if (error)
|
||||
goto unmap_and_free_vma;
|
||||
if ((vma->vm_flags & (VM_SHARED | VM_WRITE | VM_RESERVED))
|
||||
== (VM_WRITE | VM_RESERVED)) {
|
||||
printk(KERN_WARNING "program %s is using MAP_PRIVATE, "
|
||||
"PROT_WRITE mmap of VM_RESERVED memory, which "
|
||||
"is deprecated. Please report this to "
|
||||
"linux-kernel@vger.kernel.org\n",current->comm);
|
||||
if (vma->vm_ops && vma->vm_ops->close)
|
||||
vma->vm_ops->close(vma);
|
||||
error = -EACCES;
|
||||
goto unmap_and_free_vma;
|
||||
}
|
||||
} else if (vm_flags & VM_SHARED) {
|
||||
error = shmem_zero_setup(vma);
|
||||
if (error)
|
||||
|
Reference in New Issue
Block a user