All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mario Limonciello <mario.limonciello@amd.com>
To: kernel test robot <lkp@intel.com>, Lizhi Hou <lizhi.hou@amd.com>
Cc: oe-kbuild-all@lists.linux.dev
Subject: Re: [linux-next:master 5495/7860] drivers/accel/amdxdna/amdxdna_mailbox.c:334:52: sparse: sparse: cast removes address space '__iomem' of expression
Date: Mon, 13 Jan 2025 08:25:07 -0600	[thread overview]
Message-ID: <4b525d86-e1fb-4294-b804-cd065904a409@amd.com> (raw)
In-Reply-To: <202501130921.ktqwsMLH-lkp@intel.com>

On 1/12/2025 19:21, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head:   2b88851f583d3c4e40bcd40cfe1965241ec229dd
> commit: 3c8cfec3fcc4fe53f2bd87ec91ef31df4fa6dc0d [5495/7860] accel/amdxdna: Declare mailbox register base as __iomem pointer
> config: x86_64-randconfig-121-20250113 (https://download.01.org/0day-ci/archive/20250113/202501130921.ktqwsMLH-lkp@intel.com/config)
> compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250113/202501130921.ktqwsMLH-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/202501130921.ktqwsMLH-lkp@intel.com/
> 
> sparse warnings: (new ones prefixed by >>)
>>> drivers/accel/amdxdna/amdxdna_mailbox.c:334:52: sparse: sparse: cast removes address space '__iomem' of expression
> 
> vim +/__iomem +334 drivers/accel/amdxdna/amdxdna_mailbox.c
> 
> b87f920b934426 Lizhi Hou 2024-11-18  274
> b87f920b934426 Lizhi Hou 2024-11-18  275  static int mailbox_get_msg(struct mailbox_channel *mb_chann)
> b87f920b934426 Lizhi Hou 2024-11-18  276  {
> b87f920b934426 Lizhi Hou 2024-11-18  277  	struct xdna_msg_header header;
> 3c8cfec3fcc4fe Lizhi Hou 2025-01-02  278  	void __iomem *read_addr;
> b87f920b934426 Lizhi Hou 2024-11-18  279  	u32 msg_size, rest;
> b87f920b934426 Lizhi Hou 2024-11-18  280  	u32 ringbuf_size;
> b87f920b934426 Lizhi Hou 2024-11-18  281  	u32 head, tail;
> b87f920b934426 Lizhi Hou 2024-11-18  282  	u32 start_addr;
> b87f920b934426 Lizhi Hou 2024-11-18  283  	int ret;
> b87f920b934426 Lizhi Hou 2024-11-18  284
> b87f920b934426 Lizhi Hou 2024-11-18  285  	if (mailbox_reg_read_non_zero(mb_chann, mb_chann->res[CHAN_RES_I2X].mb_tail_ptr_reg, &tail))
> b87f920b934426 Lizhi Hou 2024-11-18  286  		return -EINVAL;
> b87f920b934426 Lizhi Hou 2024-11-18  287  	head = mb_chann->i2x_head;
> b87f920b934426 Lizhi Hou 2024-11-18  288  	ringbuf_size = mailbox_get_ringbuf_size(mb_chann, CHAN_RES_I2X);
> b87f920b934426 Lizhi Hou 2024-11-18  289  	start_addr = mb_chann->res[CHAN_RES_I2X].rb_start_addr;
> b87f920b934426 Lizhi Hou 2024-11-18  290
> b87f920b934426 Lizhi Hou 2024-11-18  291  	if (unlikely(tail > ringbuf_size || !IS_ALIGNED(tail, 4))) {
> b87f920b934426 Lizhi Hou 2024-11-18  292  		MB_WARN_ONCE(mb_chann, "Invalid tail 0x%x", tail);
> b87f920b934426 Lizhi Hou 2024-11-18  293  		return -EINVAL;
> b87f920b934426 Lizhi Hou 2024-11-18  294  	}
> b87f920b934426 Lizhi Hou 2024-11-18  295
> b87f920b934426 Lizhi Hou 2024-11-18  296  	/* ringbuf empty */
> b87f920b934426 Lizhi Hou 2024-11-18  297  	if (head == tail)
> b87f920b934426 Lizhi Hou 2024-11-18  298  		return -ENOENT;
> b87f920b934426 Lizhi Hou 2024-11-18  299
> b87f920b934426 Lizhi Hou 2024-11-18  300  	if (head == ringbuf_size)
> b87f920b934426 Lizhi Hou 2024-11-18  301  		head = 0;
> b87f920b934426 Lizhi Hou 2024-11-18  302
> b87f920b934426 Lizhi Hou 2024-11-18  303  	/* Peek size of the message or TOMBSTONE */
> b87f920b934426 Lizhi Hou 2024-11-18  304  	read_addr = mb_chann->mb->res.ringbuf_base + start_addr + head;
> 3c8cfec3fcc4fe Lizhi Hou 2025-01-02  305  	header.total_size = readl(read_addr);
> b87f920b934426 Lizhi Hou 2024-11-18  306  	/* size is TOMBSTONE, set next read from 0 */
> b87f920b934426 Lizhi Hou 2024-11-18  307  	if (header.total_size == TOMBSTONE) {
> b87f920b934426 Lizhi Hou 2024-11-18  308  		if (head < tail) {
> b87f920b934426 Lizhi Hou 2024-11-18  309  			MB_WARN_ONCE(mb_chann, "Tombstone, head 0x%x tail 0x%x",
> b87f920b934426 Lizhi Hou 2024-11-18  310  				     head, tail);
> b87f920b934426 Lizhi Hou 2024-11-18  311  			return -EINVAL;
> b87f920b934426 Lizhi Hou 2024-11-18  312  		}
> b87f920b934426 Lizhi Hou 2024-11-18  313  		mailbox_set_headptr(mb_chann, 0);
> b87f920b934426 Lizhi Hou 2024-11-18  314  		return 0;
> b87f920b934426 Lizhi Hou 2024-11-18  315  	}
> b87f920b934426 Lizhi Hou 2024-11-18  316
> b87f920b934426 Lizhi Hou 2024-11-18  317  	if (unlikely(!header.total_size || !IS_ALIGNED(header.total_size, 4))) {
> b87f920b934426 Lizhi Hou 2024-11-18  318  		MB_WARN_ONCE(mb_chann, "Invalid total size 0x%x", header.total_size);
> b87f920b934426 Lizhi Hou 2024-11-18  319  		return -EINVAL;
> b87f920b934426 Lizhi Hou 2024-11-18  320  	}
> b87f920b934426 Lizhi Hou 2024-11-18  321  	msg_size = sizeof(header) + header.total_size;
> b87f920b934426 Lizhi Hou 2024-11-18  322
> b87f920b934426 Lizhi Hou 2024-11-18  323  	if (msg_size > ringbuf_size - head || msg_size > tail - head) {
> b87f920b934426 Lizhi Hou 2024-11-18  324  		MB_WARN_ONCE(mb_chann, "Invalid message size %d, tail %d, head %d",
> b87f920b934426 Lizhi Hou 2024-11-18  325  			     msg_size, tail, head);
> b87f920b934426 Lizhi Hou 2024-11-18  326  		return -EINVAL;
> b87f920b934426 Lizhi Hou 2024-11-18  327  	}
> b87f920b934426 Lizhi Hou 2024-11-18  328
> b87f920b934426 Lizhi Hou 2024-11-18  329  	rest = sizeof(header) - sizeof(u32);
> b87f920b934426 Lizhi Hou 2024-11-18  330  	read_addr += sizeof(u32);
> 3c8cfec3fcc4fe Lizhi Hou 2025-01-02  331  	memcpy_fromio((u32 *)&header + 1, read_addr, rest);
> b87f920b934426 Lizhi Hou 2024-11-18  332  	read_addr += rest;
> b87f920b934426 Lizhi Hou 2024-11-18  333
> b87f920b934426 Lizhi Hou 2024-11-18 @334  	ret = mailbox_get_resp(mb_chann, &header, (u32 *)read_addr);

Looking through this, why is there a cast in the first place?
The third argument for mailbox_get_resp() is void *.  Can't you just 
pass read_addr directly?

> b87f920b934426 Lizhi Hou 2024-11-18  335
> b87f920b934426 Lizhi Hou 2024-11-18  336  	mailbox_set_headptr(mb_chann, head + msg_size);
> b87f920b934426 Lizhi Hou 2024-11-18  337  	/* After update head, it can equal to ringbuf_size. This is expected. */
> b87f920b934426 Lizhi Hou 2024-11-18  338  	trace_mbox_set_head(MAILBOX_NAME, mb_chann->msix_irq,
> b87f920b934426 Lizhi Hou 2024-11-18  339  			    header.opcode, header.id);
> b87f920b934426 Lizhi Hou 2024-11-18  340
> b87f920b934426 Lizhi Hou 2024-11-18  341  	return ret;
> b87f920b934426 Lizhi Hou 2024-11-18  342  }
> b87f920b934426 Lizhi Hou 2024-11-18  343
> 
> :::::: The code at line 334 was first introduced by commit
> :::::: b87f920b934426a24d54613f12ed67c03ae05024 accel/amdxdna: Support hardware mailbox
> 
> :::::: TO: Lizhi Hou <lizhi.hou@amd.com>
> :::::: CC: Jeffrey Hugo <quic_jhugo@quicinc.com>
> 


  reply	other threads:[~2025-01-13 14:25 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-13  1:21 [linux-next:master 5495/7860] drivers/accel/amdxdna/amdxdna_mailbox.c:334:52: sparse: sparse: cast removes address space '__iomem' of expression kernel test robot
2025-01-13 14:25 ` Mario Limonciello [this message]
2025-01-13 16:35   ` Lizhi Hou

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=4b525d86-e1fb-4294-b804-cd065904a409@amd.com \
    --to=mario.limonciello@amd.com \
    --cc=lizhi.hou@amd.com \
    --cc=lkp@intel.com \
    --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.