aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-12-14 20:25:18 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2016-12-14 20:25:18 -0500
commita57cb1c1d7974c62a5c80f7869e35b492ace12cd (patch)
tree5a42ee9a668f171143464bc86013954c1bbe94ad /drivers
parentcf1b3341afab9d3ad02a76b3a619ea027dcf4e28 (diff)
parente1e14ab8411df344a17687821f8f78f0a1e73cbb (diff)
Merge branch 'akpm' (patches from Andrew)
Merge more updates from Andrew Morton: - a few misc things - kexec updates - DMA-mapping updates to better support networking DMA operations - IPC updates - various MM changes to improve DAX fault handling - lots of radix-tree changes, mainly to the test suite. All leading up to reimplementing the IDA/IDR code to be a wrapper layer over the radix-tree. However the final trigger-pulling patch is held off for 4.11. * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (114 commits) radix tree test suite: delete unused rcupdate.c radix tree test suite: add new tag check radix-tree: ensure counts are initialised radix tree test suite: cache recently freed objects radix tree test suite: add some more functionality idr: reduce the number of bits per level from 8 to 6 rxrpc: abstract away knowledge of IDR internals tpm: use idr_find(), not idr_find_slowpath() idr: add ida_is_empty radix tree test suite: check multiorder iteration radix-tree: fix replacement for multiorder entries radix-tree: add radix_tree_split_preload() radix-tree: add radix_tree_split radix-tree: add radix_tree_join radix-tree: delete radix_tree_range_tag_if_tagged() radix-tree: delete radix_tree_locate_item() radix-tree: improve multiorder iterators btrfs: fix race in btrfs_free_dummy_fs_info() radix-tree: improve dump output radix-tree: make radix_tree_find_next_bit more useful ...
Diffstat (limited to 'drivers')
-rw-r--r--drivers/char/agp/alpha-agp.c3
-rw-r--r--drivers/char/mspec.c2
-rw-r--r--drivers/char/tpm/tpm-chip.c4
-rw-r--r--drivers/dax/dax.c3
-rw-r--r--drivers/gpu/drm/armada/armada_gem.c5
-rw-r--r--drivers/gpu/drm/drm_vm.c10
-rw-r--r--drivers/gpu/drm/etnaviv/etnaviv_gem.c9
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_gem.c6
-rw-r--r--drivers/gpu/drm/gma500/framebuffer.c2
-rw-r--r--drivers/gpu/drm/gma500/gem.c5
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c3
-rw-r--r--drivers/gpu/drm/i915/i915_gem_userptr.c2
-rw-r--r--drivers/gpu/drm/msm/msm_gem.c8
-rw-r--r--drivers/gpu/drm/omapdrm/omap_gem.c20
-rw-r--r--drivers/gpu/drm/tegra/gem.c4
-rw-r--r--drivers/gpu/drm/ttm/ttm_bo_vm.c2
-rw-r--r--drivers/gpu/drm/udl/udl_gem.c5
-rw-r--r--drivers/gpu/drm/vgem/vgem_drv.c2
-rw-r--r--drivers/infiniband/core/umem_odp.c2
-rw-r--r--drivers/media/v4l2-core/videobuf-dma-sg.c5
-rw-r--r--drivers/misc/cxl/context.c5
-rw-r--r--drivers/misc/sgi-gru/grumain.c2
-rw-r--r--drivers/net/ethernet/intel/igb/igb.h7
-rw-r--r--drivers/net/ethernet/intel/igb/igb_main.c77
-rw-r--r--drivers/net/wireless/intel/iwlwifi/dvm/calib.c3
-rw-r--r--drivers/staging/android/ion/ion.c2
-rw-r--r--drivers/staging/lustre/lustre/llite/vvp_io.c6
-rw-r--r--drivers/usb/gadget/function/f_hid.c6
-rw-r--r--drivers/usb/gadget/function/f_printer.c6
-rw-r--r--drivers/vfio/vfio_iommu_type1.c2
-rw-r--r--drivers/xen/privcmd.c2
31 files changed, 115 insertions, 105 deletions
diff --git a/drivers/char/agp/alpha-agp.c b/drivers/char/agp/alpha-agp.c
index 199b8e99f7d7..737187865269 100644
--- a/drivers/char/agp/alpha-agp.c
+++ b/drivers/char/agp/alpha-agp.c
@@ -19,8 +19,7 @@ static int alpha_core_agp_vm_fault(struct vm_area_struct *vma,
19 unsigned long pa; 19 unsigned long pa;
20 struct page *page; 20 struct page *page;
21 21
22 dma_addr = (unsigned long)vmf->virtual_address - vma->vm_start 22 dma_addr = vmf->address - vma->vm_start + agp->aperture.bus_base;
23 + agp->aperture.bus_base;
24 pa = agp->ops->translate(agp, dma_addr); 23 pa = agp->ops->translate(agp, dma_addr);
25 24
26 if (pa == (unsigned long)-EINVAL) 25 if (pa == (unsigned long)-EINVAL)
diff --git a/drivers/char/mspec.c b/drivers/char/mspec.c
index f3f92d5fcda0..a697ca0cab1e 100644
--- a/drivers/char/mspec.c
+++ b/drivers/char/mspec.c
@@ -227,7 +227,7 @@ mspec_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
227 * be because another thread has installed the pte first, so it 227 * be because another thread has installed the pte first, so it
228 * is no problem. 228 * is no problem.
229 */ 229 */
230 vm_insert_pfn(vma, (unsigned long)vmf->virtual_address, pfn); 230 vm_insert_pfn(vma, vmf->address, pfn);
231 231
232 return VM_FAULT_NOPAGE; 232 return VM_FAULT_NOPAGE;
233} 233}
diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c
index 7a4869151d3b..a77262d31911 100644
--- a/drivers/char/tpm/tpm-chip.c
+++ b/drivers/char/tpm/tpm-chip.c
@@ -84,7 +84,7 @@ EXPORT_SYMBOL_GPL(tpm_put_ops);
84 * 84 *
85 * The return'd chip has been tpm_try_get_ops'd and must be released via 85 * The return'd chip has been tpm_try_get_ops'd and must be released via
86 * tpm_put_ops 86 * tpm_put_ops
87 */ 87 */
88struct tpm_chip *tpm_chip_find_get(int chip_num) 88struct tpm_chip *tpm_chip_find_get(int chip_num)
89{ 89{
90 struct tpm_chip *chip, *res = NULL; 90 struct tpm_chip *chip, *res = NULL;
@@ -103,7 +103,7 @@ struct tpm_chip *tpm_chip_find_get(int chip_num)
103 } 103 }
104 } while (chip_prev != chip_num); 104 } while (chip_prev != chip_num);
105 } else { 105 } else {
106 chip = idr_find_slowpath(&dev_nums_idr, chip_num); 106 chip = idr_find(&dev_nums_idr, chip_num);
107 if (chip && !tpm_try_get_ops(chip)) 107 if (chip && !tpm_try_get_ops(chip))
108 res = chip; 108 res = chip;
109 } 109 }
diff --git a/drivers/dax/dax.c b/drivers/dax/dax.c
index 286447a83dab..26ec39ddf21f 100644
--- a/drivers/dax/dax.c
+++ b/drivers/dax/dax.c
@@ -328,7 +328,6 @@ static phys_addr_t pgoff_to_phys(struct dax_dev *dax_dev, pgoff_t pgoff,
328static int __dax_dev_fault(struct dax_dev *dax_dev, struct vm_area_struct *vma, 328static int __dax_dev_fault(struct dax_dev *dax_dev, struct vm_area_struct *vma,
329 struct vm_fault *vmf) 329 struct vm_fault *vmf)
330{ 330{
331 unsigned long vaddr = (unsigned long) vmf->virtual_address;
332 struct device *dev = &dax_dev->dev; 331 struct device *dev = &dax_dev->dev;
333 struct dax_region *dax_region; 332 struct dax_region *dax_region;
334 int rc = VM_FAULT_SIGBUS; 333 int rc = VM_FAULT_SIGBUS;
@@ -353,7 +352,7 @@ static int __dax_dev_fault(struct dax_dev *dax_dev, struct vm_area_struct *vma,
353 352
354 pfn = phys_to_pfn_t(phys, dax_region->pfn_flags); 353 pfn = phys_to_pfn_t(phys, dax_region->pfn_flags);
355 354
356 rc = vm_insert_mixed(vma, vaddr, pfn); 355 rc = vm_insert_mixed(vma, vmf->address, pfn);
357 356
358 if (rc == -ENOMEM) 357 if (rc == -ENOMEM)
359 return VM_FAULT_OOM; 358 return VM_FAULT_OOM;
diff --git a/drivers/gpu/drm/armada/armada_gem.c b/drivers/gpu/drm/armada/armada_gem.c
index 768087ddb046..a293c8be232c 100644
--- a/drivers/gpu/drm/armada/armada_gem.c
+++ b/drivers/gpu/drm/armada/armada_gem.c
@@ -17,12 +17,11 @@
17static int armada_gem_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) 17static int armada_gem_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
18{ 18{
19 struct armada_gem_object *obj = drm_to_armada_gem(vma->vm_private_data); 19 struct armada_gem_object *obj = drm_to_armada_gem(vma->vm_private_data);
20 unsigned long addr = (unsigned long)vmf->virtual_address;
21 unsigned long pfn = obj->phys_addr >> PAGE_SHIFT; 20 unsigned long pfn = obj->phys_addr >> PAGE_SHIFT;
22 int ret; 21 int ret;
23 22
24 pfn += (addr - vma->vm_start) >> PAGE_SHIFT; 23 pfn += (vmf->address - vma->vm_start) >> PAGE_SHIFT;
25 ret = vm_insert_pfn(vma, addr, pfn); 24 ret = vm_insert_pfn(vma, vmf->address, pfn);
26 25
27 switch (ret) { 26 switch (ret) {
28 case 0: 27 case 0:
diff --git a/drivers/gpu/drm/drm_vm.c b/drivers/gpu/drm/drm_vm.c
index caa4e4ca616d..bd311c77c254 100644
--- a/drivers/gpu/drm/drm_vm.c
+++ b/drivers/gpu/drm/drm_vm.c
@@ -124,8 +124,7 @@ static int drm_do_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
124 * Using vm_pgoff as a selector forces us to use this unusual 124 * Using vm_pgoff as a selector forces us to use this unusual
125 * addressing scheme. 125 * addressing scheme.
126 */ 126 */
127 resource_size_t offset = (unsigned long)vmf->virtual_address - 127 resource_size_t offset = vmf->address - vma->vm_start;
128 vma->vm_start;
129 resource_size_t baddr = map->offset + offset; 128 resource_size_t baddr = map->offset + offset;
130 struct drm_agp_mem *agpmem; 129 struct drm_agp_mem *agpmem;
131 struct page *page; 130 struct page *page;
@@ -195,7 +194,7 @@ static int drm_do_vm_shm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
195 if (!map) 194 if (!map)
196 return VM_FAULT_SIGBUS; /* Nothing allocated */ 195 return VM_FAULT_SIGBUS; /* Nothing allocated */
197 196
198 offset = (unsigned long)vmf->virtual_address - vma->vm_start; 197 offset = vmf->address - vma->vm_start;
199 i = (unsigned long)map->handle + offset; 198 i = (unsigned long)map->handle + offset;
200 page = vmalloc_to_page((void *)i); 199 page = vmalloc_to_page((void *)i);
201 if (!page) 200 if (!page)
@@ -301,7 +300,8 @@ static int drm_do_vm_dma_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
301 if (!dma->pagelist) 300 if (!dma->pagelist)
302 return VM_FAULT_SIGBUS; /* Nothing allocated */ 301 return VM_FAULT_SIGBUS; /* Nothing allocated */
303 302
304 offset = (unsigned long)vmf->virtual_address - vma->vm_start; /* vm_[pg]off[set] should be 0 */ 303 offset = vmf->address - vma->vm_start;
304 /* vm_[pg]off[set] should be 0 */
305 page_nr = offset >> PAGE_SHIFT; /* page_nr could just be vmf->pgoff */ 305 page_nr = offset >> PAGE_SHIFT; /* page_nr could just be vmf->pgoff */
306 page = virt_to_page((void *)dma->pagelist[page_nr]); 306 page = virt_to_page((void *)dma->pagelist[page_nr]);
307 307
@@ -337,7 +337,7 @@ static int drm_do_vm_sg_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
337 if (!entry->pagelist) 337 if (!entry->pagelist)
338 return VM_FAULT_SIGBUS; /* Nothing allocated */ 338 return VM_FAULT_SIGBUS; /* Nothing allocated */
339 339
340 offset = (unsigned long)vmf->virtual_address - vma->vm_start; 340 offset = vmf->address - vma->vm_start;
341 map_offset = map->offset - (unsigned long)dev->sg->virtual; 341 map_offset = map->offset - (unsigned long)dev->sg->virtual;
342 page_offset = (offset >> PAGE_SHIFT) + (map_offset >> PAGE_SHIFT); 342 page_offset = (offset >> PAGE_SHIFT) + (map_offset >> PAGE_SHIFT);
343 page = entry->pagelist[page_offset]; 343 page = entry->pagelist[page_offset];
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem.c b/drivers/gpu/drm/etnaviv/etnaviv_gem.c
index 7d066a91d778..114dddbd297b 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gem.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gem.c
@@ -202,15 +202,14 @@ int etnaviv_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
202 } 202 }
203 203
204 /* We don't use vmf->pgoff since that has the fake offset: */ 204 /* We don't use vmf->pgoff since that has the fake offset: */
205 pgoff = ((unsigned long)vmf->virtual_address - 205 pgoff = (vmf->address - vma->vm_start) >> PAGE_SHIFT;
206 vma->vm_start) >> PAGE_SHIFT;
207 206
208 page = pages[pgoff]; 207 page = pages[pgoff];
209 208
210 VERB("Inserting %p pfn %lx, pa %lx", vmf->virtual_address, 209 VERB("Inserting %p pfn %lx, pa %lx", (void *)vmf->address,
211 page_to_pfn(page), page_to_pfn(page) << PAGE_SHIFT); 210 page_to_pfn(page), page_to_pfn(page) << PAGE_SHIFT);
212 211
213 ret = vm_insert_page(vma, (unsigned long)vmf->virtual_address, page); 212 ret = vm_insert_page(vma, vmf->address, page);
214 213
215out: 214out:
216 switch (ret) { 215 switch (ret) {
@@ -759,7 +758,7 @@ static struct page **etnaviv_gem_userptr_do_get_pages(
759 down_read(&mm->mmap_sem); 758 down_read(&mm->mmap_sem);
760 while (pinned < npages) { 759 while (pinned < npages) {
761 ret = get_user_pages_remote(task, mm, ptr, npages - pinned, 760 ret = get_user_pages_remote(task, mm, ptr, npages - pinned,
762 flags, pvec + pinned, NULL); 761 flags, pvec + pinned, NULL, NULL);
763 if (ret < 0) 762 if (ret < 0)
764 break; 763 break;
765 764
diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c
index ea7a18230888..57b81460fec8 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_gem.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c
@@ -455,8 +455,7 @@ int exynos_drm_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
455 pgoff_t page_offset; 455 pgoff_t page_offset;
456 int ret; 456 int ret;
457 457
458 page_offset = ((unsigned long)vmf->virtual_address - 458 page_offset = (vmf->address - vma->vm_start) >> PAGE_SHIFT;
459 vma->vm_start) >> PAGE_SHIFT;
460 459
461 if (page_offset >= (exynos_gem->size >> PAGE_SHIFT)) { 460 if (page_offset >= (exynos_gem->size >> PAGE_SHIFT)) {
462 DRM_ERROR("invalid page offset\n"); 461 DRM_ERROR("invalid page offset\n");
@@ -465,8 +464,7 @@ int exynos_drm_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
465 } 464 }
466 465
467 pfn = page_to_pfn(exynos_gem->pages[page_offset]); 466 pfn = page_to_pfn(exynos_gem->pages[page_offset]);
468 ret = vm_insert_mixed(vma, (unsigned long)vmf->virtual_address, 467 ret = vm_insert_mixed(vma, vmf->address, __pfn_to_pfn_t(pfn, PFN_DEV));
469 __pfn_to_pfn_t(pfn, PFN_DEV));
470 468
471out: 469out:
472 switch (ret) { 470 switch (ret) {
diff --git a/drivers/gpu/drm/gma500/framebuffer.c b/drivers/gpu/drm/gma500/framebuffer.c
index 4071b2d1e8cf..8b44fa542562 100644
--- a/drivers/gpu/drm/gma500/framebuffer.c
+++ b/drivers/gpu/drm/gma500/framebuffer.c
@@ -125,7 +125,7 @@ static int psbfb_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
125 psbfb->gtt->offset; 125 psbfb->gtt->offset;
126 126
127 page_num = vma_pages(vma); 127 page_num = vma_pages(vma);
128 address = (unsigned long)vmf->virtual_address - (vmf->pgoff << PAGE_SHIFT); 128 address = vmf->address - (vmf->pgoff << PAGE_SHIFT);
129 129
130 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); 130 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
131 131
diff --git a/drivers/gpu/drm/gma500/gem.c b/drivers/gpu/drm/gma500/gem.c
index 6d1cb6b370b1..527c62917660 100644
--- a/drivers/gpu/drm/gma500/gem.c
+++ b/drivers/gpu/drm/gma500/gem.c
@@ -197,15 +197,14 @@ int psb_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
197 197
198 /* Page relative to the VMA start - we must calculate this ourselves 198 /* Page relative to the VMA start - we must calculate this ourselves
199 because vmf->pgoff is the fake GEM offset */ 199 because vmf->pgoff is the fake GEM offset */
200 page_offset = ((unsigned long) vmf->virtual_address - vma->vm_start) 200 page_offset = (vmf->address - vma->vm_start) >> PAGE_SHIFT;
201 >> PAGE_SHIFT;
202 201
203 /* CPU view of the page, don't go via the GART for CPU writes */ 202 /* CPU view of the page, don't go via the GART for CPU writes */
204 if (r->stolen) 203 if (r->stolen)
205 pfn = (dev_priv->stolen_base + r->offset) >> PAGE_SHIFT; 204 pfn = (dev_priv->stolen_base + r->offset) >> PAGE_SHIFT;
206 else 205 else
207 pfn = page_to_pfn(r->pages[page_offset]); 206 pfn = page_to_pfn(r->pages[page_offset]);
208 ret = vm_insert_pfn(vma, (unsigned long)vmf->virtual_address, pfn); 207 ret = vm_insert_pfn(vma, vmf->address, pfn);
209 208
210fail: 209fail:
211 mutex_unlock(&dev_priv->mmap_mutex); 210 mutex_unlock(&dev_priv->mmap_mutex);
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index d0dcaf35b429..412f3513f269 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -1796,8 +1796,7 @@ int i915_gem_fault(struct vm_area_struct *area, struct vm_fault *vmf)
1796 int ret; 1796 int ret;
1797 1797
1798 /* We don't use vmf->pgoff since that has the fake offset */ 1798 /* We don't use vmf->pgoff since that has the fake offset */
1799 page_offset = ((unsigned long)vmf->virtual_address - area->vm_start) >> 1799 page_offset = (vmf->address - area->vm_start) >> PAGE_SHIFT;
1800 PAGE_SHIFT;
1801 1800
1802 trace_i915_gem_object_fault(obj, page_offset, true, write); 1801 trace_i915_gem_object_fault(obj, page_offset, true, write);
1803 1802
diff --git a/drivers/gpu/drm/i915/i915_gem_userptr.c b/drivers/gpu/drm/i915/i915_gem_userptr.c
index 107ddf51065e..d068af2ec3a3 100644
--- a/drivers/gpu/drm/i915/i915_gem_userptr.c
+++ b/drivers/gpu/drm/i915/i915_gem_userptr.c
@@ -515,7 +515,7 @@ __i915_gem_userptr_get_pages_worker(struct work_struct *_work)
515 obj->userptr.ptr + pinned * PAGE_SIZE, 515 obj->userptr.ptr + pinned * PAGE_SIZE,
516 npages - pinned, 516 npages - pinned,
517 flags, 517 flags,
518 pvec + pinned, NULL); 518 pvec + pinned, NULL, NULL);
519 if (ret < 0) 519 if (ret < 0)
520 break; 520 break;
521 521
diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c
index cd06cfd94687..d8bc59c7e261 100644
--- a/drivers/gpu/drm/msm/msm_gem.c
+++ b/drivers/gpu/drm/msm/msm_gem.c
@@ -225,16 +225,14 @@ int msm_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
225 } 225 }
226 226
227 /* We don't use vmf->pgoff since that has the fake offset: */ 227 /* We don't use vmf->pgoff since that has the fake offset: */
228 pgoff = ((unsigned long)vmf->virtual_address - 228 pgoff = (vmf->address - vma->vm_start) >> PAGE_SHIFT;
229 vma->vm_start) >> PAGE_SHIFT;
230 229
231 pfn = page_to_pfn(pages[pgoff]); 230 pfn = page_to_pfn(pages[pgoff]);
232 231
233 VERB("Inserting %p pfn %lx, pa %lx", vmf->virtual_address, 232 VERB("Inserting %p pfn %lx, pa %lx", (void *)vmf->address,
234 pfn, pfn << PAGE_SHIFT); 233 pfn, pfn << PAGE_SHIFT);
235 234
236 ret = vm_insert_mixed(vma, (unsigned long)vmf->virtual_address, 235 ret = vm_insert_mixed(vma, vmf->address, __pfn_to_pfn_t(pfn, PFN_DEV));
237 __pfn_to_pfn_t(pfn, PFN_DEV));
238 236
239out_unlock: 237out_unlock:
240 mutex_unlock(&dev->struct_mutex); 238 mutex_unlock(&dev->struct_mutex);
diff --git a/drivers/gpu/drm/omapdrm/omap_gem.c b/drivers/gpu/drm/omapdrm/omap_gem.c
index d4e1e11466f8..4a90c690f09e 100644
--- a/drivers/gpu/drm/omapdrm/omap_gem.c
+++ b/drivers/gpu/drm/omapdrm/omap_gem.c
@@ -398,8 +398,7 @@ static int fault_1d(struct drm_gem_object *obj,
398 pgoff_t pgoff; 398 pgoff_t pgoff;
399 399
400 /* We don't use vmf->pgoff since that has the fake offset: */ 400 /* We don't use vmf->pgoff since that has the fake offset: */
401 pgoff = ((unsigned long)vmf->virtual_address - 401 pgoff = (vmf->address - vma->vm_start) >> PAGE_SHIFT;
402 vma->vm_start) >> PAGE_SHIFT;
403 402
404 if (omap_obj->pages) { 403 if (omap_obj->pages) {
405 omap_gem_cpu_sync(obj, pgoff); 404 omap_gem_cpu_sync(obj, pgoff);
@@ -409,11 +408,10 @@ static int fault_1d(struct drm_gem_object *obj,
409 pfn = (omap_obj->paddr >> PAGE_SHIFT) + pgoff; 408 pfn = (omap_obj->paddr >> PAGE_SHIFT) + pgoff;
410 } 409 }
411 410
412 VERB("Inserting %p pfn %lx, pa %lx", vmf->virtual_address, 411 VERB("Inserting %p pfn %lx, pa %lx", (void *)vmf->address,
413 pfn, pfn << PAGE_SHIFT); 412 pfn, pfn << PAGE_SHIFT);
414 413
415 return vm_insert_mixed(vma, (unsigned long)vmf->virtual_address, 414 return vm_insert_mixed(vma, vmf->address, __pfn_to_pfn_t(pfn, PFN_DEV));
416 __pfn_to_pfn_t(pfn, PFN_DEV));
417} 415}
418 416
419/* Special handling for the case of faulting in 2d tiled buffers */ 417/* Special handling for the case of faulting in 2d tiled buffers */
@@ -427,7 +425,7 @@ static int fault_2d(struct drm_gem_object *obj,
427 struct page *pages[64]; /* XXX is this too much to have on stack? */ 425 struct page *pages[64]; /* XXX is this too much to have on stack? */
428 unsigned long pfn; 426 unsigned long pfn;
429 pgoff_t pgoff, base_pgoff; 427 pgoff_t pgoff, base_pgoff;
430 void __user *vaddr; 428 unsigned long vaddr;
431 int i, ret, slots; 429 int i, ret, slots;
432 430
433 /* 431 /*
@@ -447,8 +445,7 @@ static int fault_2d(struct drm_gem_object *obj,
447 const int m = 1 + ((omap_obj->width << fmt) / PAGE_SIZE); 445 const int m = 1 + ((omap_obj->width << fmt) / PAGE_SIZE);
448 446
449 /* We don't use vmf->pgoff since that has the fake offset: */ 447 /* We don't use vmf->pgoff since that has the fake offset: */
450 pgoff = ((unsigned long)vmf->virtual_address - 448 pgoff = (vmf->address - vma->vm_start) >> PAGE_SHIFT;
451 vma->vm_start) >> PAGE_SHIFT;
452 449
453 /* 450 /*
454 * Actual address we start mapping at is rounded down to previous slot 451 * Actual address we start mapping at is rounded down to previous slot
@@ -459,7 +456,7 @@ static int fault_2d(struct drm_gem_object *obj,
459 /* figure out buffer width in slots */ 456 /* figure out buffer width in slots */
460 slots = omap_obj->width >> priv->usergart[fmt].slot_shift; 457 slots = omap_obj->width >> priv->usergart[fmt].slot_shift;
461 458
462 vaddr = vmf->virtual_address - ((pgoff - base_pgoff) << PAGE_SHIFT); 459 vaddr = vmf->address - ((pgoff - base_pgoff) << PAGE_SHIFT);
463 460
464 entry = &priv->usergart[fmt].entry[priv->usergart[fmt].last]; 461 entry = &priv->usergart[fmt].entry[priv->usergart[fmt].last];
465 462
@@ -503,12 +500,11 @@ static int fault_2d(struct drm_gem_object *obj,
503 500
504 pfn = entry->paddr >> PAGE_SHIFT; 501 pfn = entry->paddr >> PAGE_SHIFT;
505 502
506 VERB("Inserting %p pfn %lx, pa %lx", vmf->virtual_address, 503 VERB("Inserting %p pfn %lx, pa %lx", (void *)vmf->address,
507 pfn, pfn << PAGE_SHIFT); 504 pfn, pfn << PAGE_SHIFT);
508 505
509 for (i = n; i > 0; i--) { 506 for (i = n; i > 0; i--) {
510 vm_insert_mixed(vma, (unsigned long)vaddr, 507 vm_insert_mixed(vma, vaddr, __pfn_to_pfn_t(pfn, PFN_DEV));
511 __pfn_to_pfn_t(pfn, PFN_DEV));
512 pfn += priv->usergart[fmt].stride_pfn; 508 pfn += priv->usergart[fmt].stride_pfn;
513 vaddr += PAGE_SIZE * m; 509 vaddr += PAGE_SIZE * m;
514 } 510 }
diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c
index c08e5279eeac..7d853e6b5ff0 100644
--- a/drivers/gpu/drm/tegra/gem.c
+++ b/drivers/gpu/drm/tegra/gem.c
@@ -452,10 +452,10 @@ static int tegra_bo_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
452 if (!bo->pages) 452 if (!bo->pages)
453 return VM_FAULT_SIGBUS; 453 return VM_FAULT_SIGBUS;
454 454
455 offset = ((unsigned long)vmf->virtual_address - vma->vm_start) >> PAGE_SHIFT; 455 offset = (vmf->address - vma->vm_start) >> PAGE_SHIFT;
456 page = bo->pages[offset]; 456 page = bo->pages[offset];
457 457
458 err = vm_insert_page(vma, (unsigned long)vmf->virtual_address, page); 458 err = vm_insert_page(vma, vmf->address, page);
459 switch (err) { 459 switch (err) {
460 case -EAGAIN: 460 case -EAGAIN:
461 case 0: 461 case 0:
diff --git a/drivers/gpu/drm/ttm/ttm_bo_vm.c b/drivers/gpu/drm/ttm/ttm_bo_vm.c
index 4748aedc933a..68ef993ab431 100644
--- a/drivers/gpu/drm/ttm/ttm_bo_vm.c
+++ b/drivers/gpu/drm/ttm/ttm_bo_vm.c
@@ -101,7 +101,7 @@ static int ttm_bo_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
101 struct page *page; 101 struct page *page;
102 int ret; 102 int ret;
103 int i; 103 int i;
104 unsigned long address = (unsigned long)vmf->virtual_address; 104 unsigned long address = vmf->address;
105 int retval = VM_FAULT_NOPAGE; 105 int retval = VM_FAULT_NOPAGE;
106 struct ttm_mem_type_manager *man = 106 struct ttm_mem_type_manager *man =
107 &bdev->man[bo->mem.mem_type]; 107 &bdev->man[bo->mem.mem_type];
diff --git a/drivers/gpu/drm/udl/udl_gem.c b/drivers/gpu/drm/udl/udl_gem.c
index 818e70712b18..3c0c4bd3f750 100644
--- a/drivers/gpu/drm/udl/udl_gem.c
+++ b/drivers/gpu/drm/udl/udl_gem.c
@@ -107,14 +107,13 @@ int udl_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
107 unsigned int page_offset; 107 unsigned int page_offset;
108 int ret = 0; 108 int ret = 0;
109 109
110 page_offset = ((unsigned long)vmf->virtual_address - vma->vm_start) >> 110 page_offset = (vmf->address - vma->vm_start) >> PAGE_SHIFT;
111 PAGE_SHIFT;
112 111
113 if (!obj->pages) 112 if (!obj->pages)
114 return VM_FAULT_SIGBUS; 113 return VM_FAULT_SIGBUS;
115 114
116 page = obj->pages[page_offset]; 115 page = obj->pages[page_offset];
117 ret = vm_insert_page(vma, (unsigned long)vmf->virtual_address, page); 116 ret = vm_insert_page(vma, vmf->address, page);
118 switch (ret) { 117 switch (ret) {
119 case -EAGAIN: 118 case -EAGAIN:
120 case 0: 119 case 0:
diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c
index f36c14729b55..477e07f0ecb6 100644
--- a/drivers/gpu/drm/vgem/vgem_drv.c
+++ b/drivers/gpu/drm/vgem/vgem_drv.c
@@ -54,7 +54,7 @@ static int vgem_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
54{ 54{
55 struct drm_vgem_gem_object *obj = vma->vm_private_data; 55 struct drm_vgem_gem_object *obj = vma->vm_private_data;
56 /* We don't use vmf->pgoff since that has the fake offset */ 56 /* We don't use vmf->pgoff since that has the fake offset */
57 unsigned long vaddr = (unsigned long)vmf->virtual_address; 57 unsigned long vaddr = vmf->address;
58 struct page *page; 58 struct page *page;
59 59
60 page = shmem_read_mapping_page(file_inode(obj->base.filp)->i_mapping, 60 page = shmem_read_mapping_page(file_inode(obj->base.filp)->i_mapping,
diff --git a/drivers/infiniband/core/umem_odp.c b/drivers/infiniband/core/umem_odp.c
index 1f0fe3217f23..6b079a31dced 100644
--- a/drivers/infiniband/core/umem_odp.c
+++ b/drivers/infiniband/core/umem_odp.c
@@ -578,7 +578,7 @@ int ib_umem_odp_map_dma_pages(struct ib_umem *umem, u64 user_virt, u64 bcnt,
578 */ 578 */
579 npages = get_user_pages_remote(owning_process, owning_mm, 579 npages = get_user_pages_remote(owning_process, owning_mm,
580 user_virt, gup_num_pages, 580 user_virt, gup_num_pages,
581 flags, local_page_list, NULL); 581 flags, local_page_list, NULL, NULL);
582 up_read(&owning_mm->mmap_sem); 582 up_read(&owning_mm->mmap_sem);
583 583
584 if (npages < 0) 584 if (npages < 0)
diff --git a/drivers/media/v4l2-core/videobuf-dma-sg.c b/drivers/media/v4l2-core/videobuf-dma-sg.c
index 1db0af6c7f94..ba63ca57ed7e 100644
--- a/drivers/media/v4l2-core/videobuf-dma-sg.c
+++ b/drivers/media/v4l2-core/videobuf-dma-sg.c
@@ -439,13 +439,12 @@ static int videobuf_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
439 struct page *page; 439 struct page *page;
440 440
441 dprintk(3, "fault: fault @ %08lx [vma %08lx-%08lx]\n", 441 dprintk(3, "fault: fault @ %08lx [vma %08lx-%08lx]\n",
442 (unsigned long)vmf->virtual_address, 442 vmf->address, vma->vm_start, vma->vm_end);
443 vma->vm_start, vma->vm_end);
444 443
445 page = alloc_page(GFP_USER | __GFP_DMA32); 444 page = alloc_page(GFP_USER | __GFP_DMA32);
446 if (!page) 445 if (!page)
447 return VM_FAULT_OOM; 446 return VM_FAULT_OOM;
448 clear_user_highpage(page, (unsigned long)vmf->virtual_address); 447 clear_user_highpage(page, vmf->address);
449 vmf->page = page; 448 vmf->page = page;
450 449
451 return 0; 450 return 0;
diff --git a/drivers/misc/cxl/context.c b/drivers/misc/cxl/context.c
index 5e506c19108a..5d36dcc7f47e 100644
--- a/drivers/misc/cxl/context.c
+++ b/drivers/misc/cxl/context.c
@@ -117,13 +117,12 @@ int cxl_context_init(struct cxl_context *ctx, struct cxl_afu *afu, bool master,
117static int cxl_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf) 117static int cxl_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
118{ 118{
119 struct cxl_context *ctx = vma->vm_file->private_data; 119 struct cxl_context *ctx = vma->vm_file->private_data;
120 unsigned long address = (unsigned long)vmf->virtual_address;
121 u64 area, offset; 120 u64 area, offset;
122 121
123 offset = vmf->pgoff << PAGE_SHIFT; 122 offset = vmf->pgoff << PAGE_SHIFT;
124 123
125 pr_devel("%s: pe: %i address: 0x%lx offset: 0x%llx\n", 124 pr_devel("%s: pe: %i address: 0x%lx offset: 0x%llx\n",
126 __func__, ctx->pe, address, offset); 125 __func__, ctx->pe, vmf->address, offset);
127 126
128 if (ctx->afu->current_mode == CXL_MODE_DEDICATED) { 127 if (ctx->afu->current_mode == CXL_MODE_DEDICATED) {
129 area = ctx->afu->psn_phys; 128 area = ctx->afu->psn_phys;
@@ -155,7 +154,7 @@ static int cxl_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
155 return VM_FAULT_SIGBUS; 154 return VM_FAULT_SIGBUS;
156 } 155 }
157 156
158 vm_insert_pfn(vma, address, (area + offset) >> PAGE_SHIFT); 157 vm_insert_pfn(vma, vmf->address, (area + offset) >> PAGE_SHIFT);
159 158
160 mutex_unlock(&ctx->status_mutex); 159 mutex_unlock(&ctx->status_mutex);
161 160
diff --git a/drivers/misc/sgi-gru/grumain.c b/drivers/misc/sgi-gru/grumain.c
index 33741ad4a74a..af2e077da4b8 100644
--- a/drivers/misc/sgi-gru/grumain.c
+++ b/drivers/misc/sgi-gru/grumain.c
@@ -932,7 +932,7 @@ int gru_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
932 unsigned long paddr, vaddr; 932 unsigned long paddr, vaddr;
933 unsigned long expires; 933 unsigned long expires;
934 934
935 vaddr = (unsigned long)vmf->virtual_address; 935 vaddr = vmf->address;
936 gru_dbg(grudev, "vma %p, vaddr 0x%lx (0x%lx)\n", 936 gru_dbg(grudev, "vma %p, vaddr 0x%lx (0x%lx)\n",
937 vma, vaddr, GSEG_BASE(vaddr)); 937 vma, vaddr, GSEG_BASE(vaddr));
938 STAT(nopfn); 938 STAT(nopfn);
diff --git a/drivers/net/ethernet/intel/igb/igb.h b/drivers/net/ethernet/intel/igb/igb.h
index d11093dce1b9..acbc3abe2ddd 100644
--- a/drivers/net/ethernet/intel/igb/igb.h
+++ b/drivers/net/ethernet/intel/igb/igb.h
@@ -210,7 +210,12 @@ struct igb_tx_buffer {
210struct igb_rx_buffer { 210struct igb_rx_buffer {
211 dma_addr_t dma; 211 dma_addr_t dma;
212 struct page *page; 212 struct page *page;
213 unsigned int page_offset; 213#if (BITS_PER_LONG > 32) || (PAGE_SIZE >= 65536)
214 __u32 page_offset;
215#else
216 __u16 page_offset;
217#endif
218 __u16 pagecnt_bias;
214}; 219};
215 220
216struct igb_tx_queue_stats { 221struct igb_tx_queue_stats {
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index cae24a8ccf47..a761001308dc 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -3947,11 +3947,23 @@ static void igb_clean_rx_ring(struct igb_ring *rx_ring)
3947 if (!buffer_info->page) 3947 if (!buffer_info->page)
3948 continue; 3948 continue;
3949 3949
3950 dma_unmap_page(rx_ring->dev, 3950 /* Invalidate cache lines that may have been written to by
3951 buffer_info->dma, 3951 * device so that we avoid corrupting memory.
3952 PAGE_SIZE, 3952 */
3953 DMA_FROM_DEVICE); 3953 dma_sync_single_range_for_cpu(rx_ring->dev,
3954 __free_page(buffer_info->page); 3954 buffer_info->dma,
3955 buffer_info->page_offset,
3956 IGB_RX_BUFSZ,
3957 DMA_FROM_DEVICE);
3958
3959 /* free resources associated with mapping */
3960 dma_unmap_page_attrs(rx_ring->dev,
3961 buffer_info->dma,
3962 PAGE_SIZE,
3963 DMA_FROM_DEVICE,
3964 DMA_ATTR_SKIP_CPU_SYNC);
3965 __page_frag_drain(buffer_info->page, 0,
3966 buffer_info->pagecnt_bias);
3955 3967
3956 buffer_info->page = NULL; 3968 buffer_info->page = NULL;
3957 } 3969 }
@@ -6812,12 +6824,6 @@ static void igb_reuse_rx_page(struct igb_ring *rx_ring,
6812 6824
6813 /* transfer page from old buffer to new buffer */ 6825 /* transfer page from old buffer to new buffer */
6814 *new_buff = *old_buff; 6826 *new_buff = *old_buff;
6815
6816 /* sync the buffer for use by the device */
6817 dma_sync_single_range_for_device(rx_ring->dev, old_buff->dma,
6818 old_buff->page_offset,
6819 IGB_RX_BUFSZ,
6820 DMA_FROM_DEVICE);
6821} 6827}
6822 6828
6823static inline bool igb_page_is_reserved(struct page *page) 6829static inline bool igb_page_is_reserved(struct page *page)
@@ -6829,13 +6835,15 @@ static bool igb_can_reuse_rx_page(struct igb_rx_buffer *rx_buffer,
6829 struct page *page, 6835 struct page *page,
6830 unsigned int truesize) 6836 unsigned int truesize)
6831{ 6837{
6838 unsigned int pagecnt_bias = rx_buffer->pagecnt_bias--;
6839
6832 /* avoid re-using remote pages */ 6840 /* avoid re-using remote pages */
6833 if (unlikely(igb_page_is_reserved(page))) 6841 if (unlikely(igb_page_is_reserved(page)))
6834 return false; 6842 return false;
6835 6843
6836#if (PAGE_SIZE < 8192) 6844#if (PAGE_SIZE < 8192)
6837 /* if we are only owner of page we can reuse it */ 6845 /* if we are only owner of page we can reuse it */
6838 if (unlikely(page_count(page) != 1)) 6846 if (unlikely(page_ref_count(page) != pagecnt_bias))
6839 return false; 6847 return false;
6840 6848
6841 /* flip page offset to other buffer */ 6849 /* flip page offset to other buffer */
@@ -6848,10 +6856,14 @@ static bool igb_can_reuse_rx_page(struct igb_rx_buffer *rx_buffer,
6848 return false; 6856 return false;
6849#endif 6857#endif
6850 6858
6851 /* Even if we own the page, we are not allowed to use atomic_set() 6859 /* If we have drained the page fragment pool we need to update
6852 * This would break get_page_unless_zero() users. 6860 * the pagecnt_bias and page count so that we fully restock the
6861 * number of references the driver holds.
6853 */ 6862 */
6854 page_ref_inc(page); 6863 if (unlikely(pagecnt_bias == 1)) {
6864 page_ref_add(page, USHRT_MAX);
6865 rx_buffer->pagecnt_bias = USHRT_MAX;
6866 }
6855 6867
6856 return true; 6868 return true;
6857} 6869}
@@ -6903,7 +6915,6 @@ static bool igb_add_rx_frag(struct igb_ring *rx_ring,
6903 return true; 6915 return true;
6904 6916
6905 /* this page cannot be reused so discard it */ 6917 /* this page cannot be reused so discard it */
6906 __free_page(page);
6907 return false; 6918 return false;
6908 } 6919 }
6909 6920
@@ -6938,6 +6949,13 @@ static struct sk_buff *igb_fetch_rx_buffer(struct igb_ring *rx_ring,
6938 page = rx_buffer->page; 6949 page = rx_buffer->page;
6939 prefetchw(page); 6950 prefetchw(page);
6940 6951
6952 /* we are reusing so sync this buffer for CPU use */
6953 dma_sync_single_range_for_cpu(rx_ring->dev,
6954 rx_buffer->dma,
6955 rx_buffer->page_offset,
6956 size,
6957 DMA_FROM_DEVICE);
6958
6941 if (likely(!skb)) { 6959 if (likely(!skb)) {
6942 void *page_addr = page_address(page) + 6960 void *page_addr = page_address(page) +
6943 rx_buffer->page_offset; 6961 rx_buffer->page_offset;
@@ -6962,21 +6980,18 @@ static struct sk_buff *igb_fetch_rx_buffer(struct igb_ring *rx_ring,
6962 prefetchw(skb->data); 6980 prefetchw(skb->data);
6963 } 6981 }
6964 6982
6965 /* we are reusing so sync this buffer for CPU use */
6966 dma_sync_single_range_for_cpu(rx_ring->dev,
6967 rx_buffer->dma,
6968 rx_buffer->page_offset,
6969 size,
6970 DMA_FROM_DEVICE);
6971
6972 /* pull page into skb */ 6983 /* pull page into skb */
6973 if (igb_add_rx_frag(rx_ring, rx_buffer, size, rx_desc, skb)) { 6984 if (igb_add_rx_frag(rx_ring, rx_buffer, size, rx_desc, skb)) {
6974 /* hand second half of page back to the ring */ 6985 /* hand second half of page back to the ring */
6975 igb_reuse_rx_page(rx_ring, rx_buffer); 6986 igb_reuse_rx_page(rx_ring, rx_buffer);
6976 } else { 6987 } else {
6977 /* we are not reusing the buffer so unmap it */ 6988 /* We are not reusing the buffer so unmap it and free
6978 dma_unmap_page(rx_ring->dev, rx_buffer->dma, 6989 * any references we are holding to it
6979 PAGE_SIZE, DMA_FROM_DEVICE); 6990 */
6991 dma_unmap_page_attrs(rx_ring->dev, rx_buffer->dma,
6992 PAGE_SIZE, DMA_FROM_DEVICE,
6993 DMA_ATTR_SKIP_CPU_SYNC);
6994 __page_frag_drain(page, 0, rx_buffer->pagecnt_bias);
6980 } 6995 }
6981 6996
6982 /* clear contents of rx_buffer */ 6997 /* clear contents of rx_buffer */
@@ -7234,7 +7249,8 @@ static bool igb_alloc_mapped_page(struct igb_ring *rx_ring,
7234 } 7249 }
7235 7250
7236 /* map page for use */ 7251 /* map page for use */
7237 dma = dma_map_page(rx_ring->dev, page, 0, PAGE_SIZE, DMA_FROM_DEVICE); 7252 dma = dma_map_page_attrs(rx_ring->dev, page, 0, PAGE_SIZE,
7253 DMA_FROM_DEVICE, DMA_ATTR_SKIP_CPU_SYNC);
7238 7254
7239 /* if mapping failed free memory back to system since 7255 /* if mapping failed free memory back to system since
7240 * there isn't much point in holding memory we can't use 7256 * there isn't much point in holding memory we can't use
@@ -7249,6 +7265,7 @@ static bool igb_alloc_mapped_page(struct igb_ring *rx_ring,
7249 bi->dma = dma; 7265 bi->dma = dma;
7250 bi->page = page; 7266 bi->page = page;
7251 bi->page_offset = 0; 7267 bi->page_offset = 0;
7268 bi->pagecnt_bias = 1;
7252 7269
7253 return true; 7270 return true;
7254} 7271}
@@ -7275,6 +7292,12 @@ void igb_alloc_rx_buffers(struct igb_ring *rx_ring, u16 cleaned_count)
7275 if (!igb_alloc_mapped_page(rx_ring, bi)) 7292 if (!igb_alloc_mapped_page(rx_ring, bi))
7276 break; 7293 break;
7277 7294
7295 /* sync the buffer for use by the device */
7296 dma_sync_single_range_for_device(rx_ring->dev, bi->dma,
7297 bi->page_offset,
7298 IGB_RX_BUFSZ,
7299 DMA_FROM_DEVICE);
7300
7278 /* Refresh the desc even if buffer_addrs didn't change 7301 /* Refresh the desc even if buffer_addrs didn't change
7279 * because each write-back erases this info. 7302 * because each write-back erases this info.
7280 */ 7303 */
diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/calib.c b/drivers/net/wireless/intel/iwlwifi/dvm/calib.c
index e9cef9de9ed8..c96f9b1d948a 100644
--- a/drivers/net/wireless/intel/iwlwifi/dvm/calib.c
+++ b/drivers/net/wireless/intel/iwlwifi/dvm/calib.c
@@ -900,8 +900,7 @@ static void iwlagn_gain_computation(struct iwl_priv *priv,
900 900
901 /* bound gain by 2 bits value max, 3rd bit is sign */ 901 /* bound gain by 2 bits value max, 3rd bit is sign */
902 data->delta_gain_code[i] = 902 data->delta_gain_code[i] =
903 min(abs(delta_g), 903 min(abs(delta_g), CHAIN_NOISE_MAX_DELTA_GAIN_CODE);
904 (s32) CHAIN_NOISE_MAX_DELTA_GAIN_CODE);
905 904
906 if (delta_g < 0) 905 if (delta_g < 0)
907 /* 906 /*
diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c
index d5cc3070e83f..b653451843c8 100644
--- a/drivers/staging/android/ion/ion.c
+++ b/drivers/staging/android/ion/ion.c
@@ -882,7 +882,7 @@ static int ion_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
882 BUG_ON(!buffer->pages || !buffer->pages[vmf->pgoff]); 882 BUG_ON(!buffer->pages || !buffer->pages[vmf->pgoff]);
883 883
884 pfn = page_to_pfn(ion_buffer_page(buffer->pages[vmf->pgoff])); 884 pfn = page_to_pfn(ion_buffer_page(buffer->pages[vmf->pgoff]));
885 ret = vm_insert_pfn(vma, (unsigned long)vmf->virtual_address, pfn); 885 ret = vm_insert_pfn(vma, vmf->address, pfn);
886 mutex_unlock(&buffer->lock); 886 mutex_unlock(&buffer->lock);
887 if (ret) 887 if (ret)
888 return VM_FAULT_ERROR; 888 return VM_FAULT_ERROR;
diff --git a/drivers/staging/lustre/lustre/llite/vvp_io.c b/drivers/staging/lustre/lustre/llite/vvp_io.c
index 0b6d388d8aa4..697cbfbe9374 100644
--- a/drivers/staging/lustre/lustre/llite/vvp_io.c
+++ b/drivers/staging/lustre/lustre/llite/vvp_io.c
@@ -1014,7 +1014,7 @@ static int vvp_io_kernel_fault(struct vvp_fault_io *cfio)
1014 "page %p map %p index %lu flags %lx count %u priv %0lx: got addr %p type NOPAGE\n", 1014 "page %p map %p index %lu flags %lx count %u priv %0lx: got addr %p type NOPAGE\n",
1015 vmf->page, vmf->page->mapping, vmf->page->index, 1015 vmf->page, vmf->page->mapping, vmf->page->index,
1016 (long)vmf->page->flags, page_count(vmf->page), 1016 (long)vmf->page->flags, page_count(vmf->page),
1017 page_private(vmf->page), vmf->virtual_address); 1017 page_private(vmf->page), (void *)vmf->address);
1018 if (unlikely(!(cfio->ft_flags & VM_FAULT_LOCKED))) { 1018 if (unlikely(!(cfio->ft_flags & VM_FAULT_LOCKED))) {
1019 lock_page(vmf->page); 1019 lock_page(vmf->page);
1020 cfio->ft_flags |= VM_FAULT_LOCKED; 1020 cfio->ft_flags |= VM_FAULT_LOCKED;
@@ -1025,12 +1025,12 @@ static int vvp_io_kernel_fault(struct vvp_fault_io *cfio)
1025 } 1025 }
1026 1026
1027 if (cfio->ft_flags & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) { 1027 if (cfio->ft_flags & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
1028 CDEBUG(D_PAGE, "got addr %p - SIGBUS\n", vmf->virtual_address); 1028 CDEBUG(D_PAGE, "got addr %p - SIGBUS\n", (void *)vmf->address);
1029 return -EFAULT; 1029 return -EFAULT;
1030 } 1030 }
1031 1031
1032 if (cfio->ft_flags & VM_FAULT_OOM) { 1032 if (cfio->ft_flags & VM_FAULT_OOM) {
1033 CDEBUG(D_PAGE, "got addr %p - OOM\n", vmf->virtual_address); 1033 CDEBUG(D_PAGE, "got addr %p - OOM\n", (void *)vmf->address);
1034 return -ENOMEM; 1034 return -ENOMEM;
1035 } 1035 }
1036 1036
diff --git a/drivers/usb/gadget/function/f_hid.c b/drivers/usb/gadget/function/f_hid.c
index 7abd70b2a588..3151d2a0fe59 100644
--- a/drivers/usb/gadget/function/f_hid.c
+++ b/drivers/usb/gadget/function/f_hid.c
@@ -905,7 +905,7 @@ static void hidg_free_inst(struct usb_function_instance *f)
905 mutex_lock(&hidg_ida_lock); 905 mutex_lock(&hidg_ida_lock);
906 906
907 hidg_put_minor(opts->minor); 907 hidg_put_minor(opts->minor);
908 if (idr_is_empty(&hidg_ida.idr)) 908 if (ida_is_empty(&hidg_ida))
909 ghid_cleanup(); 909 ghid_cleanup();
910 910
911 mutex_unlock(&hidg_ida_lock); 911 mutex_unlock(&hidg_ida_lock);
@@ -931,7 +931,7 @@ static struct usb_function_instance *hidg_alloc_inst(void)
931 931
932 mutex_lock(&hidg_ida_lock); 932 mutex_lock(&hidg_ida_lock);
933 933
934 if (idr_is_empty(&hidg_ida.idr)) { 934 if (ida_is_empty(&hidg_ida)) {
935 status = ghid_setup(NULL, HIDG_MINORS); 935 status = ghid_setup(NULL, HIDG_MINORS);
936 if (status) { 936 if (status) {
937 ret = ERR_PTR(status); 937 ret = ERR_PTR(status);
@@ -944,7 +944,7 @@ static struct usb_function_instance *hidg_alloc_inst(void)
944 if (opts->minor < 0) { 944 if (opts->minor < 0) {
945 ret = ERR_PTR(opts->minor); 945 ret = ERR_PTR(opts->minor);
946 kfree(opts); 946 kfree(opts);
947 if (idr_is_empty(&hidg_ida.idr)) 947 if (ida_is_empty(&hidg_ida))
948 ghid_cleanup(); 948 ghid_cleanup();
949 goto unlock; 949 goto unlock;
950 } 950 }
diff --git a/drivers/usb/gadget/function/f_printer.c b/drivers/usb/gadget/function/f_printer.c
index 0de36cda6e41..8054da9276dd 100644
--- a/drivers/usb/gadget/function/f_printer.c
+++ b/drivers/usb/gadget/function/f_printer.c
@@ -1265,7 +1265,7 @@ static void gprinter_free_inst(struct usb_function_instance *f)
1265 mutex_lock(&printer_ida_lock); 1265 mutex_lock(&printer_ida_lock);
1266 1266
1267 gprinter_put_minor(opts->minor); 1267 gprinter_put_minor(opts->minor);
1268 if (idr_is_empty(&printer_ida.idr)) 1268 if (ida_is_empty(&printer_ida))
1269 gprinter_cleanup(); 1269 gprinter_cleanup();
1270 1270
1271 mutex_unlock(&printer_ida_lock); 1271 mutex_unlock(&printer_ida_lock);
@@ -1289,7 +1289,7 @@ static struct usb_function_instance *gprinter_alloc_inst(void)
1289 1289
1290 mutex_lock(&printer_ida_lock); 1290 mutex_lock(&printer_ida_lock);
1291 1291
1292 if (idr_is_empty(&printer_ida.idr)) { 1292 if (ida_is_empty(&printer_ida)) {
1293 status = gprinter_setup(PRINTER_MINORS); 1293 status = gprinter_setup(PRINTER_MINORS);
1294 if (status) { 1294 if (status) {
1295 ret = ERR_PTR(status); 1295 ret = ERR_PTR(status);
@@ -1302,7 +1302,7 @@ static struct usb_function_instance *gprinter_alloc_inst(void)
1302 if (opts->minor < 0) { 1302 if (opts->minor < 0) {
1303 ret = ERR_PTR(opts->minor); 1303 ret = ERR_PTR(opts->minor);
1304 kfree(opts); 1304 kfree(opts);
1305 if (idr_is_empty(&printer_ida.idr)) 1305 if (ida_is_empty(&printer_ida))
1306 gprinter_cleanup(); 1306 gprinter_cleanup();
1307 goto unlock; 1307 goto unlock;
1308 } 1308 }
diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c
index 9815e45c23c4..f3726ba12aa6 100644
--- a/drivers/vfio/vfio_iommu_type1.c
+++ b/drivers/vfio/vfio_iommu_type1.c
@@ -362,7 +362,7 @@ static int vaddr_get_pfn(struct mm_struct *mm, unsigned long vaddr,
362 362
363 down_read(&mm->mmap_sem); 363 down_read(&mm->mmap_sem);
364 ret = get_user_pages_remote(NULL, mm, vaddr, 1, flags, page, 364 ret = get_user_pages_remote(NULL, mm, vaddr, 1, flags, page,
365 NULL); 365 NULL, NULL);
366 up_read(&mm->mmap_sem); 366 up_read(&mm->mmap_sem);
367 } 367 }
368 368
diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
index 702040fe2001..6e3306f4a525 100644
--- a/drivers/xen/privcmd.c
+++ b/drivers/xen/privcmd.c
@@ -602,7 +602,7 @@ static int privcmd_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
602{ 602{
603 printk(KERN_DEBUG "privcmd_fault: vma=%p %lx-%lx, pgoff=%lx, uv=%p\n", 603 printk(KERN_DEBUG "privcmd_fault: vma=%p %lx-%lx, pgoff=%lx, uv=%p\n",
604 vma, vma->vm_start, vma->vm_end, 604 vma, vma->vm_start, vma->vm_end,
605 vmf->pgoff, vmf->virtual_address); 605 vmf->pgoff, (void *)vmf->address);
606 606
607 return VM_FAULT_SIGBUS; 607 return VM_FAULT_SIGBUS;
608} 608}