Re: [v2] ethernet: ti: eliminate a bit of duplicate code in gbe_probe()

From: Markus Elfring
Date: Wed Apr 10 2019 - 03:57:05 EST


> v2: Massaged changelog a bit

* How does this wording fit to the adjusted commit subject?

* Would it have been nicer to send this version as a direct reply
to the previous update suggestion?


> @@ -3651,22 +3651,18 @@ static int gbe_probe(struct netcp_device *netcp_device, struct device *dev,
> if (ret)
> return ret;
>
> - interfaces = of_get_child_by_name(node, "interfaces");
> - if (!interfaces)
> - dev_err(dev, "could not find interfaces\n");
> -

How do you think about to skip a bit of statements as a reaction for
such a null pointer?
https://elixir.bootlin.com/linux/v5.1-rc4/source/drivers/net/ethernet/ti/netcp_ethss.c#L3562


> ret = netcp_txpipe_init(&gbe_dev->tx_pipe, netcp_device,
> gbe_dev->dma_chan_name, gbe_dev->tx_queue_id);
> - if (ret) {
> - of_node_put(interfaces);
> + if (ret)
> return ret;
> - }
>
> ret = netcp_txpipe_open(&gbe_dev->tx_pipe);
> - if (ret) {
> - of_node_put(interfaces);
> + if (ret)
> return ret;
> - }
> +
> + interfaces = of_get_child_by_name(node, "interfaces");
> + if (!interfaces)
> + dev_err(dev, "could not find interfaces\n");
>
> /* Create network interfaces */
> INIT_LIST_HEAD(&gbe_dev->gbe_intf_head);

Can code like the following trigger corresponding software development concerns?

for_each_child_of_node(interfaces, interface) {
â
}
of_node_put(interfaces);

if (!gbe_dev->num_slaves)
dev_warn(dev, "No network interface configured\n");


Regards,
Markus