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: https://github.com/0day-ci/linux/commits/Jan-Glauber/Cavium-MMC-driver/20170206-214740
>>> config: arm64-allmodconfig (attached as .config)
>>> compiler: aarch64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
>>> reproduce:
>>> wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -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]
>>> #elif CONFIG_MMC_CAVIUM_THUNDERX
>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>> Hi Ulf,
>>
>> We are aware of this build error, the line above should be:
>> #elif IS_ENABLED(CONFIG_MMC_CAVIUM_THUNDERX)
>
> 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.

Arnd