diff options
author | Julia Lawall <julia.lawall@lip6.fr> | 2015-12-26 14:12:13 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-12-29 15:31:10 -0500 |
commit | c1e3334fa4b2891752f1367b47a60209353ba2f5 (patch) | |
tree | 6342137bed68dc308aae74b7501ebcd2e5fced86 | |
parent | 90c7afc96cbbd77f44094b5b651261968e97de67 (diff) |
drivers: net: cpsw: fix error return code
Propagate the return value of platform_get_irq on failure.
A simplified version of the semantic match that finds the two cases where
no error code is returned at all is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@@
identifier ret; expression e1,e2;
@@
(
if (\(ret < 0\|ret != 0\))
{ ... return ret; }
|
ret = 0
)
... when != ret = e1
when != &ret
*if(...)
{
... when != ret = e2
when forall
return ret;
}
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/ti/cpsw.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c index 3b489caea096..fc958067d10a 100644 --- a/drivers/net/ethernet/ti/cpsw.c +++ b/drivers/net/ethernet/ti/cpsw.c | |||
@@ -2427,7 +2427,7 @@ static int cpsw_probe(struct platform_device *pdev) | |||
2427 | ndev->irq = platform_get_irq(pdev, 1); | 2427 | ndev->irq = platform_get_irq(pdev, 1); |
2428 | if (ndev->irq < 0) { | 2428 | if (ndev->irq < 0) { |
2429 | dev_err(priv->dev, "error getting irq resource\n"); | 2429 | dev_err(priv->dev, "error getting irq resource\n"); |
2430 | ret = -ENOENT; | 2430 | ret = ndev->irq; |
2431 | goto clean_ale_ret; | 2431 | goto clean_ale_ret; |
2432 | } | 2432 | } |
2433 | 2433 | ||
@@ -2448,8 +2448,10 @@ static int cpsw_probe(struct platform_device *pdev) | |||
2448 | 2448 | ||
2449 | /* RX IRQ */ | 2449 | /* RX IRQ */ |
2450 | irq = platform_get_irq(pdev, 1); | 2450 | irq = platform_get_irq(pdev, 1); |
2451 | if (irq < 0) | 2451 | if (irq < 0) { |
2452 | ret = irq; | ||
2452 | goto clean_ale_ret; | 2453 | goto clean_ale_ret; |
2454 | } | ||
2453 | 2455 | ||
2454 | priv->irqs_table[0] = irq; | 2456 | priv->irqs_table[0] = irq; |
2455 | ret = devm_request_irq(&pdev->dev, irq, cpsw_rx_interrupt, | 2457 | ret = devm_request_irq(&pdev->dev, irq, cpsw_rx_interrupt, |
@@ -2461,8 +2463,10 @@ static int cpsw_probe(struct platform_device *pdev) | |||
2461 | 2463 | ||
2462 | /* TX IRQ */ | 2464 | /* TX IRQ */ |
2463 | irq = platform_get_irq(pdev, 2); | 2465 | irq = platform_get_irq(pdev, 2); |
2464 | if (irq < 0) | 2466 | if (irq < 0) { |
2467 | ret = irq; | ||
2465 | goto clean_ale_ret; | 2468 | goto clean_ale_ret; |
2469 | } | ||
2466 | 2470 | ||
2467 | priv->irqs_table[1] = irq; | 2471 | priv->irqs_table[1] = irq; |
2468 | ret = devm_request_irq(&pdev->dev, irq, cpsw_tx_interrupt, | 2472 | ret = devm_request_irq(&pdev->dev, irq, cpsw_tx_interrupt, |