|
@@ -587,14 +587,12 @@ static ssize_t uio_write(struct file *filep, const char __user *buf,
|
|
|
|
|
|
static int uio_find_mem_index(struct vm_area_struct *vma)
|
|
|
{
|
|
|
- int mi;
|
|
|
struct uio_device *idev = vma->vm_private_data;
|
|
|
|
|
|
- for (mi = 0; mi < MAX_UIO_MAPS; mi++) {
|
|
|
- if (idev->info->mem[mi].size == 0)
|
|
|
+ if (vma->vm_pgoff < MAX_UIO_MAPS) {
|
|
|
+ if (idev->info->mem[vma->vm_pgoff].size == 0)
|
|
|
return -1;
|
|
|
- if (vma->vm_pgoff == mi)
|
|
|
- return mi;
|
|
|
+ return (int)vma->vm_pgoff;
|
|
|
}
|
|
|
return -1;
|
|
|
}
|