lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <2b5e219a-85dc-4347-b5d0-86059181be93@web.de> Date: Mon, 6 Nov 2023 14:55:44 +0100 From: Markus Elfring <Markus.Elfring@....de> To: Wojciech Drewek <wojciech.drewek@...el.com>, Julia Lawall <Julia.Lawall@...ia.fr>, "David S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, Florian Fainelli <florian.fainelli@...adcom.com>, Jakub Kicinski <kuba@...nel.org>, Justin Chen <justin.chen@...adcom.com>, Paolo Abeni <pabeni@...hat.com>, bcm-kernel-feedback-list@...adcom.com, netdev@...r.kernel.org, kernel-janitors@...r.kernel.org Cc: cocci@...ia.fr, LKML <linux-kernel@...r.kernel.org>, Simon Horman <horms@...nel.org> Subject: Re: [PATCH] net: bcmasp: Use common error handling code in bcmasp_probe() … >> Add a jump target so that a bit of exception handling can be better >> reused at the end of this function. … >> +++ b/drivers/net/ethernet/broadcom/asp2/bcmasp.c >> @@ -1304,9 +1304,8 @@ static int bcmasp_probe(struct platform_device *pdev) >> intf = bcmasp_interface_create(priv, intf_node, i); >> if (!intf) { >> dev_err(dev, "Cannot create eth interface %d\n", i); >> - bcmasp_remove_intfs(priv); >> of_node_put(intf_node); >> - goto of_put_exit; >> + goto remove_intfs; >> } >> list_add_tail(&intf->list, &priv->intfs); >> i++; >> @@ -1331,8 +1330,7 @@ static int bcmasp_probe(struct platform_device *pdev) >> netdev_err(intf->ndev, >> "failed to register net_device: %d\n", ret); >> priv->destroy_wol(priv); >> - bcmasp_remove_intfs(priv); >> - goto of_put_exit; >> + goto remove_intfs; >> } >> count++; >> } >> @@ -1342,6 +1340,10 @@ static int bcmasp_probe(struct platform_device *pdev) >> of_put_exit: >> of_node_put(ports_node); >> return ret; >> + >> +remove_intfs: >> + bcmasp_remove_intfs(priv); >> + goto of_put_exit; > > Why is it at the end of the function? Just move it above of_put_exit and it will naturally > go to the of_node_put call. No need for "goto of_put_exit". I got the impression that the call of the function “bcmasp_remove_intfs” belongs only to exceptional cases in the shown control flow. Regards, Markus
Powered by blists - more mailing lists