]> www.infradead.org Git - users/hch/misc.git/commitdiff
mtd: spinand: Fix build with gcc < 7.5
authorMiquel Raynal <miquel.raynal@bootlin.com>
Tue, 1 Apr 2025 13:36:37 +0000 (15:36 +0200)
committerMiquel Raynal <miquel.raynal@bootlin.com>
Mon, 7 Apr 2025 07:05:31 +0000 (09:05 +0200)
__VA_OPT__ is a macro that is useful when some arguments can be present
or not to entirely skip some part of a definition. Unfortunately, it
is a too recent addition that some of the still supported old GCC
versions do not know about, and is anyway not part of C11 that is the
version used in the kernel.

Find a trick to remove this macro, typically '__VA_ARGS__ + 0' is a
workaround used in netlink.h which works very well here, as we either
expect:
- 0
- A positive value
- No value, which means the field should be 0.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202503181330.YcDXGy7F-lkp@intel.com/
Fixes: 7ce0d16d5802 ("mtd: spinand: Add an optional frequency to read from cache macros")
Cc: stable@vger.kernel.org
Tested-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
include/linux/mtd/spinand.h

index 1e748958dad404e4c064081f9c96aaecfef9ee53..311f145eb4e8432d3cc1025135300cebe651e933 100644 (file)
@@ -67,7 +67,7 @@
                   SPI_MEM_OP_ADDR(2, addr, 1),                         \
                   SPI_MEM_OP_DUMMY(ndummy, 1),                         \
                   SPI_MEM_OP_DATA_IN(len, buf, 1),                     \
-                  __VA_OPT__(SPI_MEM_OP_MAX_FREQ(__VA_ARGS__)))
+                  SPI_MEM_OP_MAX_FREQ(__VA_ARGS__ + 0))
 
 #define SPINAND_PAGE_READ_FROM_CACHE_FAST_OP(addr, ndummy, buf, len) \
        SPI_MEM_OP(SPI_MEM_OP_CMD(0x0b, 1),                     \