Message ID | 9a2e5053-07ec-4a11-bef4-7a8b0f80f740@web.de (mailing list archive) |
---|---|
State | Rejected |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: hns: Use common error handling code in hns_mac_init() | expand |
Thanks, Reviewed-by: Jijie Shao<shaojijie@huawei.com> on 2024/3/1 23:04, Markus Elfring wrote: > From: Markus Elfring <elfring@users.sourceforge.net> > Date: Fri, 1 Mar 2024 15:48:25 +0100 > > Add a jump target so that a bit of exception handling can be better reused > at the end of this function implementation. > > Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> > --- > drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 15 +++++++++------ > 1 file changed, 9 insertions(+), 6 deletions(-) > > diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c > index f75668c47935..a4919aad45b6 100644 > --- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c > +++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c > @@ -1094,22 +1094,21 @@ int hns_mac_init(struct dsaf_device *dsaf_dev) > device_for_each_child_node(dsaf_dev->dev, child) { > ret = fwnode_property_read_u32(child, "reg", &port_id); > if (ret) { > - fwnode_handle_put(child); > dev_err(dsaf_dev->dev, > "get reg fail, ret=%d!\n", ret); > - return ret; > + goto put_fwnode; > } > if (port_id >= max_port_num) { > - fwnode_handle_put(child); > dev_err(dsaf_dev->dev, > "reg(%u) out of range!\n", port_id); > - return -EINVAL; > + ret = -EINVAL; > + goto put_fwnode; > } > mac_cb = devm_kzalloc(dsaf_dev->dev, sizeof(*mac_cb), > GFP_KERNEL); > if (!mac_cb) { > - fwnode_handle_put(child); > - return -ENOMEM; > + ret = -ENOMEM; > + goto put_fwnode; > } > mac_cb->fw_port = child; > mac_cb->mac_id = (u8)port_id; > @@ -1148,6 +1147,10 @@ int hns_mac_init(struct dsaf_device *dsaf_dev) > } > > return 0; > + > +put_fwnode: > + fwnode_handle_put(child); > + return ret; > } > > void hns_mac_uninit(struct dsaf_device *dsaf_dev) > -- > 2.44.0 >
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c index f75668c47935..a4919aad45b6 100644 --- a/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c +++ b/drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c @@ -1094,22 +1094,21 @@ int hns_mac_init(struct dsaf_device *dsaf_dev) device_for_each_child_node(dsaf_dev->dev, child) { ret = fwnode_property_read_u32(child, "reg", &port_id); if (ret) { - fwnode_handle_put(child); dev_err(dsaf_dev->dev, "get reg fail, ret=%d!\n", ret); - return ret; + goto put_fwnode; } if (port_id >= max_port_num) { - fwnode_handle_put(child); dev_err(dsaf_dev->dev, "reg(%u) out of range!\n", port_id); - return -EINVAL; + ret = -EINVAL; + goto put_fwnode; } mac_cb = devm_kzalloc(dsaf_dev->dev, sizeof(*mac_cb), GFP_KERNEL); if (!mac_cb) { - fwnode_handle_put(child); - return -ENOMEM; + ret = -ENOMEM; + goto put_fwnode; } mac_cb->fw_port = child; mac_cb->mac_id = (u8)port_id; @@ -1148,6 +1147,10 @@ int hns_mac_init(struct dsaf_device *dsaf_dev) } return 0; + +put_fwnode: + fwnode_handle_put(child); + return ret; } void hns_mac_uninit(struct dsaf_device *dsaf_dev)