diff options
Diffstat (limited to 'drivers/uio/uio.c')
-rw-r--r-- | drivers/uio/uio.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c index d2efe823c20d..a783d533a1a6 100644 --- a/drivers/uio/uio.c +++ b/drivers/uio/uio.c | |||
@@ -69,7 +69,7 @@ static ssize_t map_name_show(struct uio_mem *mem, char *buf) | |||
69 | 69 | ||
70 | static ssize_t map_addr_show(struct uio_mem *mem, char *buf) | 70 | static ssize_t map_addr_show(struct uio_mem *mem, char *buf) |
71 | { | 71 | { |
72 | return sprintf(buf, "0x%lx\n", mem->addr); | 72 | return sprintf(buf, "0x%llx\n", (unsigned long long)mem->addr); |
73 | } | 73 | } |
74 | 74 | ||
75 | static ssize_t map_size_show(struct uio_mem *mem, char *buf) | 75 | static ssize_t map_size_show(struct uio_mem *mem, char *buf) |
@@ -79,7 +79,7 @@ static ssize_t map_size_show(struct uio_mem *mem, char *buf) | |||
79 | 79 | ||
80 | static ssize_t map_offset_show(struct uio_mem *mem, char *buf) | 80 | static ssize_t map_offset_show(struct uio_mem *mem, char *buf) |
81 | { | 81 | { |
82 | return sprintf(buf, "0x%lx\n", mem->addr & ~PAGE_MASK); | 82 | return sprintf(buf, "0x%llx\n", (unsigned long long)mem->addr & ~PAGE_MASK); |
83 | } | 83 | } |
84 | 84 | ||
85 | struct map_sysfs_entry { | 85 | struct map_sysfs_entry { |
@@ -634,8 +634,7 @@ static int uio_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf) | |||
634 | if (idev->info->mem[mi].memtype == UIO_MEM_LOGICAL) | 634 | if (idev->info->mem[mi].memtype == UIO_MEM_LOGICAL) |
635 | page = virt_to_page(idev->info->mem[mi].addr + offset); | 635 | page = virt_to_page(idev->info->mem[mi].addr + offset); |
636 | else | 636 | else |
637 | page = vmalloc_to_page((void *)idev->info->mem[mi].addr | 637 | page = vmalloc_to_page((void *)(unsigned long)idev->info->mem[mi].addr + offset); |
638 | + offset); | ||
639 | get_page(page); | 638 | get_page(page); |
640 | vmf->page = page; | 639 | vmf->page = page; |
641 | return 0; | 640 | return 0; |
@@ -750,14 +749,13 @@ static int uio_major_init(void) | |||
750 | 749 | ||
751 | uio_major = MAJOR(uio_dev); | 750 | uio_major = MAJOR(uio_dev); |
752 | uio_cdev = cdev; | 751 | uio_cdev = cdev; |
753 | result = 0; | 752 | return 0; |
754 | out: | ||
755 | return result; | ||
756 | out_put: | 753 | out_put: |
757 | kobject_put(&cdev->kobj); | 754 | kobject_put(&cdev->kobj); |
758 | out_unregister: | 755 | out_unregister: |
759 | unregister_chrdev_region(uio_dev, UIO_MAX_DEVICES); | 756 | unregister_chrdev_region(uio_dev, UIO_MAX_DEVICES); |
760 | goto out; | 757 | out: |
758 | return result; | ||
761 | } | 759 | } |
762 | 760 | ||
763 | static void uio_major_cleanup(void) | 761 | static void uio_major_cleanup(void) |