aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2016-03-16 03:45:10 -0400
committerDavid S. Miller <davem@davemloft.net>2016-03-18 19:39:54 -0400
commit3af0d554c1ce11e9d0953381ff566271f9ab81a9 (patch)
treed263f7c327d7015572cefd06411d912bbd70e7ee
parent3004932c804255cc0ed97f2afa31c6d252fed89e (diff)
ethernet: micrel: fix some error codes
There were two issues here: 1) dma_mapping_error() return true/false but we want to return -ENOMEM 2) If dmaengine_prep_slave_sg() failed then "err" wasn't set but presumably that should be -ENOMEM as well. I changed the success path to "return 0;" instead of "return ret;" for clarity. Fixes: 94fe8c683cea ('ks8842: Support DMA when accessed via timberdale') Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/micrel/ks8842.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/ethernet/micrel/ks8842.c b/drivers/net/ethernet/micrel/ks8842.c
index 09d2e16fd6b0..cb0102dd7f70 100644
--- a/drivers/net/ethernet/micrel/ks8842.c
+++ b/drivers/net/ethernet/micrel/ks8842.c
@@ -561,8 +561,8 @@ static int __ks8842_start_new_rx_dma(struct net_device *netdev)
561 sg_init_table(sg, 1); 561 sg_init_table(sg, 1);
562 sg_dma_address(sg) = dma_map_single(adapter->dev, 562 sg_dma_address(sg) = dma_map_single(adapter->dev,
563 ctl->skb->data, DMA_BUFFER_SIZE, DMA_FROM_DEVICE); 563 ctl->skb->data, DMA_BUFFER_SIZE, DMA_FROM_DEVICE);
564 err = dma_mapping_error(adapter->dev, sg_dma_address(sg)); 564 if (dma_mapping_error(adapter->dev, sg_dma_address(sg))) {
565 if (unlikely(err)) { 565 err = -ENOMEM;
566 sg_dma_address(sg) = 0; 566 sg_dma_address(sg) = 0;
567 goto out; 567 goto out;
568 } 568 }
@@ -572,8 +572,10 @@ static int __ks8842_start_new_rx_dma(struct net_device *netdev)
572 ctl->adesc = dmaengine_prep_slave_sg(ctl->chan, 572 ctl->adesc = dmaengine_prep_slave_sg(ctl->chan,
573 sg, 1, DMA_DEV_TO_MEM, DMA_PREP_INTERRUPT); 573 sg, 1, DMA_DEV_TO_MEM, DMA_PREP_INTERRUPT);
574 574
575 if (!ctl->adesc) 575 if (!ctl->adesc) {
576 err = -ENOMEM;
576 goto out; 577 goto out;
578 }
577 579
578 ctl->adesc->callback_param = netdev; 580 ctl->adesc->callback_param = netdev;
579 ctl->adesc->callback = ks8842_dma_rx_cb; 581 ctl->adesc->callback = ks8842_dma_rx_cb;
@@ -584,7 +586,7 @@ static int __ks8842_start_new_rx_dma(struct net_device *netdev)
584 goto out; 586 goto out;
585 } 587 }
586 588
587 return err; 589 return 0;
588out: 590out:
589 if (sg_dma_address(sg)) 591 if (sg_dma_address(sg))
590 dma_unmap_single(adapter->dev, sg_dma_address(sg), 592 dma_unmap_single(adapter->dev, sg_dma_address(sg),