]> git.dujemihanovic.xyz Git - linux.git/commitdiff
niu: Fix missing unwind goto in niu_alloc_channels()
authorHarshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Thu, 6 Apr 2023 06:31:18 +0000 (23:31 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 7 Apr 2023 07:17:54 +0000 (08:17 +0100)
Smatch reports: drivers/net/ethernet/sun/niu.c:4525
niu_alloc_channels() warn: missing unwind goto?

If niu_rbr_fill() fails, then we are directly returning 'err' without
freeing the channels.

Fix this by changing direct return to a goto 'out_err'.

Fixes: a3138df9f20e ("[NIU]: Add Sun Neptune ethernet driver.")
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sun/niu.c

index ab8b09a9ef61d62dbd71c0ee14332dde971a7e26..7a2e767762974cf9dc63d03c17a822630f8783ca 100644 (file)
@@ -4522,7 +4522,7 @@ static int niu_alloc_channels(struct niu *np)
 
                err = niu_rbr_fill(np, rp, GFP_KERNEL);
                if (err)
-                       return err;
+                       goto out_err;
        }
 
        tx_rings = kcalloc(num_tx_rings, sizeof(struct tx_ring_info),