cosa: fix error return code
authorJulia Lawall <julia.lawall@lip6.fr>
Sun, 5 Apr 2015 12:06:28 +0000 (14:06 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 7 Apr 2015 19:21:55 +0000 (15:21 -0400)
Return a negative error code on failure.

A simplified version of the semantic match that finds this problem 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>
drivers/net/wan/cosa.c

index 88d121d43c08bedf2efc3265964188cf2b7f94a7..bcfa01add7cc479ca25d5f2f198f9623fc966415 100644 (file)
@@ -579,6 +579,7 @@ static int cosa_probe(int base, int irq, int dma)
                /* Register the network interface */
                if (!(chan->netdev = alloc_hdlcdev(chan))) {
                        pr_warn("%s: alloc_hdlcdev failed\n", chan->name);
+                       err = -ENOMEM;
                        goto err_hdlcdev;
                }
                dev_to_hdlc(chan->netdev)->attach = cosa_net_attach;