• Peter Senna Tschudin's avatar
    drivers/net/irda/mcs7780.c: fix error return code · 6734011f
    Peter Senna Tschudin authored
    The function mcs_probe() return 0 for success and negative value
    for most of its internal tests failures. There is one exception
    that is error case going to error2:. For this error case, the
    function abort its success execution path, but returns non negative
    value, making it difficult for a caller function to notice the error.
    
    This patch fixes the error case that do not return negative value.
    
    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: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6734011f
mcs7780.c 23.8 KB