Re: [PATCH] ath: Remove unneeded variable

From: Julian Calaby
Date: Wed Jun 14 2023 - 08:07:21 EST


Hi Mingtong,

On Wed, Jun 14, 2023 at 1:23 PM <baomingtong001@xxxxxxxxxx> wrote:
>
> Fix the following coccicheck warning:
>
> drivers/net/wireless/ath/ath9k/gpio.c:501:5-8: Unneeded variable: "len".

Coccinelle / Coccicheck is unable to accurately detect unused
variables as it can only analyse the code as it is written and
doesn't, for example, expand macros. This produces false positives
like the one you're trying to fix in this patch.

> Signed-off-by: Mingtong Bao <baomingtong001@xxxxxxxxxx>
> ---
> drivers/net/wireless/ath/ath9k/gpio.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath9k/gpio.c
> b/drivers/net/wireless/ath/ath9k/gpio.c
> index b457e52dd365..f3d1bc02e633 100644
> --- a/drivers/net/wireless/ath/ath9k/gpio.c
> +++ b/drivers/net/wireless/ath/ath9k/gpio.c
> @@ -498,14 +498,13 @@ static int ath9k_dump_legacy_btcoex(struct
> ath_softc *sc, u8 *buf, u32 size)
> {
>
> struct ath_btcoex *btcoex = &sc->btcoex;
> - u32 len = 0;
>
> ATH_DUMP_BTCOEX("Stomp Type", btcoex->bt_stomp_type);

ATH_DUMP_BTCOEX() is a macro that relies on a bunch of local variables
being defined, one of which is "len". If you'd compiled this code, you
would have spotted this problem immediately.

A "correct" solution to the "problem" here might be to add the local
variables to the macro parameters or move the definition of the macro
closer to where it's used so it's more obvious that some "magic" is
going on here.

As others have said, you need to fully understand what code is doing
before producing these sorts of cleanups, otherwise you'll produce
incorrect patches like this one.

Thanks,

--
Julian Calaby

Email: julian.calaby@xxxxxxxxx
Profile: http://www.google.com/profiles/julian.calaby/