Re: [linux-next:master 9063/9793] 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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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, &reg, 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/





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux