summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Lee Irwin III <wli@holomorphy.com>2004-10-19 18:28:33 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-10-19 18:28:33 -0700
commitcddb7e266c54820d02f31262a28254bec72654e2 (patch)
treedeedfb57d5dea503b72a8f356dbd9308b4e7c3bf
parent9455b56ea676720d1c1595a98ce71583c9ed193e (diff)
[PATCH] vm: convert users of remap_page_range() under drivers/ and net/ to use remap_pfn_range()
This patch converts all callers of remap_page_range() under arch/ and net/ to use remap_pfn_range() instead. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--drivers/char/agp/frontend.c8
-rw-r--r--drivers/char/drm/drm_vm.h4
-rw-r--r--drivers/char/drm/i810_dma.c4
-rw-r--r--drivers/char/drm/i830_dma.c4
-rw-r--r--drivers/char/ftape/lowlevel/ftape-ctl.c7
-rw-r--r--drivers/char/hpet.c6
-rw-r--r--drivers/char/mmtimer.c8
-rw-r--r--drivers/ieee1394/video1394.c2
-rw-r--r--drivers/media/video/cpia.c18
-rw-r--r--drivers/media/video/meye.c17
-rw-r--r--drivers/media/video/planb.c6
-rw-r--r--drivers/media/video/zoran_driver.c22
-rw-r--r--drivers/media/video/zr36120.c4
-rw-r--r--drivers/sbus/char/flash.c4
-rw-r--r--drivers/sbus/char/jsflash.c2
-rw-r--r--drivers/usb/class/audio.c5
-rw-r--r--drivers/usb/media/ov511.c20
-rw-r--r--drivers/usb/media/se401.c18
-rw-r--r--drivers/usb/media/sn9c102_core.c16
-rw-r--r--drivers/usb/media/stv680.c18
-rw-r--r--drivers/usb/media/usbvideo.c19
-rw-r--r--drivers/usb/media/vicam.c14
-rw-r--r--drivers/usb/media/w9968cf.c21
-rw-r--r--drivers/video/aty/atyfb_base.c4
-rw-r--r--drivers/video/gbefb.c4
-rw-r--r--drivers/video/igafb.c4
-rw-r--r--drivers/video/sgivwfb.c4
-rw-r--r--net/packet/af_packet.c3
28 files changed, 74 insertions, 192 deletions
diff --git a/drivers/char/agp/frontend.c b/drivers/char/agp/frontend.c
index ef1fa6db9570..471748a71332 100644
--- a/drivers/char/agp/frontend.c
+++ b/drivers/char/agp/frontend.c
@@ -627,8 +627,8 @@ static int agp_mmap(struct file *file, struct vm_area_struct *vma)
DBG("client vm_ops=%p", kerninfo.vm_ops);
if (kerninfo.vm_ops) {
vma->vm_ops = kerninfo.vm_ops;
- } else if (remap_page_range(vma, vma->vm_start,
- (kerninfo.aper_base + offset),
+ } else if (remap_pfn_range(vma, vma->vm_start,
+ (kerninfo.aper_base + offset) >> PAGE_SHIFT,
size, vma->vm_page_prot)) {
goto out_again;
}
@@ -643,8 +643,8 @@ static int agp_mmap(struct file *file, struct vm_area_struct *vma)
DBG("controller vm_ops=%p", kerninfo.vm_ops);
if (kerninfo.vm_ops) {
vma->vm_ops = kerninfo.vm_ops;
- } else if (remap_page_range(vma, vma->vm_start,
- kerninfo.aper_base,
+ } else if (remap_pfn_range(vma, vma->vm_start,
+ kerninfo.aper_base >> PAGE_SHIFT,
size, vma->vm_page_prot)) {
goto out_again;
}
diff --git a/drivers/char/drm/drm_vm.h b/drivers/char/drm/drm_vm.h
index 1601447d8f94..921f3f343bd7 100644
--- a/drivers/char/drm/drm_vm.h
+++ b/drivers/char/drm/drm_vm.h
@@ -620,8 +620,8 @@ int DRM(mmap)(struct file *filp, struct vm_area_struct *vma)
vma->vm_end - vma->vm_start,
vma->vm_page_prot, 0))
#else
- if (remap_page_range(DRM_RPR_ARG(vma) vma->vm_start,
- VM_OFFSET(vma) + offset,
+ if (remap_pfn_range(DRM_RPR_ARG(vma) vma->vm_start,
+ (VM_OFFSET(vma) + offset) >> PAGE_SHIFT,
vma->vm_end - vma->vm_start,
vma->vm_page_prot))
#endif
diff --git a/drivers/char/drm/i810_dma.c b/drivers/char/drm/i810_dma.c
index d9348ac71126..197ef9c0fa60 100644
--- a/drivers/char/drm/i810_dma.c
+++ b/drivers/char/drm/i810_dma.c
@@ -138,8 +138,8 @@ int i810_mmap_buffers(struct file *filp, struct vm_area_struct *vma)
buf_priv->currently_mapped = I810_BUF_MAPPED;
unlock_kernel();
- if (remap_page_range(DRM_RPR_ARG(vma) vma->vm_start,
- VM_OFFSET(vma),
+ if (remap_pfn_range(DRM_RPR_ARG(vma) vma->vm_start,
+ VM_OFFSET(vma) >> PAGE_SHIFT,
vma->vm_end - vma->vm_start,
vma->vm_page_prot)) return -EAGAIN;
return 0;
diff --git a/drivers/char/drm/i830_dma.c b/drivers/char/drm/i830_dma.c
index 084e9da08270..97ee36fbbb1d 100644
--- a/drivers/char/drm/i830_dma.c
+++ b/drivers/char/drm/i830_dma.c
@@ -139,8 +139,8 @@ int i830_mmap_buffers(struct file *filp, struct vm_area_struct *vma)
buf_priv->currently_mapped = I830_BUF_MAPPED;
unlock_kernel();
- if (remap_page_range(DRM_RPR_ARG(vma) vma->vm_start,
- VM_OFFSET(vma),
+ if (remap_pfn_range(DRM_RPR_ARG(vma) vma->vm_start,
+ VM_OFFSET(vma) >> PAGE_SHIFT,
vma->vm_end - vma->vm_start,
vma->vm_page_prot)) return -EAGAIN;
return 0;
diff --git a/drivers/char/ftape/lowlevel/ftape-ctl.c b/drivers/char/ftape/lowlevel/ftape-ctl.c
index 1d4619ab953f..f83b60ccc273 100644
--- a/drivers/char/ftape/lowlevel/ftape-ctl.c
+++ b/drivers/char/ftape/lowlevel/ftape-ctl.c
@@ -726,9 +726,12 @@ int ftape_mmap(struct vm_area_struct *vma)
ftape_reset_buffer();
}
for (i = 0; i < num_buffers; i++) {
- TRACE_CATCH(remap_page_range(vma, vma->vm_start +
+ unsigned long pfn;
+
+ pfn = virt_to_phys(ft_buffer[i]->address) >> PAGE_SHIFT;
+ TRACE_CATCH(remap_pfn_range(vma, vma->vm_start +
i * FT_BUFF_SIZE,
- virt_to_phys(ft_buffer[i]->address),
+ pfn,
FT_BUFF_SIZE,
vma->vm_page_prot),
_res = -EAGAIN);
diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
index 22d46cdac3e2..e8ad7da73f6f 100644
--- a/drivers/char/hpet.c
+++ b/drivers/char/hpet.c
@@ -273,9 +273,9 @@ static int hpet_mmap(struct file *file, struct vm_area_struct *vma)
vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
addr = __pa(addr);
- if (remap_page_range
- (vma, vma->vm_start, addr, PAGE_SIZE, vma->vm_page_prot)) {
- printk(KERN_ERR "remap_page_range failed in hpet.c\n");
+ if (remap_pfn_range(vma, vma->vm_start, addr >> PAGE_SHIFT,
+ PAGE_SIZE, vma->vm_page_prot)) {
+ printk(KERN_ERR "remap_pfn_range failed in hpet.c\n");
return -EAGAIN;
}
diff --git a/drivers/char/mmtimer.c b/drivers/char/mmtimer.c
index 1a01f7a7b5d6..0dd1ba7eec61 100644
--- a/drivers/char/mmtimer.c
+++ b/drivers/char/mmtimer.c
@@ -140,7 +140,7 @@ static int mmtimer_ioctl(struct inode *inode, struct file *file,
* @file: file structure for the device
* @vma: VMA to map the registers into
*
- * Calls remap_page_range() to map the clock's registers into
+ * Calls remap_pfn_range() to map the clock's registers into
* the calling process' address space.
*/
static int mmtimer_mmap(struct file *file, struct vm_area_struct *vma)
@@ -163,9 +163,9 @@ static int mmtimer_mmap(struct file *file, struct vm_area_struct *vma)
mmtimer_addr &= ~(PAGE_SIZE - 1);
mmtimer_addr &= 0xfffffffffffffffUL;
- if (remap_page_range(vma, vma->vm_start, mmtimer_addr, PAGE_SIZE,
- vma->vm_page_prot)) {
- printk(KERN_ERR "remap_page_range failed in mmtimer.c\n");
+ if (remap_pfn_range(vma, vma->vm_start, mmtimer_addr >> PAGE_SHIFT,
+ PAGE_SIZE, vma->vm_page_prot)) {
+ printk(KERN_ERR "remap_pfn_range failed in mmtimer.c\n");
return -EAGAIN;
}
diff --git a/drivers/ieee1394/video1394.c b/drivers/ieee1394/video1394.c
index fd40358ae48d..28d286b0654a 100644
--- a/drivers/ieee1394/video1394.c
+++ b/drivers/ieee1394/video1394.c
@@ -1157,7 +1157,7 @@ static int video1394_ioctl(struct inode *inode, struct file *file,
*
* FIXME:
* - PAGE_READONLY should suffice!?
- * - remap_page_range is kind of inefficient for page by page remapping.
+ * - remap_pfn_range is kind of inefficient for page by page remapping.
* But e.g. pte_alloc() does not work in modules ... :-(
*/
diff --git a/drivers/media/video/cpia.c b/drivers/media/video/cpia.c
index 388bc09366bd..7a7bb119dde5 100644
--- a/drivers/media/video/cpia.c
+++ b/drivers/media/video/cpia.c
@@ -216,20 +216,6 @@ static void set_flicker(struct cam_params *params, volatile u32 *command_flags,
* Memory management
*
**********************************************************************/
-
-/* Here we want the physical address of the memory.
- * This is used when initializing the contents of the area.
- */
-static inline unsigned long kvirt_to_pa(unsigned long adr)
-{
- unsigned long kva, ret;
-
- kva = (unsigned long) page_address(vmalloc_to_page((void *)adr));
- kva |= adr & (PAGE_SIZE-1); /* restore the offset */
- ret = __pa(kva);
- return ret;
-}
-
static void *rvmalloc(unsigned long size)
{
void *mem;
@@ -3795,8 +3781,8 @@ static int cpia_mmap(struct file *file, struct vm_area_struct *vma)
pos = (unsigned long)(cam->frame_buf);
while (size > 0) {
- page = kvirt_to_pa(pos);
- if (remap_page_range(vma, start, page, PAGE_SIZE, PAGE_SHARED)) {
+ page = page_to_pfn(vmalloc_to_page((void *)pos));
+ if (remap_pfn_range(vma, start, page, PAGE_SIZE, PAGE_SHARED)) {
up(&cam->busy_lock);
return -EAGAIN;
}
diff --git a/drivers/media/video/meye.c b/drivers/media/video/meye.c
index 7471d7a583f0..466c1ce9e0f2 100644
--- a/drivers/media/video/meye.c
+++ b/drivers/media/video/meye.c
@@ -115,19 +115,6 @@ static inline int meye_emptyq(struct meye_queue *queue, int *elem) {
/****************************************************************************/
/* Memory allocation routines (stolen from bttv-driver.c) */
/****************************************************************************/
-
-/* Here we want the physical address of the memory.
- * This is used when initializing the contents of the area.
- */
-static inline unsigned long kvirt_to_pa(unsigned long adr) {
- unsigned long kva, ret;
-
- kva = (unsigned long) page_address(vmalloc_to_page((void *)adr));
- kva |= adr & (PAGE_SIZE-1); /* restore the offset */
- ret = __pa(kva);
- return ret;
-}
-
static void *rvmalloc(unsigned long size) {
void *mem;
unsigned long adr;
@@ -1201,8 +1188,8 @@ static int meye_mmap(struct file *file, struct vm_area_struct *vma) {
pos = (unsigned long)meye.grab_fbuffer;
while (size > 0) {
- page = kvirt_to_pa(pos);
- if (remap_page_range(vma, start, page, PAGE_SIZE, PAGE_SHARED)) {
+ page = page_to_pfn(vmalloc_to_page((void *)pos));
+ if (remap_pfn_range(vma, start, page, PAGE_SIZE, PAGE_SHARED)) {
up(&meye.lock);
return -EAGAIN;
}
diff --git a/drivers/media/video/planb.c b/drivers/media/video/planb.c
index 3a828546952a..10eb49b5b709 100644
--- a/drivers/media/video/planb.c
+++ b/drivers/media/video/planb.c
@@ -1995,8 +1995,10 @@ static int planb_mmap(struct vm_area_struct *vma, struct video_device *dev, cons
return err;
}
for (i = 0; i < pb->rawbuf_size; i++) {
- if (remap_page_range(vma, start, virt_to_phys((void *)pb->rawbuf[i]),
- PAGE_SIZE, PAGE_SHARED))
+ unsigned long pfn;
+
+ pfn = virt_to_phys((void *)pb->rawbuf[i]) >> PAGE_SHIFT;
+ if (remap_pfn_range(vma, start, pfn, PAGE_SIZE, PAGE_SHARED))
return -EAGAIN;
start += PAGE_SIZE;
if (size <= PAGE_SIZE)
diff --git a/drivers/media/video/zoran_driver.c b/drivers/media/video/zoran_driver.c
index bb2b4201a24d..cb79f30ca121 100644
--- a/drivers/media/video/zoran_driver.c
+++ b/drivers/media/video/zoran_driver.c
@@ -4448,12 +4448,6 @@ static struct vm_operations_struct zoran_vm_ops = {
.close = zoran_vm_close,
};
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-#define zr_remap_page_range(a,b,c,d,e) remap_page_range(b,c,d,e)
-#else
-#define zr_remap_page_range(a,b,c,d,e) remap_page_range(a,b,c,d,e)
-#endif
-
static int
zoran_mmap (struct file *file,
struct vm_area_struct *vma)
@@ -4553,12 +4547,14 @@ zoran_mmap (struct file *file,
pos =
(unsigned long) fh->jpg_buffers.
buffer[i].frag_tab[2 * j];
- page = virt_to_phys(bus_to_virt(pos)); /* should just be pos on i386 */
- if (zr_remap_page_range
- (vma, start, page, todo, PAGE_SHARED)) {
+ /* should just be pos on i386 */
+ page = virt_to_phys(bus_to_virt(pos))
+ >> PAGE_SHIFT;
+ if (remap_pfn_range(vma, start, page,
+ todo, PAGE_SHARED)) {
dprintk(1,
KERN_ERR
- "%s: zoran_mmap(V4L) - remap_page_range failed\n",
+ "%s: zoran_mmap(V4L) - remap_pfn_range failed\n",
ZR_DEVNAME(zr));
res = -EAGAIN;
goto jpg_mmap_unlock_and_return;
@@ -4639,11 +4635,11 @@ zoran_mmap (struct file *file,
if (todo > fh->v4l_buffers.buffer_size)
todo = fh->v4l_buffers.buffer_size;
page = fh->v4l_buffers.buffer[i].fbuffer_phys;
- if (zr_remap_page_range
- (vma, start, page, todo, PAGE_SHARED)) {
+ if (remap_pfn_range(vma, start, page >> PAGE_SHIFT,
+ todo, PAGE_SHARED)) {
dprintk(1,
KERN_ERR
- "%s: zoran_mmap(V4L)i - remap_page_range failed\n",
+ "%s: zoran_mmap(V4L)i - remap_pfn_range failed\n",
ZR_DEVNAME(zr));
res = -EAGAIN;
goto v4l_mmap_unlock_and_return;
diff --git a/drivers/media/video/zr36120.c b/drivers/media/video/zr36120.c
index e99226434e73..88d8c97ff296 100644
--- a/drivers/media/video/zr36120.c
+++ b/drivers/media/video/zr36120.c
@@ -1474,8 +1474,8 @@ int zoran_mmap(struct vm_area_struct *vma, struct video_device* dev, const char*
/* start mapping the whole shabang to user memory */
pos = (unsigned long)ztv->fbuffer;
while (size>0) {
- unsigned long page = virt_to_phys((void*)pos);
- if (remap_page_range(vma, start, page, PAGE_SIZE, PAGE_SHARED))
+ unsigned long pfn = virt_to_phys((void*)pos) >> PAGE_SHIFT;
+ if (remap_pfn_range(vma, start, pfn, PAGE_SIZE, PAGE_SHARED))
return -EAGAIN;
start += PAGE_SIZE;
pos += PAGE_SIZE;
diff --git a/drivers/sbus/char/flash.c b/drivers/sbus/char/flash.c
index 0d42950448f5..40a400e262ea 100644
--- a/drivers/sbus/char/flash.c
+++ b/drivers/sbus/char/flash.c
@@ -66,7 +66,7 @@ flash_mmap(struct file *file, struct vm_area_struct *vma)
if ((vma->vm_pgoff << PAGE_SHIFT) > size)
return -ENXIO;
- addr += (vma->vm_pgoff << PAGE_SHIFT);
+ addr = vma->vm_pgoff + (addr >> PAGE_SHIFT);
if (vma->vm_end - (vma->vm_start + (vma->vm_pgoff << PAGE_SHIFT)) > size)
size = vma->vm_end - (vma->vm_start + (vma->vm_pgoff << PAGE_SHIFT));
@@ -75,7 +75,7 @@ flash_mmap(struct file *file, struct vm_area_struct *vma)
pgprot_val(vma->vm_page_prot) |= _PAGE_E;
vma->vm_flags |= (VM_SHM | VM_LOCKED);
- if (remap_page_range(vma, vma->vm_start, addr, size, vma->vm_page_prot))
+ if (remap_pfn_range(vma, vma->vm_start, addr, size, vma->vm_page_prot))
return -EAGAIN;
return 0;
diff --git a/drivers/sbus/char/jsflash.c b/drivers/sbus/char/jsflash.c
index 399c6c7b1ee7..0b886c69b7d5 100644
--- a/drivers/sbus/char/jsflash.c
+++ b/drivers/sbus/char/jsflash.c
@@ -21,7 +21,7 @@
* as a silly safeguard.
*
* XXX The flash.c manipulates page caching characteristics in a certain
- * dubious way; also it assumes that remap_page_range() can remap
+ * dubious way; also it assumes that remap_pfn_range() can remap
* PCI bus locations, which may be false. ioremap() must be used
* instead. We should discuss this.
*/
diff --git a/drivers/usb/class/audio.c b/drivers/usb/class/audio.c
index 88628d85dff2..355cea1d4fbd 100644
--- a/drivers/usb/class/audio.c
+++ b/drivers/usb/class/audio.c
@@ -509,7 +509,10 @@ static int dmabuf_mmap(struct vm_area_struct *vma, struct dmabuf *db, unsigned l
return -EINVAL;
db->mapped = 1;
for(nr = 0; nr < size; nr++) {
- if (remap_page_range(vma, start, virt_to_phys(db->sgbuf[nr]), PAGE_SIZE, prot))
+ unsigned long pfn;
+
+ pfn = virt_to_phys(db->sgbuf[nr]) >> PAGE_SHIFT;
+ if (remap_pfn_range(vma, start, pfn, PAGE_SIZE, prot))
return -EAGAIN;
start += PAGE_SIZE;
}
diff --git a/drivers/usb/media/ov511.c b/drivers/usb/media/ov511.c
index a8437c2919bc..3b3da2024afe 100644
--- a/drivers/usb/media/ov511.c
+++ b/drivers/usb/media/ov511.c
@@ -324,21 +324,6 @@ static struct symbolic_list urb_errlist[] = {
/**********************************************************************
* Memory management
**********************************************************************/
-
-/* Here we want the physical address of the memory.
- * This is used when initializing the contents of the area.
- */
-static inline unsigned long
-kvirt_to_pa(unsigned long adr)
-{
- unsigned long kva, ret;
-
- kva = (unsigned long) page_address(vmalloc_to_page((void *)adr));
- kva |= adr & (PAGE_SIZE-1); /* restore the offset */
- ret = __pa(kva);
- return ret;
-}
-
static void *
rvmalloc(unsigned long size)
{
@@ -4771,9 +4756,8 @@ ov51x_v4l1_mmap(struct file *file, struct vm_area_struct *vma)
pos = (unsigned long)ov->fbuf;
while (size > 0) {
- page = kvirt_to_pa(pos);
- if (remap_page_range(vma, start, page, PAGE_SIZE,
- PAGE_SHARED)) {
+ page = page_to_pfn(vmalloc_to_page((void *)pos));
+ if (remap_pfn_range(vma, start, page, PAGE_SIZE, PAGE_SHARED)) {
up(&ov->lock);
return -EAGAIN;
}
diff --git a/drivers/usb/media/se401.c b/drivers/usb/media/se401.c
index 37d28640c790..c6de33ddefd9 100644
--- a/drivers/usb/media/se401.c
+++ b/drivers/usb/media/se401.c
@@ -65,20 +65,6 @@ static struct usb_driver se401_driver;
* Memory management
*
**********************************************************************/
-
-/* Here we want the physical address of the memory.
- * This is used when initializing the contents of the area.
- */
-static inline unsigned long kvirt_to_pa(unsigned long adr)
-{
- unsigned long kva, ret;
-
- kva = (unsigned long) page_address(vmalloc_to_page((void *)adr));
- kva |= adr & (PAGE_SIZE-1); /* restore the offset */
- ret = __pa(kva);
- return ret;
-}
-
static void *rvmalloc(unsigned long size)
{
void *mem;
@@ -1182,8 +1168,8 @@ static int se401_mmap(struct file *file, struct vm_area_struct *vma)
}
pos = (unsigned long)se401->fbuf;
while (size > 0) {
- page = kvirt_to_pa(pos);
- if (remap_page_range(vma, start, page, PAGE_SIZE, PAGE_SHARED)) {
+ page = page_to_pfn(vmalloc_to_page((void *)pos));
+ if (remap_pfn_range(vma, start, page, PAGE_SIZE, PAGE_SHARED)) {
up(&se401->lock);
return -EAGAIN;
}
diff --git a/drivers/usb/media/sn9c102_core.c b/drivers/usb/media/sn9c102_core.c
index 96ae7b103ff8..53d3c5d95e2c 100644
--- a/drivers/usb/media/sn9c102_core.c
+++ b/drivers/usb/media/sn9c102_core.c
@@ -100,18 +100,6 @@ static sn9c102_eof_header_t sn9c102_eof_header[] = {
};
/*****************************************************************************/
-
-static inline unsigned long kvirt_to_pa(unsigned long adr)
-{
- unsigned long kva, ret;
-
- kva = (unsigned long)page_address(vmalloc_to_page((void *)adr));
- kva |= adr & (PAGE_SIZE-1);
- ret = __pa(kva);
- return ret;
-}
-
-
static void* rvmalloc(size_t size)
{
void* mem;
@@ -1567,8 +1555,8 @@ static int sn9c102_mmap(struct file* filp, struct vm_area_struct *vma)
pos = (unsigned long)cam->frame[i].bufmem;
while (size > 0) { /* size is page-aligned */
- page = kvirt_to_pa(pos);
- if (remap_page_range(vma, start, page, PAGE_SIZE,
+ page = page_to_pfn(vmalloc_to_page((void *)pos));
+ if (remap_pfn_range(vma, start, page, PAGE_SIZE,
vma->vm_page_prot)) {
up(&cam->fileop_sem);
return -EAGAIN;
diff --git a/drivers/usb/media/stv680.c b/drivers/usb/media/stv680.c
index a91870f0b412..a3efe1acfc41 100644
--- a/drivers/usb/media/stv680.c
+++ b/drivers/usb/media/stv680.c
@@ -118,20 +118,6 @@ module_param(video_nr, int, 0);
*
* And the STV0680 driver - Kevin
********************************************************************/
-
-/* Here we want the physical address of the memory.
- * This is used when initializing the contents of the area.
- */
-static inline unsigned long kvirt_to_pa (unsigned long adr)
-{
- unsigned long kva, ret;
-
- kva = (unsigned long) page_address(vmalloc_to_page((void *)adr));
- kva |= adr & (PAGE_SIZE-1); /* restore the offset */
- ret = __pa(kva);
- return ret;
-}
-
static void *rvmalloc (unsigned long size)
{
void *mem;
@@ -1291,8 +1277,8 @@ static int stv680_mmap (struct file *file, struct vm_area_struct *vma)
}
pos = (unsigned long) stv680->fbuf;
while (size > 0) {
- page = kvirt_to_pa (pos);
- if (remap_page_range (vma, start, page, PAGE_SIZE, PAGE_SHARED)) {
+ page = page_to_pfn(vmalloc_to_page((void *)pos));
+ if (remap_pfn_range(vma, start, page, PAGE_SIZE, PAGE_SHARED)) {
up (&stv680->lock);
return -EAGAIN;
}
diff --git a/drivers/usb/media/usbvideo.c b/drivers/usb/media/usbvideo.c
index 122b7accf1e1..fd155957ff84 100644
--- a/drivers/usb/media/usbvideo.c
+++ b/drivers/usb/media/usbvideo.c
@@ -60,21 +60,6 @@ static void usbvideo_SoftwareContrastAdjustment(struct uvd *uvd,
/*******************************/
/* Memory management functions */
/*******************************/
-
-/*
- * Here we want the physical address of the memory.
- * This is used when initializing the contents of the area.
- */
-unsigned long usbvideo_kvirt_to_pa(unsigned long adr)
-{
- unsigned long kva, ret;
-
- kva = (unsigned long) page_address(vmalloc_to_page((void *)adr));
- kva |= adr & (PAGE_SIZE-1); /* restore the offset */
- ret = __pa(kva);
- return ret;
-}
-
static void *usbvideo_rvmalloc(unsigned long size)
{
void *mem;
@@ -1168,8 +1153,8 @@ static int usbvideo_v4l_mmap(struct file *file, struct vm_area_struct *vma)
pos = (unsigned long) uvd->fbuf;
while (size > 0) {
- page = usbvideo_kvirt_to_pa(pos);
- if (remap_page_range(vma, start, page, PAGE_SIZE, PAGE_SHARED))
+ page = page_to_pfn(vmalloc_to_page((void *)pos));
+ if (remap_pfn_range(vma, start, page, PAGE_SIZE, PAGE_SHARED))
return -EAGAIN;
start += PAGE_SIZE;
diff --git a/drivers/usb/media/vicam.c b/drivers/usb/media/vicam.c
index 1e416c1de32d..7087cd2d0e4c 100644
--- a/drivers/usb/media/vicam.c
+++ b/drivers/usb/media/vicam.c
@@ -351,16 +351,6 @@ static unsigned char setup5[] = {
0x46, 0x05, 0x6C, 0x05, 0x00, 0x00
};
-static unsigned long kvirt_to_pa(unsigned long adr)
-{
- unsigned long kva, ret;
-
- kva = (unsigned long) page_address(vmalloc_to_page((void *)adr));
- kva |= adr & (PAGE_SIZE-1); /* restore the offset */
- ret = __pa(kva);
- return ret;
-}
-
/* rvmalloc / rvfree copied from usbvideo.c
*
* Not sure why these are not yet non-statics which I can reference through
@@ -1055,8 +1045,8 @@ vicam_mmap(struct file *file, struct vm_area_struct *vma)
pos = (unsigned long)cam->framebuf;
while (size > 0) {
- page = kvirt_to_pa(pos);
- if (remap_page_range(vma, start, page, PAGE_SIZE, PAGE_SHARED))
+ page = page_to_pfn(vmalloc_to_page((void *)pos));
+ if (remap_pfn_range(vma, start, page, PAGE_SIZE, PAGE_SHARED))
return -EAGAIN;
start += PAGE_SIZE;
diff --git a/drivers/usb/media/w9968cf.c b/drivers/usb/media/w9968cf.c
index 3131a509b650..f309cb5624af 100644
--- a/drivers/usb/media/w9968cf.c
+++ b/drivers/usb/media/w9968cf.c
@@ -457,7 +457,6 @@ static int w9968cf_i2c_control(struct i2c_adapter*, unsigned int cmd,
unsigned long arg);
/* Memory management */
-static inline unsigned long kvirt_to_pa(unsigned long adr);
static void* rvmalloc(unsigned long size);
static void rvfree(void *mem, unsigned long size);
static void w9968cf_deallocate_memory(struct w9968cf_device*);
@@ -611,20 +610,6 @@ static struct w9968cf_symbolic_list urb_errlist[] = {
/****************************************************************************
* Memory management functions *
****************************************************************************/
-
-/* Here we want the physical address of the memory.
- This is used when initializing the contents of the area. */
-static inline unsigned long kvirt_to_pa(unsigned long adr)
-{
- unsigned long kva, ret;
-
- kva = (unsigned long) page_address(vmalloc_to_page((void *)adr));
- kva |= adr & (PAGE_SIZE-1); /* restore the offset */
- ret = __pa(kva);
- return ret;
-}
-
-
static void* rvmalloc(unsigned long size)
{
void* mem;
@@ -2919,9 +2904,9 @@ static int w9968cf_mmap(struct file* filp, struct vm_area_struct *vma)
return -EINVAL;
while (vsize > 0) {
- page = kvirt_to_pa(pos) + vma->vm_pgoff;
- if (remap_page_range(vma, start, page, PAGE_SIZE,
- vma->vm_page_prot))
+ page = page_to_pfn(vmalloc_to_page((void *)pos));
+ if (remap_pfn_range(vma, start, page + vma->vm_pgoff,
+ PAGE_SIZE, vma->vm_page_prot))
return -EAGAIN;
start += PAGE_SIZE;
pos += PAGE_SIZE;
diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c
index 264b53179321..70620962fbff 100644
--- a/drivers/video/aty/atyfb_base.c
+++ b/drivers/video/aty/atyfb_base.c
@@ -1174,8 +1174,8 @@ static int atyfb_mmap(struct fb_info *info, struct file *file,
~(par->mmap_map[i].prot_mask);
pgprot_val(vma->vm_page_prot) |= par->mmap_map[i].prot_flag;
- if (remap_page_range(vma, vma->vm_start + page, map_offset,
- map_size, vma->vm_page_prot))
+ if (remap_pfn_range(vma, vma->vm_start + page,
+ map_offset >> PAGE_SHIFT, map_size, vma->vm_page_prot))
return -EAGAIN;
page += map_size;
diff --git a/drivers/video/gbefb.c b/drivers/video/gbefb.c
index 1dfc1d65c59b..15d9e998f23f 100644
--- a/drivers/video/gbefb.c
+++ b/drivers/video/gbefb.c
@@ -1018,8 +1018,8 @@ static int gbefb_mmap(struct fb_info *info, struct file *file,
else
phys_size = TILE_SIZE - offset;
- if (remap_page_range
- (vma, addr, phys_addr, phys_size, vma->vm_page_prot))
+ if (remap_pfn_range(vma, addr, phys_addr >> PAGE_SHIFT,
+ phys_size, vma->vm_page_prot))
return -EAGAIN;
offset = 0;
diff --git a/drivers/video/igafb.c b/drivers/video/igafb.c
index f9d77b0f51ab..2da19ea040d0 100644
--- a/drivers/video/igafb.c
+++ b/drivers/video/igafb.c
@@ -262,8 +262,8 @@ static int igafb_mmap(struct fb_info *info, struct file *file,
pgprot_val(vma->vm_page_prot) &= ~(par->mmap_map[i].prot_mask);
pgprot_val(vma->vm_page_prot) |= par->mmap_map[i].prot_flag;
- if (remap_page_range(vma, vma->vm_start + page, map_offset,
- map_size, vma->vm_page_prot))
+ if (remap_pfn_range(vma, vma->vm_start + page,
+ map_offset >> PAGE_SHIFT, map_size, vma->vm_page_prot))
return -EAGAIN;
page += map_size;
diff --git a/drivers/video/sgivwfb.c b/drivers/video/sgivwfb.c
index 4fc54822e09e..8413907b379a 100644
--- a/drivers/video/sgivwfb.c
+++ b/drivers/video/sgivwfb.c
@@ -719,8 +719,8 @@ static int sgivwfb_mmap(struct fb_info *info, struct file *file,
pgprot_val(vma->vm_page_prot) =
pgprot_val(vma->vm_page_prot) | _PAGE_PCD;
vma->vm_flags |= VM_IO;
- if (remap_page_range
- (vma, vma->vm_start, offset, size, vma->vm_page_prot))
+ if (remap_pfn_range(vma, vma->vm_start, offset >> PAGE_SHIFT,
+ size, vma->vm_page_prot))
return -EAGAIN;
vma->vm_file = file;
printk(KERN_DEBUG "sgivwfb: mmap framebuffer P(%lx)->V(%lx)\n",
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index 1b441a628b71..31bce98d6760 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -1729,7 +1729,8 @@ static int packet_mmap(struct file *file, struct socket *sock, struct vm_area_st
start = vma->vm_start;
err = -EAGAIN;
for (i=0; i<po->pg_vec_len; i++) {
- if (remap_page_range(vma, start, __pa(po->pg_vec[i]),
+ if (remap_pfn_range(vma, start,
+ __pa(po->pg_vec[i]) >> PAGE_SHIFT,
po->pg_vec_pages*PAGE_SIZE,
vma->vm_page_prot))
goto out;