summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Kogut <joseph.kogut@gmail.com>2021-05-18 14:28:59 -0700
committerThomas Zimmermann <tzimmermann@suse.de>2021-05-26 21:18:13 +0200
commit5562f75c49cc059b9b36b03bf0a61f11d2a8648f (patch)
treed5e2c0ed3b7750f71d7768c3e2d1d01501da4d00
parente0283ffaecc22705980abb592521b8440e5bd6be (diff)
drm: fix leaked dma handles after removing drm_pci_free
After removing drm_pci_alloc/free, some instances where drm_pci_free() would have kfreed the dma handle were skipped. Ensure these handles are freed properly. Signed-off-by: Joseph Kogut <joseph.kogut@gmail.com> Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Link: https://patchwork.freedesktop.org/patch/msgid/20210518212859.4148903-1-joseph.kogut@gmail.com
-rw-r--r--drivers/gpu/drm/drm_bufs.c1
-rw-r--r--drivers/gpu/drm/r128/ati_pcigart.c2
2 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c
index c23d7f7c0232..ae8e4d76209c 100644
--- a/drivers/gpu/drm/drm_bufs.c
+++ b/drivers/gpu/drm/drm_bufs.c
@@ -685,6 +685,7 @@ static void drm_cleanup_buf_error(struct drm_device *dev,
dmah->size,
dmah->vaddr,
dmah->busaddr);
+ kfree(dmah);
}
}
kfree(entry->seglist);
diff --git a/drivers/gpu/drm/r128/ati_pcigart.c b/drivers/gpu/drm/r128/ati_pcigart.c
index 5d73043446e3..0ecccf25a3c7 100644
--- a/drivers/gpu/drm/r128/ati_pcigart.c
+++ b/drivers/gpu/drm/r128/ati_pcigart.c
@@ -71,6 +71,8 @@ static void drm_ati_free_pcigart_table(struct drm_device *dev,
drm_dma_handle_t *dmah = gart_info->table_handle;
dma_free_coherent(dev->dev, dmah->size, dmah->vaddr, dmah->busaddr);
+ kfree(dmah);
+
gart_info->table_handle = NULL;
}