Building the Linux kernel with Clang and LLVM
 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.11-esp32 35/53] drivers/misc/esp32-ipc.c:152:13: warning: cast to 'void *' from smaller integer type 'unsigned int'
Date: Wed, 23 Oct 2024 16:41:28 +0800	[thread overview]
Message-ID: <202410231611.SpkBpD0E-lkp@intel.com> (raw)

Hi Max,

First bad commit (maybe != root cause):

tree:   https://github.com/jcmvbkbc/linux-xtensa xtensa-6.11-esp32
head:   3b01ad2a1f71b72b27fefa08e4bf6acbe1de874f
commit: c10968c5b4327b1c4ad9b901192f78349104ef59 [35/53] esp_wifi: add IPC transport
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20241023/202410231611.SpkBpD0E-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241023/202410231611.SpkBpD0E-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/202410231611.SpkBpD0E-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/misc/esp32-ipc.c:152:13: warning: cast to 'void *' from smaller integer type 'unsigned int' [-Wint-to-void-pointer-cast]
     152 |         hw->hw_q = (void *)readl(p);
         |                    ^~~~~~~~~~~~~~~~
>> drivers/misc/esp32-ipc.c:228:34: warning: unused variable 'esp32_ipc_match' [-Wunused-const-variable]
     228 | static const struct of_device_id esp32_ipc_match[] = {
         |                                  ^~~~~~~~~~~~~~~
   2 warnings generated.

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


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

ff0f9306f987d1 Max Filippov 2023-08-11  144  
ff0f9306f987d1 Max Filippov 2023-08-11  145  static int init_hw(struct platform_device *pdev, struct esp32_ipc *hw)
ff0f9306f987d1 Max Filippov 2023-08-11  146  {
ff0f9306f987d1 Max Filippov 2023-08-11  147  	void __iomem *p;
ff0f9306f987d1 Max Filippov 2023-08-11  148  
ff0f9306f987d1 Max Filippov 2023-08-11  149  	p = devm_of_iomap(&pdev->dev, pdev->dev.of_node, 0, NULL);
ff0f9306f987d1 Max Filippov 2023-08-11  150  	if (IS_ERR(p))
ff0f9306f987d1 Max Filippov 2023-08-11  151  		return PTR_ERR(p);
ff0f9306f987d1 Max Filippov 2023-08-11 @152  	hw->hw_q = (void *)readl(p);
ff0f9306f987d1 Max Filippov 2023-08-11  153  	devm_iounmap(&pdev->dev, p);
ff0f9306f987d1 Max Filippov 2023-08-11  154  
ff0f9306f987d1 Max Filippov 2023-08-11  155  	hw->regs = devm_of_iomap(&pdev->dev, pdev->dev.of_node, 1, NULL);
ff0f9306f987d1 Max Filippov 2023-08-11  156  	if (IS_ERR(hw->regs))
ff0f9306f987d1 Max Filippov 2023-08-11  157  		return PTR_ERR(hw->regs);
ff0f9306f987d1 Max Filippov 2023-08-11  158  
ff0f9306f987d1 Max Filippov 2023-08-11  159  	dev_dbg(&pdev->dev, "%s: regs = %p, queues = %p\n",
ff0f9306f987d1 Max Filippov 2023-08-11  160  		__func__, hw->regs, hw->hw_q);
ff0f9306f987d1 Max Filippov 2023-08-11  161  	if (hw->hw_q) {
ff0f9306f987d1 Max Filippov 2023-08-11  162  		u32 i;
ff0f9306f987d1 Max Filippov 2023-08-11  163  
ff0f9306f987d1 Max Filippov 2023-08-11  164  		for (i = 0; i < 2; ++i) {
ff0f9306f987d1 Max Filippov 2023-08-11  165  			dev_dbg(&pdev->dev, "%s: queue %d: offset = %d, mask = %x\n",
ff0f9306f987d1 Max Filippov 2023-08-11  166  				__func__, i,
ff0f9306f987d1 Max Filippov 2023-08-11  167  				hw->hw_q[i].offset,
ff0f9306f987d1 Max Filippov 2023-08-11  168  				hw->hw_q[i].mask);
ff0f9306f987d1 Max Filippov 2023-08-11  169  		}
ff0f9306f987d1 Max Filippov 2023-08-11  170  	} else {
ff0f9306f987d1 Max Filippov 2023-08-11  171  		return -ENODEV;
ff0f9306f987d1 Max Filippov 2023-08-11  172  	}
ff0f9306f987d1 Max Filippov 2023-08-11  173  
ff0f9306f987d1 Max Filippov 2023-08-11  174  	hw->irq = platform_get_irq(pdev, 0);
ff0f9306f987d1 Max Filippov 2023-08-11  175  	if (hw->irq >= 0) {
ff0f9306f987d1 Max Filippov 2023-08-11  176  		int ret;
ff0f9306f987d1 Max Filippov 2023-08-11  177  
ff0f9306f987d1 Max Filippov 2023-08-11  178  		ret = devm_request_threaded_irq(&pdev->dev, hw->irq,
ff0f9306f987d1 Max Filippov 2023-08-11  179  						esp32_ipc_irq_handler,
ff0f9306f987d1 Max Filippov 2023-08-11  180  						esp32_ipc_thread_handler,
ff0f9306f987d1 Max Filippov 2023-08-11  181  						IRQF_SHARED, pdev->name, hw);
ff0f9306f987d1 Max Filippov 2023-08-11  182  		if (ret < 0) {
ff0f9306f987d1 Max Filippov 2023-08-11  183  			dev_err(&pdev->dev, "request_irq %d failed\n", hw->irq);
ff0f9306f987d1 Max Filippov 2023-08-11  184  			return ret;
ff0f9306f987d1 Max Filippov 2023-08-11  185  		}
ff0f9306f987d1 Max Filippov 2023-08-11  186  	} else {
ff0f9306f987d1 Max Filippov 2023-08-11  187  		dev_err(&pdev->dev, "missing IRQ property\n");
ff0f9306f987d1 Max Filippov 2023-08-11  188  		return -ENODEV;
ff0f9306f987d1 Max Filippov 2023-08-11  189  	}
ff0f9306f987d1 Max Filippov 2023-08-11  190  
ff0f9306f987d1 Max Filippov 2023-08-11  191  	return 0;
ff0f9306f987d1 Max Filippov 2023-08-11  192  }
ff0f9306f987d1 Max Filippov 2023-08-11  193  
ff0f9306f987d1 Max Filippov 2023-08-11  194  static int esp32_ipc_probe(struct platform_device *pdev)
ff0f9306f987d1 Max Filippov 2023-08-11  195  {
ff0f9306f987d1 Max Filippov 2023-08-11  196  	struct esp32_ipc *hw =
ff0f9306f987d1 Max Filippov 2023-08-11  197  		devm_kzalloc(&pdev->dev, sizeof(*hw), GFP_KERNEL);
ff0f9306f987d1 Max Filippov 2023-08-11  198  	int ret;
ff0f9306f987d1 Max Filippov 2023-08-11  199  
ff0f9306f987d1 Max Filippov 2023-08-11  200  	if (!hw)
ff0f9306f987d1 Max Filippov 2023-08-11  201  		return -ENOMEM;
ff0f9306f987d1 Max Filippov 2023-08-11  202  	platform_set_drvdata(pdev, hw);
ff0f9306f987d1 Max Filippov 2023-08-11  203  
ff0f9306f987d1 Max Filippov 2023-08-11  204  	spin_lock_init(&hw->lock);
ff0f9306f987d1 Max Filippov 2023-08-11  205  	ret = init_hw(pdev, hw);
ff0f9306f987d1 Max Filippov 2023-08-11  206  	if (ret < 0)
ff0f9306f987d1 Max Filippov 2023-08-11  207  		return ret;
ff0f9306f987d1 Max Filippov 2023-08-11  208  
ff0f9306f987d1 Max Filippov 2023-08-11  209  	hw->hw_q[ESP32_IPC_WRITE_HW_Q].read = 0;
ff0f9306f987d1 Max Filippov 2023-08-11  210  	hw->hw_q[ESP32_IPC_WRITE_HW_Q].write = 0;
ff0f9306f987d1 Max Filippov 2023-08-11  211  	wmb();
ff0f9306f987d1 Max Filippov 2023-08-11  212  	writel(1, hw->regs + ESP32_IPC_IRQ_TO_FW_REG);
ff0f9306f987d1 Max Filippov 2023-08-11  213  
ff0f9306f987d1 Max Filippov 2023-08-11  214  	ret = of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev);
ff0f9306f987d1 Max Filippov 2023-08-11  215  	return ret;
ff0f9306f987d1 Max Filippov 2023-08-11  216  }
ff0f9306f987d1 Max Filippov 2023-08-11  217  
ff0f9306f987d1 Max Filippov 2023-08-11  218  static void esp32_ipc_remove(struct platform_device *pdev)
ff0f9306f987d1 Max Filippov 2023-08-11  219  {
ff0f9306f987d1 Max Filippov 2023-08-11  220  	struct esp32_ipc *hw = platform_get_drvdata(pdev);
ff0f9306f987d1 Max Filippov 2023-08-11  221  
ff0f9306f987d1 Max Filippov 2023-08-11  222  	if (!hw)
ff0f9306f987d1 Max Filippov 2023-08-11  223  		return;
ff0f9306f987d1 Max Filippov 2023-08-11  224  
ff0f9306f987d1 Max Filippov 2023-08-11  225  	disable_irq(hw->irq);
ff0f9306f987d1 Max Filippov 2023-08-11  226  }
ff0f9306f987d1 Max Filippov 2023-08-11  227  
ff0f9306f987d1 Max Filippov 2023-08-11 @228  static const struct of_device_id esp32_ipc_match[] = {
ff0f9306f987d1 Max Filippov 2023-08-11  229  	{
ff0f9306f987d1 Max Filippov 2023-08-11  230  		.compatible = "esp,esp32-ipc",
ff0f9306f987d1 Max Filippov 2023-08-11  231  	}, {},
ff0f9306f987d1 Max Filippov 2023-08-11  232  };
ff0f9306f987d1 Max Filippov 2023-08-11  233  MODULE_DEVICE_TABLE(of, esp32_ipc_match);
ff0f9306f987d1 Max Filippov 2023-08-11  234  

:::::: The code at line 152 was first introduced by commit
:::::: ff0f9306f987d1547ac6a746b3f2bbb17238ae96 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:[~2024-10-23  8:41 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=202410231611.SpkBpD0E-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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox