Commit e6418fcc8adaa5c3911295cbe7ddd368b9788616
Committed by
Greg Kroah-Hartman
1 parent
75f0aef622
Exists in
master
and in
16 other branches
uio: Pass pointers to virt_to_page(), not integers
Most architectures define virt_to_page() as a macro that casts its argument such that an argument of type unsigned long will be accepted without complaint. However, the proper type is void *, and passing unsigned long results in a warning on MIPS. Compile-tested only. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Showing 1 changed file with 4 additions and 2 deletions Side-by-side Diff
drivers/uio/uio.c
... | ... | @@ -605,6 +605,7 @@ |
605 | 605 | struct uio_device *idev = vma->vm_private_data; |
606 | 606 | struct page *page; |
607 | 607 | unsigned long offset; |
608 | + void *addr; | |
608 | 609 | |
609 | 610 | int mi = uio_find_mem_index(vma); |
610 | 611 | if (mi < 0) |
611 | 612 | |
612 | 613 | |
... | ... | @@ -616,10 +617,11 @@ |
616 | 617 | */ |
617 | 618 | offset = (vmf->pgoff - mi) << PAGE_SHIFT; |
618 | 619 | |
620 | + addr = (void *)(unsigned long)idev->info->mem[mi].addr + offset; | |
619 | 621 | if (idev->info->mem[mi].memtype == UIO_MEM_LOGICAL) |
620 | - page = virt_to_page(idev->info->mem[mi].addr + offset); | |
622 | + page = virt_to_page(addr); | |
621 | 623 | else |
622 | - page = vmalloc_to_page((void *)(unsigned long)idev->info->mem[mi].addr + offset); | |
624 | + page = vmalloc_to_page(addr); | |
623 | 625 | get_page(page); |
624 | 626 | vmf->page = page; |
625 | 627 | return 0; |