projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
437c308
)
drm/i915: fix aliasing_ppgtt leak
author
Matthew Auld
<matthew.auld@intel.com>
Fri, 5 Aug 2016 18:04:40 +0000
(19:04 +0100)
committer
Daniel Vetter
<daniel.vetter@ffwll.ch>
Fri, 5 Aug 2016 20:39:32 +0000
(22:39 +0200)
In i915_ggtt_cleanup_hw we need to remember to free aliasing_ppgtt. This
fixes the following kmemleak message:
unreferenced object 0xffff880213cca000 (size 8192):
comm "modprobe", pid 1298, jiffies
4294745402
(age 703.930s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<
ffffffff817c808e
>] kmemleak_alloc+0x4e/0xb0
[<
ffffffff8121f9c2
>] kmem_cache_alloc_trace+0x142/0x1d0
[<
ffffffffa06d11ef
>] i915_gem_init_ggtt+0x10f/0x210 [i915]
[<
ffffffffa06d71bb
>] i915_gem_init+0x5b/0xd0 [i915]
[<
ffffffffa069749a
>] i915_driver_load+0x97a/0x1460 [i915]
[<
ffffffffa06a26ef
>] i915_pci_probe+0x4f/0x70 [i915]
[<
ffffffff81423015
>] local_pci_probe+0x45/0xa0
[<
ffffffff81424463
>] pci_device_probe+0x103/0x150
[<
ffffffff81515e6c
>] driver_probe_device+0x22c/0x440
[<
ffffffff81516151
>] __driver_attach+0xd1/0xf0
[<
ffffffff8151379c
>] bus_for_each_dev+0x6c/0xc0
[<
ffffffff8151555e
>] driver_attach+0x1e/0x20
[<
ffffffff81514fa3
>] bus_add_driver+0x1c3/0x280
[<
ffffffff81516aa0
>] driver_register+0x60/0xe0
[<
ffffffff8142297c
>] __pci_register_driver+0x4c/0x50
[<
ffffffffa013605b
>] 0xffffffffa013605b
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Fixes: b18b6bde300e ("drm/i915/bdw: Free PPGTT struct")
Cc: stable@vger.kernel.org
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link:
http://patchwork.freedesktop.org/patch/msgid/1470420280-21417-1-git-send-email-matthew.auld@intel.com
drivers/gpu/drm/i915/i915_gem_gtt.c
patch
|
blob
|
history
diff --git
a/drivers/gpu/drm/i915/i915_gem_gtt.c
b/drivers/gpu/drm/i915/i915_gem_gtt.c
index 8b4f2f35019c0b4e469c996a76e8f13e0eab5712..18c7c964476148d08ee51621e8c8bc66d188140b 100644
(file)
--- a/
drivers/gpu/drm/i915/i915_gem_gtt.c
+++ b/
drivers/gpu/drm/i915/i915_gem_gtt.c
@@
-2797,6
+2797,7
@@
void i915_ggtt_cleanup_hw(struct drm_i915_private *dev_priv)
struct i915_hw_ppgtt *ppgtt = dev_priv->mm.aliasing_ppgtt;
ppgtt->base.cleanup(&ppgtt->base);
+ kfree(ppgtt);
}
i915_gem_cleanup_stolen(&dev_priv->drm);