Re: [PATCH v11 6/9] mmc: cavium: Add MMC PCI driver for ThunderX SOCs

From: Arnd Bergmann
Date: Wed Feb 15 2017 - 07:34:52 EST

On Mon, Feb 13, 2017 at 4:45 PM, Ulf Hansson <ulf.hansson@xxxxxxxxxx> wrote:
> On 13 February 2017 at 16:24, Jan Glauber
> <jan.glauber@xxxxxxxxxxxxxxxxxx> wrote:
>> On Sun, Feb 12, 2017 at 09:09:29AM +0800, kbuild test robot wrote:
>>> Hi Jan,
>>> [auto build test ERROR on linus/master]
>>> [also build test ERROR on v4.10-rc7 next-20170210]
>>> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>>> url:
>>> config: arm64-allmodconfig (attached as .config)
>>> compiler: aarch64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
>>> reproduce:
>>> wget -O ~/bin/make.cross
>>> chmod +x ~/bin/make.cross
>>> # save the attached .config to linux build tree
>>> make.cross ARCH=arm64
>>> All errors (new ones prefixed by >>):
>>> In file included from drivers/mmc/host/cavium-mmc.c:28:0:
>>> drivers/mmc/host/cavium-mmc.h:41:7: warning: "CONFIG_MMC_CAVIUM_THUNDERX" is not defined [-Wundef]
>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> Hi Ulf,
>> We are aware of this build error, the line above should be:
> Please avoid using IS_ENABLED() - unless really needed.
> Doesn't "#ifdef" work here?

No, CONFIG_MMC_CAVIUM_THUNDERX is a tristate symbol and #ifdef won't
work for =m.

Ideally, the base driver would not have any such preprocessor checks at
all though, and just work either way. While I realize that octeon and thunderx
are mutually exclusive in practice, the patch as it is written here is somewhat
confusing as turning on both options (with COMPILE_TEST) will break
at least one of the two.