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
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
>
>
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.
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.
>