Re: [PATCH 5/7] staging: vt6655: Replace MACvReceive1 with function vt6655_mac_dma_ctl

From: Philipp Hortmann
Date: Mon Jul 18 2022 - 16:01:44 EST


On 7/18/22 14:41, Dan Carpenter wrote:
On Mon, Jul 18, 2022 at 12:20:25AM +0200, Philipp Hortmann wrote:
checkpatch.pl does not accept multiline macros.


What? Really?
You are right. It does not really complain about multiline macros but you cannot have a clean checkpatch check when using more than one macro containing the same variable. Find more info below.

I tested this to see if was true and it just complained about potential
side effects on iobase.

regads,
dan carpenter

diff --git a/drivers/staging/vt6655/mac.h b/drivers/staging/vt6655/mac.h
index 5747de436911..129a6602f6f0 100644
--- a/drivers/staging/vt6655/mac.h
+++ b/drivers/staging/vt6655/mac.h
@@ -537,16 +537,6 @@
/*--------------------- Export Macros ------------------------------*/
-#define MACvReceive1(iobase) \
-do { \
- unsigned long reg_value; \
- reg_value = ioread32(iobase + MAC_REG_RXDMACTL1); \
- if (reg_value & DMACTL_RUN) \
- iowrite32(DMACTL_WAKE, iobase + MAC_REG_RXDMACTL1); \
- else \
- iowrite32(DMACTL_RUN, iobase + MAC_REG_RXDMACTL1); \
-} while (0)
-
#define MACvTransmit0(iobase) \
do { \
unsigned long reg_value; \


I was asking in kernelnewbies what to do with multi line macros as checkpatch.pl warnings cannot be totally avoided.

Greg replied to make functions out of them.

Please find the full email under:

https://www.mail-archive.com/kernelnewbies@xxxxxxxxxxxxxxxxx/msg22042.html

In this case I really like the static function solution much more than the macros.

Thanks for your support.