diff options
author | Sebastian Siewior <bigeasy@linutronix.de> | 2013-06-20 10:58:45 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-06-24 03:07:30 -0400 |
commit | 14bd076955f4e9cb911326d1b7291e3a2b40bdec (patch) | |
tree | 13ebc4335959adc0abe2ea414a77107c8a0acbe7 /drivers/net/ethernet/ti | |
parent | db4e9b2b98bac7adc7657ef94bb6d1a419a35571 (diff) |
net: eth: davicnci_cpdma: check dma map error
Since the DMA mapping may fail the caller should check the return value.
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/ti')
-rw-r--r-- | drivers/net/ethernet/ti/davinci_cpdma.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/ethernet/ti/davinci_cpdma.c b/drivers/net/ethernet/ti/davinci_cpdma.c index 49dfd592ac1e..053c84fd0853 100644 --- a/drivers/net/ethernet/ti/davinci_cpdma.c +++ b/drivers/net/ethernet/ti/davinci_cpdma.c | |||
@@ -705,6 +705,13 @@ int cpdma_chan_submit(struct cpdma_chan *chan, void *token, void *data, | |||
705 | } | 705 | } |
706 | 706 | ||
707 | buffer = dma_map_single(ctlr->dev, data, len, chan->dir); | 707 | buffer = dma_map_single(ctlr->dev, data, len, chan->dir); |
708 | ret = dma_mapping_error(ctlr->dev, buffer); | ||
709 | if (ret) { | ||
710 | cpdma_desc_free(ctlr->pool, desc, 1); | ||
711 | ret = -EINVAL; | ||
712 | goto unlock_ret; | ||
713 | } | ||
714 | |||
708 | mode = CPDMA_DESC_OWNER | CPDMA_DESC_SOP | CPDMA_DESC_EOP; | 715 | mode = CPDMA_DESC_OWNER | CPDMA_DESC_SOP | CPDMA_DESC_EOP; |
709 | cpdma_desc_to_port(chan, mode, directed); | 716 | cpdma_desc_to_port(chan, mode, directed); |
710 | 717 | ||