Merge master.kernel.org:/home/rmk/linux-2.6-arm
[powerpc.git] / drivers / char / mem.c
index 4f1813e..f5c160c 100644 (file)
@@ -293,8 +293,8 @@ static int mmap_kmem(struct file * file, struct vm_area_struct * vma)
 {
        unsigned long pfn;
 
-       /* Turn a pfn offset into an absolute pfn */
-       pfn = PFN_DOWN(virt_to_phys((void *)PAGE_OFFSET)) + vma->vm_pgoff;
+       /* Turn a kernel-virtual address into a physical page frame */
+       pfn = __pa((u64)vma->vm_pgoff << PAGE_SHIFT) >> PAGE_SHIFT;
 
        /*
         * RED-PEN: on some architectures there is more mapped memory