All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Max Filippov <jcmvbkbc@gmail.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: [jcmvbkbc-xtensa:xtensa-6.5-esp32 24/34] drivers/misc/esp32-ipc.c:142: undefined reference to `devm_of_iomap'
Date: Tue, 29 Aug 2023 10:12:22 +0800	[thread overview]
Message-ID: <202308291003.7IYFUKpc-lkp@intel.com> (raw)

tree:   https://github.com/jcmvbkbc/linux-xtensa xtensa-6.5-esp32
head:   edbe560c2ce9974f4b2e47ca13050e6a62d604b3
commit: 20b0bc011b5325431d41d666f8f949d0c6ede432 [24/34] esp_wifi: add IPC transport
config: um-randconfig-r022-20230829 (https://download.01.org/0day-ci/archive/20230829/202308291003.7IYFUKpc-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230829/202308291003.7IYFUKpc-lkp@intel.com/reproduce)

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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308291003.7IYFUKpc-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   In file included from drivers/misc/esp32-ipc.c:7:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/um/include/asm/hardirq.h:5:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     547 |         val = __raw_readb(PCI_IOBASE + addr);
         |                           ~~~~~~~~~~ ^
   include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     560 |         val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
         |                                                         ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu'
      37 | #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
         |                                                   ^
   In file included from drivers/misc/esp32-ipc.c:7:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/um/include/asm/hardirq.h:5:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     573 |         val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
         |                                                         ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu'
      35 | #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
         |                                                   ^
   In file included from drivers/misc/esp32-ipc.c:7:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/um/include/asm/hardirq.h:5:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     584 |         __raw_writeb(value, PCI_IOBASE + addr);
         |                             ~~~~~~~~~~ ^
   include/asm-generic/io.h:594:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     594 |         __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
         |                                                       ~~~~~~~~~~ ^
   include/asm-generic/io.h:604:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     604 |         __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
         |                                                       ~~~~~~~~~~ ^
   include/asm-generic/io.h:692:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     692 |         readsb(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:700:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     700 |         readsw(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:708:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     708 |         readsl(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:717:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     717 |         writesb(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
   include/asm-generic/io.h:726:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     726 |         writesw(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
   include/asm-generic/io.h:735:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     735 |         writesl(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
>> drivers/misc/esp32-ipc.c:145:13: warning: cast to 'void *' from smaller integer type 'u32' (aka 'unsigned int') [-Wint-to-void-pointer-cast]
     145 |         hw->hw_q = (void *)readl(p);
         |                    ^~~~~~~~~~~~~~~~
   drivers/misc/esp32-ipc.c:221:34: warning: unused variable 'esp32_ipc_match' [-Wunused-const-variable]
     221 | static const struct of_device_id esp32_ipc_match[] = {
         |                                  ^
   14 warnings generated.
--
   /usr/bin/ld: init/main.o: warning: relocation in read-only section `.ref.text'
   /usr/bin/ld: warning: .tmp_vmlinux.kallsyms1 has a LOAD segment with RWX permissions
   /usr/bin/ld: drivers/misc/esp32-ipc.o: in function `esp32_ipc_probe':
>> drivers/misc/esp32-ipc.c:142: undefined reference to `devm_of_iomap'
>> /usr/bin/ld: drivers/misc/esp32-ipc.c:146: undefined reference to `devm_iounmap'
   /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
   clang: error: linker command failed with exit code 1 (use -v to see invocation)

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for ESP32_IPC
   Depends on [n]: OF [=n] && HAS_IOMEM [=n]
   Selected by [y]:
   - ESP32_WIFI_SHMEM [=y] && NETDEVICES [=y] && WLAN [=y] && WLAN_VENDOR_ESPRESSIF [=y]


vim +142 drivers/misc/esp32-ipc.c

4886a7e20027ff Max Filippov 2023-08-11  137  
4886a7e20027ff Max Filippov 2023-08-11  138  static int init_hw(struct platform_device *pdev, struct esp32_ipc *hw)
4886a7e20027ff Max Filippov 2023-08-11  139  {
4886a7e20027ff Max Filippov 2023-08-11  140  	void __user *p;
4886a7e20027ff Max Filippov 2023-08-11  141  
4886a7e20027ff Max Filippov 2023-08-11 @142  	p = devm_of_iomap(&pdev->dev, pdev->dev.of_node, 0, NULL);
4886a7e20027ff Max Filippov 2023-08-11  143  	if (IS_ERR(p))
4886a7e20027ff Max Filippov 2023-08-11  144  		return PTR_ERR(p);
4886a7e20027ff Max Filippov 2023-08-11 @145  	hw->hw_q = (void *)readl(p);
4886a7e20027ff Max Filippov 2023-08-11 @146  	devm_iounmap(&pdev->dev, p);
4886a7e20027ff Max Filippov 2023-08-11  147  
4886a7e20027ff Max Filippov 2023-08-11  148  	hw->regs = devm_of_iomap(&pdev->dev, pdev->dev.of_node, 1, NULL);
4886a7e20027ff Max Filippov 2023-08-11  149  	if (IS_ERR(hw->regs))
4886a7e20027ff Max Filippov 2023-08-11  150  		return PTR_ERR(hw->regs);
4886a7e20027ff Max Filippov 2023-08-11  151  
4886a7e20027ff Max Filippov 2023-08-11  152  	dev_dbg(&pdev->dev, "%s: regs = %p, queues = %p\n",
4886a7e20027ff Max Filippov 2023-08-11  153  		__func__, hw->regs, hw->hw_q);
4886a7e20027ff Max Filippov 2023-08-11  154  	if (hw->hw_q) {
4886a7e20027ff Max Filippov 2023-08-11  155  		u32 i;
4886a7e20027ff Max Filippov 2023-08-11  156  
4886a7e20027ff Max Filippov 2023-08-11  157  		for (i = 0; i < 2; ++i) {
4886a7e20027ff Max Filippov 2023-08-11  158  			dev_dbg(&pdev->dev, "%s: queue %d: offset = %d, mask = %x\n",
4886a7e20027ff Max Filippov 2023-08-11  159  				__func__, i,
4886a7e20027ff Max Filippov 2023-08-11  160  				hw->hw_q[i].offset,
4886a7e20027ff Max Filippov 2023-08-11  161  				hw->hw_q[i].mask);
4886a7e20027ff Max Filippov 2023-08-11  162  		}
4886a7e20027ff Max Filippov 2023-08-11  163  	} else {
4886a7e20027ff Max Filippov 2023-08-11  164  		return -ENODEV;
4886a7e20027ff Max Filippov 2023-08-11  165  	}
4886a7e20027ff Max Filippov 2023-08-11  166  
4886a7e20027ff Max Filippov 2023-08-11  167  	hw->irq = platform_get_irq(pdev, 0);
4886a7e20027ff Max Filippov 2023-08-11  168  	if (hw->irq >= 0) {
4886a7e20027ff Max Filippov 2023-08-11  169  		int ret;
4886a7e20027ff Max Filippov 2023-08-11  170  
4886a7e20027ff Max Filippov 2023-08-11  171  		ret = devm_request_threaded_irq(&pdev->dev, hw->irq,
4886a7e20027ff Max Filippov 2023-08-11  172  						esp32_ipc_irq_handler,
4886a7e20027ff Max Filippov 2023-08-11  173  						esp32_ipc_thread_handler,
4886a7e20027ff Max Filippov 2023-08-11  174  						IRQF_SHARED, pdev->name, hw);
4886a7e20027ff Max Filippov 2023-08-11  175  		if (ret < 0) {
4886a7e20027ff Max Filippov 2023-08-11  176  			dev_err(&pdev->dev, "request_irq %d failed\n", hw->irq);
4886a7e20027ff Max Filippov 2023-08-11  177  			return ret;
4886a7e20027ff Max Filippov 2023-08-11  178  		}
4886a7e20027ff Max Filippov 2023-08-11  179  	} else {
4886a7e20027ff Max Filippov 2023-08-11  180  		dev_err(&pdev->dev, "missing IRQ property\n");
4886a7e20027ff Max Filippov 2023-08-11  181  		return -ENODEV;
4886a7e20027ff Max Filippov 2023-08-11  182  	}
4886a7e20027ff Max Filippov 2023-08-11  183  
4886a7e20027ff Max Filippov 2023-08-11  184  	return 0;
4886a7e20027ff Max Filippov 2023-08-11  185  }
4886a7e20027ff Max Filippov 2023-08-11  186  

:::::: The code at line 142 was first introduced by commit
:::::: 4886a7e20027ffdd9ec581eee4deb20d3d407ba5 misc/esp32-ipc: introduce generic IPC for ESP32

:::::: TO: Max Filippov <jcmvbkbc@gmail.com>
:::::: CC: Max Filippov <jcmvbkbc@gmail.com>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

                 reply	other threads:[~2023-08-29  2:12 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202308291003.7IYFUKpc-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=jcmvbkbc@gmail.com \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.