瀏覽代碼

solo6x10: [P2M] Fix memory leak

Signed-off-by: Ben Collins <bcollins@bluecherry.net>
Ben Collins 14 年之前
父節點
當前提交
5bf68592e7
共有 1 個文件被更改,包括 4 次插入1 次删除
  1. 4 1
      drivers/staging/solo6x10/solo6010-p2m.c

+ 4 - 1
drivers/staging/solo6x10/solo6010-p2m.c

@@ -51,13 +51,16 @@ int solo_p2m_dma_t(struct solo6010_dev *solo_dev, u8 id, int wr,
 		   dma_addr_t dma_addr, u32 ext_addr, u32 size)
 		   dma_addr_t dma_addr, u32 ext_addr, u32 size)
 {
 {
 	struct p2m_desc *desc = kzalloc(sizeof(*desc) * 2, GFP_DMA);
 	struct p2m_desc *desc = kzalloc(sizeof(*desc) * 2, GFP_DMA);
+	int ret;
 
 
 	if (desc == NULL)
 	if (desc == NULL)
 		return -ENOMEM;
 		return -ENOMEM;
 
 
 	solo_p2m_push_desc(&desc[1], wr, dma_addr, ext_addr, size, 0, 0);
 	solo_p2m_push_desc(&desc[1], wr, dma_addr, ext_addr, size, 0, 0);
+	ret = solo_p2m_dma_desc(solo_dev, id, desc, 2);
+	kfree(desc);
 
 
-	return solo_p2m_dma_desc(solo_dev, id, desc, 2);
+	return ret;
 }
 }
 
 
 void solo_p2m_push_desc(struct p2m_desc *desc, int wr, dma_addr_t dma_addr,
 void solo_p2m_push_desc(struct p2m_desc *desc, int wr, dma_addr_t dma_addr,