Thread (3 messages) 3 messages, 3 authors, 2020-09-07

Re: [PATCH] mwifiex: Remove unnecessary braces from HostCmd_SET_SEQ_NO_BSS_INFO

From: Nick Desaulniers <hidden>
Date: 2020-09-01 17:47:31
Also in: lkml, netdev

On Tue, Sep 1, 2020 at 12:08 AM Nathan Chancellor
[off-list ref] wrote:
A new warning in clang points out when macro expansion might result in a
GNU C statement expression. There is an instance of this in the mwifiex
driver:

drivers/net/wireless/marvell/mwifiex/cmdevt.c:217:34: warning: '}' and
')' tokens terminating statement expression appear in different macro
expansion contexts [-Wcompound-token-split-by-macro]
        host_cmd->seq_num = cpu_to_le16(HostCmd_SET_SEQ_NO_BSS_INFO
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/marvell/mwifiex/fw.h:519:46: note: expanded from
macro 'HostCmd_SET_SEQ_NO_BSS_INFO'
        (((type) & 0x000f) << 12);                  }
                                                    ^

This does not appear to be a real issue. Removing the braces and
replacing them with parentheses will fix the warning and not change the
meaning of the code.

Fixes: 5e6e3a92b9a4 ("wireless: mwifiex: initial commit for Marvell mwifiex driver")
Link: https://github.com/ClangBuiltLinux/linux/issues/1146
Reported-by: Andy Lavr <redacted>
Signed-off-by: Nathan Chancellor <redacted>
Wow, that's tricky. The unnecessary extra parens mix with the extra
curly braces to form a GNU C statement expression.  Thanks for the
patch.
Reviewed-by: Nick Desaulniers <redacted>
quoted hunk ↗ jump to hunk
---
 drivers/net/wireless/marvell/mwifiex/cmdevt.c | 4 ++--
 drivers/net/wireless/marvell/mwifiex/fw.h     | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/net/wireless/marvell/mwifiex/cmdevt.c b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
index d068b9075c32..3a11342a6bde 100644
--- a/drivers/net/wireless/marvell/mwifiex/cmdevt.c
+++ b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
@@ -322,9 +322,9 @@ static int mwifiex_dnld_sleep_confirm_cmd(struct mwifiex_adapter *adapter)

        adapter->seq_num++;
        sleep_cfm_buf->seq_num =
-               cpu_to_le16((HostCmd_SET_SEQ_NO_BSS_INFO
+               cpu_to_le16(HostCmd_SET_SEQ_NO_BSS_INFO
                                        (adapter->seq_num, priv->bss_num,
-                                        priv->bss_type)));
+                                        priv->bss_type));

        mwifiex_dbg(adapter, CMD,
                    "cmd: DNLD_CMD: %#x, act %#x, len %d, seqno %#x\n",
diff --git a/drivers/net/wireless/marvell/mwifiex/fw.h b/drivers/net/wireless/marvell/mwifiex/fw.h
index 8047e307892e..1f02c5058aed 100644
--- a/drivers/net/wireless/marvell/mwifiex/fw.h
+++ b/drivers/net/wireless/marvell/mwifiex/fw.h
@@ -513,10 +513,10 @@ enum mwifiex_channel_flags {

 #define RF_ANTENNA_AUTO                 0xFFFF

-#define HostCmd_SET_SEQ_NO_BSS_INFO(seq, num, type) {   \
-       (((seq) & 0x00ff) |                             \
-        (((num) & 0x000f) << 8)) |                     \
-       (((type) & 0x000f) << 12);                  }
+#define HostCmd_SET_SEQ_NO_BSS_INFO(seq, num, type) \
+       ((((seq) & 0x00ff) |                        \
+        (((num) & 0x000f) << 8)) |                 \
+       (((type) & 0x000f) << 12))

 #define HostCmd_GET_SEQ_NO(seq)       \
        ((seq) & HostCmd_SEQ_NUM_MASK)
--
-- 
Thanks,
~Nick Desaulniers
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help