aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-04-06 22:01:47 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-04-06 22:01:47 -0400
commit053f78d359953be40043972c98e16b3f1cd9fc27 (patch)
tree80185e1554da6362dd3ca411a3e724864c59dc05 /drivers/gpu
parent1bb025f6db789ea0bb674eaed15ee843ef0b2e88 (diff)
parent3d085c7413d32bb6895e5b9b5ee6a7d2180159c5 (diff)
Merge tag 'lkdtm-4.6-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux into char-misc-linus
Kees briefly writes: fixes some possible memory allocation leaks on error paths
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c2
-rw-r--r--drivers/gpu/drm/armada/armada_gem.c4
-rw-r--r--drivers/gpu/drm/drm_gem.c4
-rw-r--r--drivers/gpu/drm/gma500/cdv_intel_dp.c2
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c8
-rw-r--r--drivers/gpu/drm/i915/i915_gem_userptr.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_ttm.c2
-rw-r--r--drivers/gpu/drm/ttm/ttm_tt.c4
-rw-r--r--drivers/gpu/drm/via/via_dmablit.c2
9 files changed, 15 insertions, 15 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index f1a55d1888cb..6f3369de232f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -622,7 +622,7 @@ static void amdgpu_ttm_tt_unpin_userptr(struct ttm_tt *ttm)
622 set_page_dirty(page); 622 set_page_dirty(page);
623 623
624 mark_page_accessed(page); 624 mark_page_accessed(page);
625 page_cache_release(page); 625 put_page(page);
626 } 626 }
627 627
628 sg_free_table(ttm->sg); 628 sg_free_table(ttm->sg);
diff --git a/drivers/gpu/drm/armada/armada_gem.c b/drivers/gpu/drm/armada/armada_gem.c
index 6e731db31aa4..aca7f9cc6109 100644
--- a/drivers/gpu/drm/armada/armada_gem.c
+++ b/drivers/gpu/drm/armada/armada_gem.c
@@ -481,7 +481,7 @@ armada_gem_prime_map_dma_buf(struct dma_buf_attachment *attach,
481 481
482 release: 482 release:
483 for_each_sg(sgt->sgl, sg, num, i) 483 for_each_sg(sgt->sgl, sg, num, i)
484 page_cache_release(sg_page(sg)); 484 put_page(sg_page(sg));
485 free_table: 485 free_table:
486 sg_free_table(sgt); 486 sg_free_table(sgt);
487 free_sgt: 487 free_sgt:
@@ -502,7 +502,7 @@ static void armada_gem_prime_unmap_dma_buf(struct dma_buf_attachment *attach,
502 if (dobj->obj.filp) { 502 if (dobj->obj.filp) {
503 struct scatterlist *sg; 503 struct scatterlist *sg;
504 for_each_sg(sgt->sgl, sg, sgt->nents, i) 504 for_each_sg(sgt->sgl, sg, sgt->nents, i)
505 page_cache_release(sg_page(sg)); 505 put_page(sg_page(sg));
506 } 506 }
507 507
508 sg_free_table(sgt); 508 sg_free_table(sgt);
diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
index 2e8c77e71e1f..da0c5320789f 100644
--- a/drivers/gpu/drm/drm_gem.c
+++ b/drivers/gpu/drm/drm_gem.c
@@ -534,7 +534,7 @@ struct page **drm_gem_get_pages(struct drm_gem_object *obj)
534 534
535fail: 535fail:
536 while (i--) 536 while (i--)
537 page_cache_release(pages[i]); 537 put_page(pages[i]);
538 538
539 drm_free_large(pages); 539 drm_free_large(pages);
540 return ERR_CAST(p); 540 return ERR_CAST(p);
@@ -569,7 +569,7 @@ void drm_gem_put_pages(struct drm_gem_object *obj, struct page **pages,
569 mark_page_accessed(pages[i]); 569 mark_page_accessed(pages[i]);
570 570
571 /* Undo the reference we took when populating the table */ 571 /* Undo the reference we took when populating the table */
572 page_cache_release(pages[i]); 572 put_page(pages[i]);
573 } 573 }
574 574
575 drm_free_large(pages); 575 drm_free_large(pages);
diff --git a/drivers/gpu/drm/gma500/cdv_intel_dp.c b/drivers/gpu/drm/gma500/cdv_intel_dp.c
index 7bb1f1aff932..c52f9adf5e04 100644
--- a/drivers/gpu/drm/gma500/cdv_intel_dp.c
+++ b/drivers/gpu/drm/gma500/cdv_intel_dp.c
@@ -220,7 +220,7 @@ i2c_dp_aux_prepare_bus(struct i2c_adapter *adapter)
220 * FIXME: This is the old dp aux helper, gma500 is the last driver that needs to 220 * FIXME: This is the old dp aux helper, gma500 is the last driver that needs to
221 * be ported over to the new helper code in drm_dp_helper.c like i915 or radeon. 221 * be ported over to the new helper code in drm_dp_helper.c like i915 or radeon.
222 */ 222 */
223static int __deprecated 223static int
224i2c_dp_aux_add_bus(struct i2c_adapter *adapter) 224i2c_dp_aux_add_bus(struct i2c_adapter *adapter)
225{ 225{
226 int error; 226 int error;
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 3d31d3ac589e..dabc08987b5e 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -177,7 +177,7 @@ i915_gem_object_get_pages_phys(struct drm_i915_gem_object *obj)
177 drm_clflush_virt_range(vaddr, PAGE_SIZE); 177 drm_clflush_virt_range(vaddr, PAGE_SIZE);
178 kunmap_atomic(src); 178 kunmap_atomic(src);
179 179
180 page_cache_release(page); 180 put_page(page);
181 vaddr += PAGE_SIZE; 181 vaddr += PAGE_SIZE;
182 } 182 }
183 183
@@ -243,7 +243,7 @@ i915_gem_object_put_pages_phys(struct drm_i915_gem_object *obj)
243 set_page_dirty(page); 243 set_page_dirty(page);
244 if (obj->madv == I915_MADV_WILLNEED) 244 if (obj->madv == I915_MADV_WILLNEED)
245 mark_page_accessed(page); 245 mark_page_accessed(page);
246 page_cache_release(page); 246 put_page(page);
247 vaddr += PAGE_SIZE; 247 vaddr += PAGE_SIZE;
248 } 248 }
249 obj->dirty = 0; 249 obj->dirty = 0;
@@ -2206,7 +2206,7 @@ i915_gem_object_put_pages_gtt(struct drm_i915_gem_object *obj)
2206 if (obj->madv == I915_MADV_WILLNEED) 2206 if (obj->madv == I915_MADV_WILLNEED)
2207 mark_page_accessed(page); 2207 mark_page_accessed(page);
2208 2208
2209 page_cache_release(page); 2209 put_page(page);
2210 } 2210 }
2211 obj->dirty = 0; 2211 obj->dirty = 0;
2212 2212
@@ -2346,7 +2346,7 @@ i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)
2346err_pages: 2346err_pages:
2347 sg_mark_end(sg); 2347 sg_mark_end(sg);
2348 for_each_sg_page(st->sgl, &sg_iter, st->nents, 0) 2348 for_each_sg_page(st->sgl, &sg_iter, st->nents, 0)
2349 page_cache_release(sg_page_iter_page(&sg_iter)); 2349 put_page(sg_page_iter_page(&sg_iter));
2350 sg_free_table(st); 2350 sg_free_table(st);
2351 kfree(st); 2351 kfree(st);
2352 2352
diff --git a/drivers/gpu/drm/i915/i915_gem_userptr.c b/drivers/gpu/drm/i915/i915_gem_userptr.c
index 6be40f3ba2c7..18ba8139e922 100644
--- a/drivers/gpu/drm/i915/i915_gem_userptr.c
+++ b/drivers/gpu/drm/i915/i915_gem_userptr.c
@@ -683,7 +683,7 @@ i915_gem_userptr_put_pages(struct drm_i915_gem_object *obj)
683 set_page_dirty(page); 683 set_page_dirty(page);
684 684
685 mark_page_accessed(page); 685 mark_page_accessed(page);
686 page_cache_release(page); 686 put_page(page);
687 } 687 }
688 obj->dirty = 0; 688 obj->dirty = 0;
689 689
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
index c008312e1bcd..7dddfdce85e6 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -615,7 +615,7 @@ static void radeon_ttm_tt_unpin_userptr(struct ttm_tt *ttm)
615 set_page_dirty(page); 615 set_page_dirty(page);
616 616
617 mark_page_accessed(page); 617 mark_page_accessed(page);
618 page_cache_release(page); 618 put_page(page);
619 } 619 }
620 620
621 sg_free_table(ttm->sg); 621 sg_free_table(ttm->sg);
diff --git a/drivers/gpu/drm/ttm/ttm_tt.c b/drivers/gpu/drm/ttm/ttm_tt.c
index 4e19d0f9cc30..077ae9b2865d 100644
--- a/drivers/gpu/drm/ttm/ttm_tt.c
+++ b/drivers/gpu/drm/ttm/ttm_tt.c
@@ -311,7 +311,7 @@ int ttm_tt_swapin(struct ttm_tt *ttm)
311 goto out_err; 311 goto out_err;
312 312
313 copy_highpage(to_page, from_page); 313 copy_highpage(to_page, from_page);
314 page_cache_release(from_page); 314 put_page(from_page);
315 } 315 }
316 316
317 if (!(ttm->page_flags & TTM_PAGE_FLAG_PERSISTENT_SWAP)) 317 if (!(ttm->page_flags & TTM_PAGE_FLAG_PERSISTENT_SWAP))
@@ -361,7 +361,7 @@ int ttm_tt_swapout(struct ttm_tt *ttm, struct file *persistent_swap_storage)
361 copy_highpage(to_page, from_page); 361 copy_highpage(to_page, from_page);
362 set_page_dirty(to_page); 362 set_page_dirty(to_page);
363 mark_page_accessed(to_page); 363 mark_page_accessed(to_page);
364 page_cache_release(to_page); 364 put_page(to_page);
365 } 365 }
366 366
367 ttm_tt_unpopulate(ttm); 367 ttm_tt_unpopulate(ttm);
diff --git a/drivers/gpu/drm/via/via_dmablit.c b/drivers/gpu/drm/via/via_dmablit.c
index e797dfc07ae3..7e2a12c4fed2 100644
--- a/drivers/gpu/drm/via/via_dmablit.c
+++ b/drivers/gpu/drm/via/via_dmablit.c
@@ -188,7 +188,7 @@ via_free_sg_info(struct pci_dev *pdev, drm_via_sg_info_t *vsg)
188 if (NULL != (page = vsg->pages[i])) { 188 if (NULL != (page = vsg->pages[i])) {
189 if (!PageReserved(page) && (DMA_FROM_DEVICE == vsg->direction)) 189 if (!PageReserved(page) && (DMA_FROM_DEVICE == vsg->direction))
190 SetPageDirty(page); 190 SetPageDirty(page);
191 page_cache_release(page); 191 put_page(page);
192 } 192 }
193 } 193 }
194 case dr_via_pages_alloc: 194 case dr_via_pages_alloc: