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

From: Jan Glauber
Date: Wed Feb 15 2017 - 08:54:49 EST


On Wed, Feb 15, 2017 at 01:34:40PM +0100, Arnd Bergmann wrote:
> 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.

Yes, that was the reason for using IS_ENABLED().

> 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.

I'll try to get rid of the preprocessor checks for the next version.

--Jan

> Arnd