Commit 172b5487 authored by Linus Torvalds's avatar Linus Torvalds Committed by Linus Torvalds

Make drivers/char/mem.c use remap_pfn_range()

Rather than the deprecated remap_page_range() function
that can't handle all of the PFN range anyway.

Also, since that will now mark the vma as being special,
there's no need to do it in mmap_mem() any more.
parent 58c35841
...@@ -192,26 +192,21 @@ static ssize_t write_mem(struct file * file, const char __user * buf, ...@@ -192,26 +192,21 @@ static ssize_t write_mem(struct file * file, const char __user * buf,
static int mmap_mem(struct file * file, struct vm_area_struct * vma) static int mmap_mem(struct file * file, struct vm_area_struct * vma)
{ {
#ifdef pgprot_noncached
unsigned long offset = vma->vm_pgoff << PAGE_SHIFT; unsigned long offset = vma->vm_pgoff << PAGE_SHIFT;
int uncached; int uncached;
uncached = uncached_access(file, offset); uncached = uncached_access(file, offset);
#ifdef pgprot_noncached
if (uncached) if (uncached)
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
#endif #endif
/* Don't try to swap out physical pages.. */ /* Remap-pfn-range will mark the range VM_IO and VM_RESERVED */
vma->vm_flags |= VM_RESERVED; if (remap_pfn_range(vma,
vma->vm_start,
/* vma->vm_pgoff,
* Don't dump addresses that are not real memory to a core file. vma->vm_end-vma->vm_start,
*/ vma->vm_page_prot))
if (uncached)
vma->vm_flags |= VM_IO;
if (remap_page_range(vma, vma->vm_start, offset, vma->vm_end-vma->vm_start,
vma->vm_page_prot))
return -EAGAIN; return -EAGAIN;
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment