Re: [PATCH net] gve: DQO: Suppress unused var warnings
flat view
From: Bailey Forrest <hidden>
Date: 2021-09-27 23:59:58
Subsystem:
dma mapping helpers, the rest · Maintainers:
Marek Szyprowski, Linus Torvalds
On Mon, Sep 27, 2021 at 4:21 PM Jakub Kicinski [off-list ref] wrote:
On Mon, 27 Sep 2021 13:21:30 -0700 Bailey Forrest wrote:quoted
Apologies, resending as text On Mon, Sep 27, 2021 at 2:59 AM Arnd Bergmann [off-list ref] wrote:quoted
On Sat, Jul 24, 2021 at 1:19 AM Bailey Forrest [off-list ref] wrote:quoted
Some variables become unused when `CONFIG_NEED_DMA_MAP_STATE=n`. We only suppress when `CONFIG_NEED_DMA_MAP_STATE=n` in order to avoid false negatives. Fixes: a57e5de476be ("gve: DQO: Add TX path") Signed-off-by: Bailey Forrest <redacted>Hi Bailey, I see that the warning still exists in linux-5.15-rc3 and net-next, I'm building with my original patch[1] to get around the -Werror warnings. Can you resend your patch, or should I resend mine after all? Arnd [1] https://lore.kernel.org/all/20210721151100.2042139-1-arnd@kernel.org/ (local)Hi David/Jakub, Any thoughts on my patch? I'm open to alternative suggestions for how to resolve this. This patch still works and merges cleanly on HEAD.Looks like fixing this on the wrong end, dma_unmap_len_set() and friends should always evaluate their arguments.
That makes sense. Arnd, if you want to fix this inside of the dma_* macros, the following diff resolves the errors reported for this driver:
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index dca2b1355bb1..f51eee0f678e 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h@@ -590,10 +590,21 @@ static inline int dma_mmap_wc(struct device *dev, #else #define DEFINE_DMA_UNMAP_ADDR(ADDR_NAME) #define DEFINE_DMA_UNMAP_LEN(LEN_NAME) -#define dma_unmap_addr(PTR, ADDR_NAME) (0) -#define dma_unmap_addr_set(PTR, ADDR_NAME, VAL) do { } while (0) -#define dma_unmap_len(PTR, LEN_NAME) (0) -#define dma_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0) + +#define dma_unmap_addr(PTR, ADDR_NAME) ({ (void)PTR; 0; }) + +#define dma_unmap_addr_set(PTR, ADDR_NAME, VAL) do { \ + (void)PTR; \ + (void)VAL; \ +} while (0) + +#define dma_unmap_len(PTR, LEN_NAME) ({ (void)PTR; 0; }) + +#define dma_unmap_len_set(PTR, LEN_NAME, VAL) do { \ + (void)PTR; \ + (void)VAL; \ +} while (0) + #endif #endif /* _LINUX_DMA_MAPPING_H */