Skip to contentSkip to conversation

dma/timb_dma: fixup error handling in td_alloc_init_desc()

PATCH New Dan Carpenter 1 participant 1 message May 25, 2010

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/2 dma/timb_dma: fixup error handling in td_alloc_init_desc()

The original code tried to kfree(td_desc->desc_list) when td_desc was NULL so I re-arranged it.

drivers/dma/timb_dma.c +6 -4
index 0172fa3..3e101a0 100644
@@ -390,7 +390,7 @@ static struct timb_dma_desc *td_alloc_init_desc(struct timb_dma_chan *td_chan)
 	td_desc->desc_list = kzalloc(td_desc->desc_list_len, GFP_KERNEL);
 	if (!td_desc->desc_list) {
 		dev_err(chan2dev(chan), "Failed to alloc descriptor\n");
-		goto err;
+		goto err_desc;
 	}
 
 	dma_async_tx_descriptor_init(&td_desc->txd, chan);
@@ -403,14 +403,16 @@ static struct timb_dma_desc *td_alloc_init_desc(struct timb_dma_chan *td_chan)
 	err = dma_mapping_error(chan2dmadev(chan), td_desc->txd.phys);
 	if (err) {
 		dev_err(chan2dev(chan), "DMA mapping error: %d\n", err);
-		goto err;
+		goto err_list;
 	}
 
 	return td_desc;
-err:
+
+err_list:
 	kfree(td_desc->desc_list);
+err_desc:
 	kfree(td_desc);
-
+err:
 	return NULL;
 
 }