2020-10-29 08:57:33

by Zou Wei

[permalink] [raw]
Subject: [PATCH -next] net: stmmac: platform: remove useless if/else

Fix the following coccinelle report:

./drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c:233:6-8:
WARNING: possible condition with no effect (if == else)

Both branches are the same, so remove the else if/else altogether.

Reported-by: Hulk Robot <[email protected]>
Signed-off-by: Zou Wei <[email protected]>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
index af34a4c..f6c69d0 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
@@ -230,8 +230,6 @@ static int stmmac_mtl_setup(struct platform_device *pdev,
plat->tx_sched_algorithm = MTL_TX_ALGORITHM_WFQ;
else if (of_property_read_bool(tx_node, "snps,tx-sched-dwrr"))
plat->tx_sched_algorithm = MTL_TX_ALGORITHM_DWRR;
- else if (of_property_read_bool(tx_node, "snps,tx-sched-sp"))
- plat->tx_sched_algorithm = MTL_TX_ALGORITHM_SP;
else
plat->tx_sched_algorithm = MTL_TX_ALGORITHM_SP;

--
2.6.2


2020-10-29 12:38:50

by Andrew Lunn

[permalink] [raw]
Subject: Re: [PATCH -next] net: stmmac: platform: remove useless if/else

On Thu, Oct 29, 2020 at 10:33:52AM +0800, Zou Wei wrote:
> Fix the following coccinelle report:
>
> ./drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c:233:6-8:
> WARNING: possible condition with no effect (if == else)
>
> Both branches are the same, so remove the else if/else altogether.
>
> Reported-by: Hulk Robot <[email protected]>
> Signed-off-by: Zou Wei <[email protected]>
> ---
> drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> index af34a4c..f6c69d0 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> @@ -230,8 +230,6 @@ static int stmmac_mtl_setup(struct platform_device *pdev,
> plat->tx_sched_algorithm = MTL_TX_ALGORITHM_WFQ;
> else if (of_property_read_bool(tx_node, "snps,tx-sched-dwrr"))
> plat->tx_sched_algorithm = MTL_TX_ALGORITHM_DWRR;
> - else if (of_property_read_bool(tx_node, "snps,tx-sched-sp"))
> - plat->tx_sched_algorithm = MTL_TX_ALGORITHM_SP;
> else
> plat->tx_sched_algorithm = MTL_TX_ALGORITHM_SP;

I actually prefer the original code. Code is also documentation. It
documents the fact, if "snps,tx-sched-sp" is in device tree, we use
MTL_TX_ALGORITHM_SP, but otherwise we default to MTL_TX_ALGORITHM_SP.

As with my suggestion for forcedeth, i would move the default setting
to before the whole if/else if/else block to document it is the
default.

Or just consider this a false positive and leave it alone. I can see
value in the coccinelle script, but it is going to have a lot of false
positive cases, so i'm not sure there is value in working around them
all.

Andrew

2020-10-29 23:05:45

by Jakub Kicinski

[permalink] [raw]
Subject: Re: [PATCH -next] net: stmmac: platform: remove useless if/else

On Thu, 29 Oct 2020 13:34:45 +0100 Andrew Lunn wrote:
> On Thu, Oct 29, 2020 at 10:33:52AM +0800, Zou Wei wrote:
> > Fix the following coccinelle report:
> >
> > ./drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c:233:6-8:
> > WARNING: possible condition with no effect (if == else)
> >
> > Both branches are the same, so remove the else if/else altogether.
> >
> > Reported-by: Hulk Robot <[email protected]>
> > Signed-off-by: Zou Wei <[email protected]>
> > ---
> > drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 2 --
> > 1 file changed, 2 deletions(-)
> >
> > diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> > index af34a4c..f6c69d0 100644
> > --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> > +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> > @@ -230,8 +230,6 @@ static int stmmac_mtl_setup(struct platform_device *pdev,
> > plat->tx_sched_algorithm = MTL_TX_ALGORITHM_WFQ;
> > else if (of_property_read_bool(tx_node, "snps,tx-sched-dwrr"))
> > plat->tx_sched_algorithm = MTL_TX_ALGORITHM_DWRR;
> > - else if (of_property_read_bool(tx_node, "snps,tx-sched-sp"))
> > - plat->tx_sched_algorithm = MTL_TX_ALGORITHM_SP;
> > else
> > plat->tx_sched_algorithm = MTL_TX_ALGORITHM_SP;
>
> I actually prefer the original code. Code is also documentation. It
> documents the fact, if "snps,tx-sched-sp" is in device tree, we use
> MTL_TX_ALGORITHM_SP, but otherwise we default to MTL_TX_ALGORITHM_SP.
>
> As with my suggestion for forcedeth, i would move the default setting
> to before the whole if/else if/else block to document it is the
> default.
>
> Or just consider this a false positive and leave it alone. I can see
> value in the coccinelle script, but it is going to have a lot of false
> positive cases, so i'm not sure there is value in working around them
> all.

Annoyingly this is not the first time this exact patch is submitted :/

I think your forcedeth suggestion is a nice compromise.