Re: [PATCH v3 2/2] ath9k: htc: clean up *STAT_* macros

Pavel Skripkin
2022-02-08T15:49:38Z

Hi Toke,

On 2/8/22 18:32, Toke Høiland-Jørgensen wrote:
>> It seems that these macros (both the original and the new) aren't
>> following the guidance from the Coding Style which tells us under
>> "Things to avoid when using macros" that we should avoid "macros that
>> depend on having a local variable with a magic name". Wouldn't these
>> macros be "better" is they included the hif_dev/priv as arguments rather
>> than being "magic"?
>
> Hmm, yeah, that's a good point; looks like the non-HTC ath9k stats
> macros have already been converted to take the container as a parameter,
> so taking this opportunity to fix these macros is not a bad idea. While
> we're at it, let's switch to the do{} while(0) syntax the other macros
> are using instead of that weird usage of ?:. And there's not really any
> reason for the duplication between ADD/INC either. So I'm thinking
> something like:
>
> #define __STAT_SAVE(_priv, _member, _n) do { if (_priv) (_priv)->_member += (_n); } while(0)
>
> #define TX_STAT_ADD(_priv, _c, _a) __STAT_SAVE(_priv, debug.tx_stats._c, _a)
> #define TX_STAT_INC(_priv, _c) TX_STAT_ADD(_priv, _c, 1)
>

Good point, thank you. Will redo these macros in v4

With regards,
Pavel Skripkin