linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] drivers: fix a memory leak
@ 2019-11-07 19:36 wu000273
  2019-11-08 14:47 ` Arnd Bergmann
  2019-11-09 13:08 ` kbuild test robot
  0 siblings, 2 replies; 3+ messages in thread
From: wu000273 @ 2019-11-07 19:36 UTC (permalink / raw)
  To: airlied; +Cc: arnd, gregkh, linux-kernel, wu000273

From: Qiushi Wu <wu000273@umn.edu>

In intel_gtt_setup_scratch_page(), "page" is not released if
pci_dma_mapping_error() return errors. This will lead to memory leak.
Fix this issue by freeing "page" before return.

Signed-off-by: Qiushi Wu <wu000273@umn.edu>
---
 drivers/char/agp/intel-gtt.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c
index c6271ce250b3..bd38b179157c 100644
--- a/drivers/char/agp/intel-gtt.c
+++ b/drivers/char/agp/intel-gtt.c
@@ -304,8 +304,10 @@ static int intel_gtt_setup_scratch_page(void)
 	if (intel_private.needs_dmar) {
 		dma_addr = pci_map_page(intel_private.pcidev, page, 0,
 				    PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
-		if (pci_dma_mapping_error(intel_private.pcidev, dma_addr))
+		if (pci_dma_mapping_error(intel_private.pcidev, dma_addr)) {
+			__free_pages(page);
 			return -EINVAL;
+		}
 
 		intel_private.scratch_page_dma = dma_addr;
 	} else
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-11-09 13:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-07 19:36 [PATCH] drivers: fix a memory leak wu000273
2019-11-08 14:47 ` Arnd Bergmann
2019-11-09 13:08 ` kbuild test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).