can: peak_pcmcia: fix error return code
authorPeter Senna Tschudin <peter.senna@gmail.com>
Wed, 3 Oct 2012 16:17:53 +0000 (18:17 +0200)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Thu, 4 Oct 2012 17:26:22 +0000 (19:26 +0200)
Convert a nonnegative error return code to a negative one, as returned
elsewhere in the function.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
(
if@p1 (\(ret < 0\|ret != 0\))
 { ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1
    when != &ret
*if(...)
{
  ... when != ret = e2
      when forall
 return ret;
}
// </smpl>

Signed-off-by: Peter Senna Tschudin <peter.senna@gmail.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/sja1000/peak_pcmcia.c

index ec6bd9d1b2af93edd67c4c8083e5c90648bbc581..272a85f32b14c86b040bf854b0df541e463a4af7 100644 (file)
@@ -686,8 +686,10 @@ static int __devinit pcan_probe(struct pcmcia_device *pdev)
 
        /* detect available channels */
        pcan_add_channels(card);
-       if (!card->chan_count)
+       if (!card->chan_count) {
+               err = -ENOMEM;
                goto probe_err_4;
+       }
 
        /* init the timer which controls the leds */
        init_timer(&card->led_timer);