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

 #define CVMX_SATA_UCTL_SHIM_CFG                0xE8

But it is not that simple for pata_octeon...

> 
> Rob

-- 
Damien Le Moal
Western Digital Research





[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