mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-04 16:15:11 +00:00
drivers/net/irda/mcs7780.c: fix error return code
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: Peter Senna Tschudin <peter.senna@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
87286477c4
commit
6734011f3c
1 changed files with 3 additions and 1 deletions
|
@ -920,8 +920,10 @@ static int mcs_probe(struct usb_interface *intf,
|
|||
|
||||
ndev->netdev_ops = &mcs_netdev_ops;
|
||||
|
||||
if (!intf->cur_altsetting)
|
||||
if (!intf->cur_altsetting) {
|
||||
ret = -ENOMEM;
|
||||
goto error2;
|
||||
}
|
||||
|
||||
ret = mcs_find_endpoints(mcs, intf->cur_altsetting->endpoint,
|
||||
intf->cur_altsetting->desc.bNumEndpoints);
|
||||
|
|
Loading…
Reference in a new issue