aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorYoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>2007-02-28 23:13:51 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-03-01 17:53:39 -0500
commit3a0ee2ce8cc4f962031d7520df960431c2f26a9c (patch)
tree1e3ede5fa99185d326c0b5644a6b55358c39184d /arch
parent17f0cd2f350b90b28301e27fe0e39f34bfe7e730 (diff)
[PATCH] fix memory leak in dma_declare_coherent_memory()
When it goes to free1_out, dev->dma_mem has not been freed. Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/cris/arch-v32/drivers/pci/dma.c2
-rw-r--r--arch/i386/kernel/pci-dma.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/arch/cris/arch-v32/drivers/pci/dma.c b/arch/cris/arch-v32/drivers/pci/dma.c
index 426b09878a05..70d3bf0c92e8 100644
--- a/arch/cris/arch-v32/drivers/pci/dma.c
+++ b/arch/cris/arch-v32/drivers/pci/dma.c
@@ -111,7 +111,7 @@ int dma_declare_coherent_memory(struct device *dev, dma_addr_t bus_addr,
111 return DMA_MEMORY_IO; 111 return DMA_MEMORY_IO;
112 112
113 free1_out: 113 free1_out:
114 kfree(dev->dma_mem->bitmap); 114 kfree(dev->dma_mem);
115 out: 115 out:
116 return 0; 116 return 0;
117} 117}
diff --git a/arch/i386/kernel/pci-dma.c b/arch/i386/kernel/pci-dma.c
index 41af692c1584..3ebcea033623 100644
--- a/arch/i386/kernel/pci-dma.c
+++ b/arch/i386/kernel/pci-dma.c
@@ -110,7 +110,7 @@ int dma_declare_coherent_memory(struct device *dev, dma_addr_t bus_addr,
110 return DMA_MEMORY_IO; 110 return DMA_MEMORY_IO;
111 111
112 free1_out: 112 free1_out:
113 kfree(dev->dma_mem->bitmap); 113 kfree(dev->dma_mem);
114 out: 114 out:
115 if (mem_base) 115 if (mem_base)
116 iounmap(mem_base); 116 iounmap(mem_base);