2021-10-18 08:56:42

by CGEL

[permalink] [raw]
Subject: [PATCH linux-next] e1000: Remove redundant statement

This statement is redundant in the context, because there will be
an identical statement next. otherwise, the variable initialization
is actually unnecessary.

The clang_analyzer complains as follows:

drivers/net/ethernet/intel/e1000/e1000_ethtool.c:1218:2 warning:

Value stored to 'ctrl_reg' is never read.

Reported-by: Zeal Robot <[email protected]>
Signed-off-by: luo penghao <[email protected]>
---
drivers/net/ethernet/intel/e1000/e1000_ethtool.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
index 0a57172..8951f2a 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
@@ -1215,8 +1215,6 @@ static int e1000_integrated_phy_loopback(struct e1000_adapter *adapter)
e1000_write_phy_reg(hw, PHY_CTRL, 0x8140);
}

- ctrl_reg = er32(CTRL);
-
/* force 1000, set loopback */
e1000_write_phy_reg(hw, PHY_CTRL, 0x4140);

--
2.15.2



2021-10-20 09:27:59

by Simon Horman

[permalink] [raw]
Subject: Re: [PATCH linux-next] e1000: Remove redundant statement

On Mon, Oct 18, 2021 at 08:53:05AM +0000, luo penghao wrote:

nit: s/linux-next/net-next/ in subject

> This statement is redundant in the context, because there will be
> an identical statement next. otherwise, the variable initialization
> is actually unnecessary.
>
> The clang_analyzer complains as follows:
>
> drivers/net/ethernet/intel/e1000/e1000_ethtool.c:1218:2 warning:
>
> Value stored to 'ctrl_reg' is never read.

I agree this does seem to be the case.

> Reported-by: Zeal Robot <[email protected]>
> Signed-off-by: luo penghao <[email protected]>

Reviewed-by: Simon Horman <[email protected]>

> ---
> drivers/net/ethernet/intel/e1000/e1000_ethtool.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
> index 0a57172..8951f2a 100644
> --- a/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
> +++ b/drivers/net/ethernet/intel/e1000/e1000_ethtool.c
> @@ -1215,8 +1215,6 @@ static int e1000_integrated_phy_loopback(struct e1000_adapter *adapter)
> e1000_write_phy_reg(hw, PHY_CTRL, 0x8140);
> }
>
> - ctrl_reg = er32(CTRL);
> -
> /* force 1000, set loopback */
> e1000_write_phy_reg(hw, PHY_CTRL, 0x4140);
>
> --
> 2.15.2
>
>

2021-10-20 18:10:45

by Jesse Brandeburg

[permalink] [raw]
Subject: Re: [Intel-wired-lan] [PATCH linux-next] e1000: Remove redundant statement

Apologies for the duplicates, mail from my intel account going out
through outlook.com is not being delivered.

On Wed, Oct 20, 2021 at 7:00 AM Simon Horman <[email protected]> wrote:

> > Value stored to 'ctrl_reg' is never read.
>
> I agree this does seem to be the case.
>
> > Reported-by: Zeal Robot <[email protected]>
> > Signed-off-by: luo penghao <[email protected]>
>
> Reviewed-by: Simon Horman <[email protected]>

Thanks for the review, but (davem/kuba) please do not apply.

> > @@ -1215,8 +1215,6 @@ static int e1000_integrated_phy_loopback(struct e1000_adapter *adapter)
> > e1000_write_phy_reg(hw, PHY_CTRL, 0x8140);
> > }
> >
> > - ctrl_reg = er32(CTRL);

Thanks for your patch, but this change is not safe. you're removing a
read that could do two things. The first is that the read "flushes"
the write just above to PCI (it's a PCI barrier), and the second is
that the read can have some side effects.

If this change must be done, the code should be to remove the
assignment to ctrl_reg, but leave the read, so the line would just
look like:
er32(CTRL);

This will get rid of the warning and not change the flow from the
hardware perspective.

> > -
> > /* force 1000, set loopback */
> > e1000_write_phy_reg(hw, PHY_CTRL, 0x4140);
> >

Please do not apply this.

2021-10-21 07:12:07

by Simon Horman

[permalink] [raw]
Subject: Re: [Intel-wired-lan] [PATCH linux-next] e1000: Remove redundant statement

On Wed, Oct 20, 2021 at 11:08:11AM -0700, Jesse Brandeburg wrote:
> Apologies for the duplicates, mail from my intel account going out
> through outlook.com is not being delivered.
>
> On Wed, Oct 20, 2021 at 7:00 AM Simon Horman <[email protected]> wrote:
>
> > > Value stored to 'ctrl_reg' is never read.
> >
> > I agree this does seem to be the case.
> >
> > > Reported-by: Zeal Robot <[email protected]>
> > > Signed-off-by: luo penghao <[email protected]>
> >
> > Reviewed-by: Simon Horman <[email protected]>
>
> Thanks for the review, but (davem/kuba) please do not apply.

Thanks, and sorry for misunderstanding the patch.

>
> > > @@ -1215,8 +1215,6 @@ static int e1000_integrated_phy_loopback(struct e1000_adapter *adapter)
> > > e1000_write_phy_reg(hw, PHY_CTRL, 0x8140);
> > > }
> > >
> > > - ctrl_reg = er32(CTRL);
>
> Thanks for your patch, but this change is not safe. you're removing a
> read that could do two things. The first is that the read "flushes"
> the write just above to PCI (it's a PCI barrier), and the second is
> that the read can have some side effects.
>
> If this change must be done, the code should be to remove the
> assignment to ctrl_reg, but leave the read, so the line would just
> look like:
> er32(CTRL);
>
> This will get rid of the warning and not change the flow from the
> hardware perspective.
>
> > > -
> > > /* force 1000, set loopback */
> > > e1000_write_phy_reg(hw, PHY_CTRL, 0x4140);
> > >
>
> Please do not apply this.
>