All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
	Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Subject: drivers/soc/qcom/smsm.c:152:22: sparse: sparse: incorrect type in argument 1 (different address spaces)
Date: Mon, 4 Dec 2023 22:12:31 +0800	[thread overview]
Message-ID: <202312042157.f0dFTXW4-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   33cc938e65a98f1d29d0a18403dbbee050dcad9a
commit: e5fc436f06eef54ef512ea55a9db8eb9f2e76959 sparse: use static inline for __chk_{user,io}_ptr()
date:   3 years, 3 months ago
config: sh-randconfig-r111-20231116 (https://download.01.org/0day-ci/archive/20231204/202312042157.f0dFTXW4-lkp@intel.com/config)
compiler: sh4-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231204/202312042157.f0dFTXW4-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/202312042157.f0dFTXW4-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/soc/qcom/smsm.c:152:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int [usertype] *local_state @@
   drivers/soc/qcom/smsm.c:152:22: sparse:     expected void const volatile [noderef] __iomem *ptr
   drivers/soc/qcom/smsm.c:152:22: sparse:     got unsigned int [usertype] *local_state
   drivers/soc/qcom/smsm.c:164:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int [usertype] *local_state @@
   drivers/soc/qcom/smsm.c:164:9: sparse:     expected void const volatile [noderef] __iomem *ptr
   drivers/soc/qcom/smsm.c:164:9: sparse:     got unsigned int [usertype] *local_state
>> drivers/soc/qcom/smsm.c:174:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int [usertype] * @@
   drivers/soc/qcom/smsm.c:174:23: sparse:     expected void const volatile [noderef] __iomem *ptr
   drivers/soc/qcom/smsm.c:174:23: sparse:     got unsigned int [usertype] *
>> drivers/soc/qcom/smsm.c:206:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int [usertype] *remote_state @@
   drivers/soc/qcom/smsm.c:206:15: sparse:     expected void const volatile [noderef] __iomem *ptr
   drivers/soc/qcom/smsm.c:206:15: sparse:     got unsigned int [usertype] *remote_state
   drivers/soc/qcom/smsm.c:245:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int [usertype] * @@
   drivers/soc/qcom/smsm.c:245:23: sparse:     expected void const volatile [noderef] __iomem *ptr
   drivers/soc/qcom/smsm.c:245:23: sparse:     got unsigned int [usertype] *
   drivers/soc/qcom/smsm.c:247:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int [usertype] * @@
   drivers/soc/qcom/smsm.c:247:17: sparse:     expected void const volatile [noderef] __iomem *ptr
   drivers/soc/qcom/smsm.c:247:17: sparse:     got unsigned int [usertype] *
   drivers/soc/qcom/smsm.c:272:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int [usertype] * @@
   drivers/soc/qcom/smsm.c:272:23: sparse:     expected void const volatile [noderef] __iomem *ptr
   drivers/soc/qcom/smsm.c:272:23: sparse:     got unsigned int [usertype] *
   drivers/soc/qcom/smsm.c:274:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int [usertype] * @@
   drivers/soc/qcom/smsm.c:274:17: sparse:     expected void const volatile [noderef] __iomem *ptr
   drivers/soc/qcom/smsm.c:274:17: sparse:     got unsigned int [usertype] *
   drivers/soc/qcom/smsm.c:569:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int [usertype] * @@
   drivers/soc/qcom/smsm.c:569:17: sparse:     expected void const volatile [noderef] __iomem *ptr
   drivers/soc/qcom/smsm.c:569:17: sparse:     got unsigned int [usertype] *
--
>> drivers/soc/qcom/smp2p.c:218:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int [usertype] *value @@
   drivers/soc/qcom/smp2p.c:218:23: sparse:     expected void const volatile [noderef] __iomem *ptr
   drivers/soc/qcom/smp2p.c:218:23: sparse:     got unsigned int [usertype] *value
   drivers/soc/qcom/smp2p.c:325:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int [usertype] *value @@
   drivers/soc/qcom/smp2p.c:325:22: sparse:     expected void const volatile [noderef] __iomem *ptr
   drivers/soc/qcom/smp2p.c:325:22: sparse:     got unsigned int [usertype] *value
   drivers/soc/qcom/smp2p.c:328:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __iomem *ptr @@     got unsigned int [usertype] *value @@
   drivers/soc/qcom/smp2p.c:328:9: sparse:     expected void const volatile [noderef] __iomem *ptr
   drivers/soc/qcom/smp2p.c:328:9: sparse:     got unsigned int [usertype] *value

vim +152 drivers/soc/qcom/smsm.c

c97c4090ff7229 Bjorn Andersson 2015-09-24  129  
c97c4090ff7229 Bjorn Andersson 2015-09-24  130  /**
c97c4090ff7229 Bjorn Andersson 2015-09-24  131   * smsm_update_bits() - change bit in outgoing entry and inform subscribers
c97c4090ff7229 Bjorn Andersson 2015-09-24  132   * @data:	smsm context pointer
c97c4090ff7229 Bjorn Andersson 2015-09-24  133   * @offset:	bit in the entry
c97c4090ff7229 Bjorn Andersson 2015-09-24  134   * @value:	new value
c97c4090ff7229 Bjorn Andersson 2015-09-24  135   *
c97c4090ff7229 Bjorn Andersson 2015-09-24  136   * Used to set and clear the bits in the outgoing/local entry and inform
c97c4090ff7229 Bjorn Andersson 2015-09-24  137   * subscribers about the change.
c97c4090ff7229 Bjorn Andersson 2015-09-24  138   */
c97c4090ff7229 Bjorn Andersson 2015-09-24  139  static int smsm_update_bits(void *data, u32 mask, u32 value)
c97c4090ff7229 Bjorn Andersson 2015-09-24  140  {
c97c4090ff7229 Bjorn Andersson 2015-09-24  141  	struct qcom_smsm *smsm = data;
c97c4090ff7229 Bjorn Andersson 2015-09-24  142  	struct smsm_host *hostp;
c97c4090ff7229 Bjorn Andersson 2015-09-24  143  	unsigned long flags;
c97c4090ff7229 Bjorn Andersson 2015-09-24  144  	u32 changes;
c97c4090ff7229 Bjorn Andersson 2015-09-24  145  	u32 host;
c97c4090ff7229 Bjorn Andersson 2015-09-24  146  	u32 orig;
c97c4090ff7229 Bjorn Andersson 2015-09-24  147  	u32 val;
c97c4090ff7229 Bjorn Andersson 2015-09-24  148  
c97c4090ff7229 Bjorn Andersson 2015-09-24  149  	spin_lock_irqsave(&smsm->lock, flags);
c97c4090ff7229 Bjorn Andersson 2015-09-24  150  
c97c4090ff7229 Bjorn Andersson 2015-09-24  151  	/* Update the entry */
c97c4090ff7229 Bjorn Andersson 2015-09-24 @152  	val = orig = readl(smsm->local_state);
c97c4090ff7229 Bjorn Andersson 2015-09-24  153  	val &= ~mask;
c97c4090ff7229 Bjorn Andersson 2015-09-24  154  	val |= value;
c97c4090ff7229 Bjorn Andersson 2015-09-24  155  
c97c4090ff7229 Bjorn Andersson 2015-09-24  156  	/* Don't signal if we didn't change the value */
c97c4090ff7229 Bjorn Andersson 2015-09-24  157  	changes = val ^ orig;
c97c4090ff7229 Bjorn Andersson 2015-09-24  158  	if (!changes) {
c97c4090ff7229 Bjorn Andersson 2015-09-24  159  		spin_unlock_irqrestore(&smsm->lock, flags);
c97c4090ff7229 Bjorn Andersson 2015-09-24  160  		goto done;
c97c4090ff7229 Bjorn Andersson 2015-09-24  161  	}
c97c4090ff7229 Bjorn Andersson 2015-09-24  162  
c97c4090ff7229 Bjorn Andersson 2015-09-24  163  	/* Write out the new value */
c97c4090ff7229 Bjorn Andersson 2015-09-24  164  	writel(val, smsm->local_state);
c97c4090ff7229 Bjorn Andersson 2015-09-24  165  	spin_unlock_irqrestore(&smsm->lock, flags);
c97c4090ff7229 Bjorn Andersson 2015-09-24  166  
c97c4090ff7229 Bjorn Andersson 2015-09-24  167  	/* Make sure the value update is ordered before any kicks */
c97c4090ff7229 Bjorn Andersson 2015-09-24  168  	wmb();
c97c4090ff7229 Bjorn Andersson 2015-09-24  169  
c97c4090ff7229 Bjorn Andersson 2015-09-24  170  	/* Iterate over all hosts to check whom wants a kick */
c97c4090ff7229 Bjorn Andersson 2015-09-24  171  	for (host = 0; host < smsm->num_hosts; host++) {
c97c4090ff7229 Bjorn Andersson 2015-09-24  172  		hostp = &smsm->hosts[host];
c97c4090ff7229 Bjorn Andersson 2015-09-24  173  
c97c4090ff7229 Bjorn Andersson 2015-09-24 @174  		val = readl(smsm->subscription + host);
c97c4090ff7229 Bjorn Andersson 2015-09-24  175  		if (val & changes && hostp->ipc_regmap) {
c97c4090ff7229 Bjorn Andersson 2015-09-24  176  			regmap_write(hostp->ipc_regmap,
c97c4090ff7229 Bjorn Andersson 2015-09-24  177  				     hostp->ipc_offset,
c97c4090ff7229 Bjorn Andersson 2015-09-24  178  				     BIT(hostp->ipc_bit));
c97c4090ff7229 Bjorn Andersson 2015-09-24  179  		}
c97c4090ff7229 Bjorn Andersson 2015-09-24  180  	}
c97c4090ff7229 Bjorn Andersson 2015-09-24  181  
c97c4090ff7229 Bjorn Andersson 2015-09-24  182  done:
c97c4090ff7229 Bjorn Andersson 2015-09-24  183  	return 0;
c97c4090ff7229 Bjorn Andersson 2015-09-24  184  }
c97c4090ff7229 Bjorn Andersson 2015-09-24  185  
c97c4090ff7229 Bjorn Andersson 2015-09-24  186  static const struct qcom_smem_state_ops smsm_state_ops = {
c97c4090ff7229 Bjorn Andersson 2015-09-24  187  	.update_bits = smsm_update_bits,
c97c4090ff7229 Bjorn Andersson 2015-09-24  188  };
c97c4090ff7229 Bjorn Andersson 2015-09-24  189  
c97c4090ff7229 Bjorn Andersson 2015-09-24  190  /**
c97c4090ff7229 Bjorn Andersson 2015-09-24  191   * smsm_intr() - cascading IRQ handler for SMSM
c97c4090ff7229 Bjorn Andersson 2015-09-24  192   * @irq:	unused
c97c4090ff7229 Bjorn Andersson 2015-09-24  193   * @data:	entry related to this IRQ
c97c4090ff7229 Bjorn Andersson 2015-09-24  194   *
c97c4090ff7229 Bjorn Andersson 2015-09-24  195   * This function cascades an incoming interrupt from a remote system, based on
c97c4090ff7229 Bjorn Andersson 2015-09-24  196   * the state bits and configuration.
c97c4090ff7229 Bjorn Andersson 2015-09-24  197   */
c97c4090ff7229 Bjorn Andersson 2015-09-24  198  static irqreturn_t smsm_intr(int irq, void *data)
c97c4090ff7229 Bjorn Andersson 2015-09-24  199  {
c97c4090ff7229 Bjorn Andersson 2015-09-24  200  	struct smsm_entry *entry = data;
c97c4090ff7229 Bjorn Andersson 2015-09-24  201  	unsigned i;
c97c4090ff7229 Bjorn Andersson 2015-09-24  202  	int irq_pin;
c97c4090ff7229 Bjorn Andersson 2015-09-24  203  	u32 changed;
c97c4090ff7229 Bjorn Andersson 2015-09-24  204  	u32 val;
c97c4090ff7229 Bjorn Andersson 2015-09-24  205  
c97c4090ff7229 Bjorn Andersson 2015-09-24 @206  	val = readl(entry->remote_state);
c97c4090ff7229 Bjorn Andersson 2015-09-24  207  	changed = val ^ entry->last_value;
c97c4090ff7229 Bjorn Andersson 2015-09-24  208  	entry->last_value = val;
c97c4090ff7229 Bjorn Andersson 2015-09-24  209  
c97c4090ff7229 Bjorn Andersson 2015-09-24  210  	for_each_set_bit(i, entry->irq_enabled, 32) {
c97c4090ff7229 Bjorn Andersson 2015-09-24  211  		if (!(changed & BIT(i)))
c97c4090ff7229 Bjorn Andersson 2015-09-24  212  			continue;
c97c4090ff7229 Bjorn Andersson 2015-09-24  213  
c97c4090ff7229 Bjorn Andersson 2015-09-24  214  		if (val & BIT(i)) {
c97c4090ff7229 Bjorn Andersson 2015-09-24  215  			if (test_bit(i, entry->irq_rising)) {
c97c4090ff7229 Bjorn Andersson 2015-09-24  216  				irq_pin = irq_find_mapping(entry->domain, i);
c97c4090ff7229 Bjorn Andersson 2015-09-24  217  				handle_nested_irq(irq_pin);
c97c4090ff7229 Bjorn Andersson 2015-09-24  218  			}
c97c4090ff7229 Bjorn Andersson 2015-09-24  219  		} else {
c97c4090ff7229 Bjorn Andersson 2015-09-24  220  			if (test_bit(i, entry->irq_falling)) {
c97c4090ff7229 Bjorn Andersson 2015-09-24  221  				irq_pin = irq_find_mapping(entry->domain, i);
c97c4090ff7229 Bjorn Andersson 2015-09-24  222  				handle_nested_irq(irq_pin);
c97c4090ff7229 Bjorn Andersson 2015-09-24  223  			}
c97c4090ff7229 Bjorn Andersson 2015-09-24  224  		}
c97c4090ff7229 Bjorn Andersson 2015-09-24  225  	}
c97c4090ff7229 Bjorn Andersson 2015-09-24  226  
c97c4090ff7229 Bjorn Andersson 2015-09-24  227  	return IRQ_HANDLED;
c97c4090ff7229 Bjorn Andersson 2015-09-24  228  }
c97c4090ff7229 Bjorn Andersson 2015-09-24  229  

:::::: The code at line 152 was first introduced by commit
:::::: c97c4090ff72297a878a37715bd301624b71c885 soc: qcom: smsm: Add driver for Qualcomm SMSM

:::::: TO: Bjorn Andersson <bjorn.andersson@sonymobile.com>
:::::: CC: Andy Gross <agross@codeaurora.org>

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

             reply	other threads:[~2023-12-04 14:13 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-04 14:12 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-12-11 14:23 drivers/soc/qcom/smsm.c:152:22: sparse: sparse: incorrect type in argument 1 (different address spaces) kernel test robot
2023-12-13  5:39 ` Liu, Yujie
2020-11-21 20:03 kernel test robot
2020-11-21 20:03 ` kernel test robot

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=202312042157.f0dFTXW4-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luc.vanoostenryck@gmail.com \
    --cc=miguel.ojeda.sandonis@gmail.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.