2021-04-29 10:28:24

by Jiapeng Chong

[permalink] [raw]
Subject: [PATCH] net: macb: Remove redundant assignment to w0

Variable w0 is set to zero but these values is not used as it is
overwritten later on, hence redundant assignment can be removed.

Cleans up the following clang-analyzer warning:

drivers/net/ethernet/cadence/macb_main.c:3265:3: warning: Value stored
to 'w0' is never read [clang-analyzer-deadcode.DeadStores].

drivers/net/ethernet/cadence/macb_main.c:3251:3: warning: Value stored
to 'w0' is never read [clang-analyzer-deadcode.DeadStores].

Reported-by: Abaci Robot <[email protected]>
Signed-off-by: Jiapeng Chong <[email protected]>
---
drivers/net/ethernet/cadence/macb_main.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index 0f6a6cb..741b2e3 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -3248,7 +3248,6 @@ static void gem_prog_cmp_regs(struct macb *bp, struct ethtool_rx_flow_spec *fs)
/* ignore field if any masking set */
if (tp4sp_m->ip4src == 0xFFFFFFFF) {
/* 1st compare reg - IP source address */
- w0 = 0;
w1 = 0;
w0 = tp4sp_v->ip4src;
w1 = GEM_BFINS(T2DISMSK, 1, w1); /* 32-bit compare */
@@ -3262,7 +3261,6 @@ static void gem_prog_cmp_regs(struct macb *bp, struct ethtool_rx_flow_spec *fs)
/* ignore field if any masking set */
if (tp4sp_m->ip4dst == 0xFFFFFFFF) {
/* 2nd compare reg - IP destination address */
- w0 = 0;
w1 = 0;
w0 = tp4sp_v->ip4dst;
w1 = GEM_BFINS(T2DISMSK, 1, w1); /* 32-bit compare */
--
1.8.3.1


2021-04-29 16:56:47

by Nicolas Ferre

[permalink] [raw]
Subject: Re: [PATCH] net: macb: Remove redundant assignment to w0

On 29/04/2021 at 12:26, Jiapeng Chong wrote:
> Variable w0 is set to zero but these values is not used as it is
> overwritten later on, hence redundant assignment can be removed.
>
> Cleans up the following clang-analyzer warning:
>
> drivers/net/ethernet/cadence/macb_main.c:3265:3: warning: Value stored
> to 'w0' is never read [clang-analyzer-deadcode.DeadStores].
>
> drivers/net/ethernet/cadence/macb_main.c:3251:3: warning: Value stored
> to 'w0' is never read [clang-analyzer-deadcode.DeadStores].
>
> Reported-by: Abaci Robot <[email protected]>
> Signed-off-by: Jiapeng Chong <[email protected]>

NACK: there seems to be a massive bug in this code as I have the strong
feeling that '=' must be replaces by '|=' in subsequent assignment of
w0, W1... otherwise I don't understand the meaning of all this!

I don't know how RX filtering must be done in this controller neither
how to test it so if nobody steps in to fix this, I'll probably have to
do a patch based on datasheet only.

Please comment if you have a view on this.

Best regards,
Nicolas

> ---
> drivers/net/ethernet/cadence/macb_main.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
> index 0f6a6cb..741b2e3 100644
> --- a/drivers/net/ethernet/cadence/macb_main.c
> +++ b/drivers/net/ethernet/cadence/macb_main.c
> @@ -3248,7 +3248,6 @@ static void gem_prog_cmp_regs(struct macb *bp, struct ethtool_rx_flow_spec *fs)
> /* ignore field if any masking set */
> if (tp4sp_m->ip4src == 0xFFFFFFFF) {
> /* 1st compare reg - IP source address */
> - w0 = 0;
> w1 = 0;
> w0 = tp4sp_v->ip4src;
> w1 = GEM_BFINS(T2DISMSK, 1, w1); /* 32-bit compare */
> @@ -3262,7 +3261,6 @@ static void gem_prog_cmp_regs(struct macb *bp, struct ethtool_rx_flow_spec *fs)
> /* ignore field if any masking set */
> if (tp4sp_m->ip4dst == 0xFFFFFFFF) {
> /* 2nd compare reg - IP destination address */
> - w0 = 0;
> w1 = 0;
> w0 = tp4sp_v->ip4dst;
> w1 = GEM_BFINS(T2DISMSK, 1, w1); /* 32-bit compare */
> --
> 1.8.3.1
>


--
Nicolas Ferre