On Wed, Jun 14, 2023 at 6:41 PM Damien Le Moal <dlemoal@xxxxxxxxxx> wrote: > > On 6/15/23 00:26, Rob Herring wrote: > > On Wed, Jun 14, 2023 at 3:41 AM Damien Le Moal <dlemoal@xxxxxxxxxx> wrote: > >> > >> On 6/14/23 18:23, kernel test robot wrote: > >>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master > >>> head: b16049b21162bb649cdd8519642a35972b7910fe > >>> commit: d0b2461678b12c08d43eaf6740485e2f2c3aeac6 [9063/9793] ata: Use of_property_read_reg() to parse "reg" > >>> config: mips-randconfig-r016-20230614 (https://download.01.org/0day-ci/archive/20230614/202306141702.ZaO9V2lk-lkp@xxxxxxxxx/config) > >>> compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a) > >>> reproduce (this is a W=1 build): > >>> mkdir -p ~/bin > >>> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > >>> chmod +x ~/bin/make.cross > >>> # install mips cross compiling tool for clang build > >>> # apt-get install binutils-mips64-linux-gnuabi64 > >>> # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=d0b2461678b12c08d43eaf6740485e2f2c3aeac6 > >>> git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git > >>> git fetch --no-tags linux-next master > >>> git checkout d0b2461678b12c08d43eaf6740485e2f2c3aeac6 > >>> # save the config file > >>> mkdir build_dir && cp config build_dir/.config > >>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=mips olddefconfig > >>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash drivers/ata/ > >>> > >>> If you fix the issue in a separate patch/commit (i.e. not just a new version of > >>> the same patch/commit), kindly add following tags > >>> | Reported-by: kernel test robot <lkp@xxxxxxxxx> > >>> | Closes: https://lore.kernel.org/oe-kbuild-all/202306141702.ZaO9V2lk-lkp@xxxxxxxxx/ > >>> > >>> All errors (new ones prefixed by >>): > >>> > >>>>> drivers/ata/pata_octeon_cf.c:835:7: error: call to undeclared function 'of_property_read_reg'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] > >>> 835 | rv = of_property_read_reg(node, 0, ®, NULL); > >> > >> Rob, > >> > >> I guess this is missing: > >> > >> diff --git a/drivers/ata/pata_octeon_cf.c b/drivers/ata/pata_octeon_cf.c > >> index 57b2166a6d5d..ff538b858928 100644 > >> --- a/drivers/ata/pata_octeon_cf.c > >> +++ b/drivers/ata/pata_octeon_cf.c > >> @@ -16,6 +16,7 @@ > >> #include <linux/slab.h> > >> #include <linux/irq.h> > >> #include <linux/of.h> > >> +#include <linux/of_address.h> > >> #include <linux/of_platform.h> > >> #include <linux/platform_device.h> > >> #include <scsi/scsi_host.h> > >> > >> I can add that if you want. Or you can send a fix and I will queue it, > >> whichever is fine. > > > > If you can fix it up, that would be great. > > Done. > > > I'll look into whether this can be made easier to reproduce. These > > patches had been on a branch and picked up by 0-day. There must be > > some implicit include of of_address.h somewhere. > > I looked into enabling compile test with removing the MIPS dependency to make > sure this driver also goes through my regular compile tests (I am lazy, I do > x86_64 only :)). > > Something like this works for ahci_octeon: > > diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig > index 4572f837e504..6b115685a86e 100644 > --- a/drivers/ata/Kconfig > +++ b/drivers/ata/Kconfig > @@ -239,7 +239,7 @@ config AHCI_MVEBU > > config AHCI_OCTEON > tristate "Cavium Octeon Soc Serial ATA" > - depends on SATA_AHCI_PLATFORM && MIPS && (CAVIUM_OCTEON_SOC || COMPILE_TEST) > + depends on SATA_AHCI_PLATFORM && ((MIPS && CAVIUM_OCTEON_SOC) || > COMPILE_TEST) > default y > help > This option enables support for Cavium Octeon SoC Serial ATA. > diff --git a/drivers/ata/ahci_octeon.c b/drivers/ata/ahci_octeon.c > index 5021ab3ede49..2e6b28bf43f4 100644 > --- a/drivers/ata/ahci_octeon.c > +++ b/drivers/ata/ahci_octeon.c > @@ -15,8 +15,13 @@ > #include <linux/platform_device.h> > #include <linux/of_platform.h> > > +#ifdef CONFIG_MIPS > #include <asm/octeon/octeon.h> > #include <asm/bitfield.h> > +#else > +#define cvmx_readq_csr(csr) (0) > +#define cvmx_writeq_csr(csr, cfg) do { } while (0) > +#endif That's kind of ugly... > > #define CVMX_SATA_UCTL_SHIM_CFG 0xE8 > > But it is not that simple for pata_octeon... I copied you on mine[1]. It doesn't build for !MIPS, but at least doesn't depend on a specific config. Should be good enough for 0-day to build somewhat quickly. Rob [1] https://lore.kernel.org/all/20230614173633.2430653-2-robh@xxxxxxxxxx/