All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: drivers/mailbox/mailbox-mchp-ipc-sbi.c:187 mchp_ipc_cluster_aggr_isr() error: uninitialized symbol 'hartid'.
Date: Wed, 17 Dec 2025 15:46:27 +0800	[thread overview]
Message-ID: <202512171533.CDLdScMY-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Valentina Fernandez <valentina.fernandezalanis@microchip.com>
CC: Jassi Brar <jassisinghbrar@gmail.com>

Hi Valentina,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   ea1013c1539270e372fc99854bc6e4d94eaeff66
commit: c1382852330ee2e78d884bab2da25b880488fa1c riscv: sbi: vendorid_list: Add Microchip Technology to the vendor list
date:   11 months ago
:::::: branch date: 4 hours ago
:::::: commit date: 11 months ago
config: riscv-randconfig-r071-20251216 (https://download.01.org/0day-ci/archive/20251217/202512171533.CDLdScMY-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 1335a05ab8bc8339ce24be3a9da89d8c3f4e0571)

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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202512171533.CDLdScMY-lkp@intel.com/

New smatch warnings:
drivers/mailbox/mailbox-mchp-ipc-sbi.c:187 mchp_ipc_cluster_aggr_isr() error: uninitialized symbol 'hartid'.

Old smatch warnings:
drivers/mailbox/mailbox-mchp-ipc-sbi.c:422 mchp_ipc_probe() warn: passing zero to 'dev_err_probe'

vim +/hartid +187 drivers/mailbox/mailbox-mchp-ipc-sbi.c

e4b1d67e71419c Valentina Fernandez 2024-12-17  168  
e4b1d67e71419c Valentina Fernandez 2024-12-17  169  static irqreturn_t mchp_ipc_cluster_aggr_isr(int irq, void *data)
e4b1d67e71419c Valentina Fernandez 2024-12-17  170  {
e4b1d67e71419c Valentina Fernandez 2024-12-17  171  	struct mbox_chan *chan;
e4b1d67e71419c Valentina Fernandez 2024-12-17  172  	struct mchp_ipc_sbi_chan *chan_info;
e4b1d67e71419c Valentina Fernandez 2024-12-17  173  	struct mchp_ipc_sbi_mbox *ipc = (struct mchp_ipc_sbi_mbox *)data;
e4b1d67e71419c Valentina Fernandez 2024-12-17  174  	struct mchp_ipc_msg ipc_msg;
e4b1d67e71419c Valentina Fernandez 2024-12-17  175  	struct mchp_ipc_status status_msg;
e4b1d67e71419c Valentina Fernandez 2024-12-17  176  	int ret;
e4b1d67e71419c Valentina Fernandez 2024-12-17  177  	unsigned long hartid;
e4b1d67e71419c Valentina Fernandez 2024-12-17  178  	u32 i, chan_index, chan_id;
e4b1d67e71419c Valentina Fernandez 2024-12-17  179  
e4b1d67e71419c Valentina Fernandez 2024-12-17  180  	/* Find out the hart that originated the irq */
e4b1d67e71419c Valentina Fernandez 2024-12-17  181  	for_each_online_cpu(i) {
e4b1d67e71419c Valentina Fernandez 2024-12-17  182  		hartid = cpuid_to_hartid_map(i);
e4b1d67e71419c Valentina Fernandez 2024-12-17  183  		if (irq == ipc->cluster_cfg[hartid].irq)
e4b1d67e71419c Valentina Fernandez 2024-12-17  184  			break;
e4b1d67e71419c Valentina Fernandez 2024-12-17  185  	}
e4b1d67e71419c Valentina Fernandez 2024-12-17  186  
e4b1d67e71419c Valentina Fernandez 2024-12-17 @187  	status_msg.cluster = hartid;
e4b1d67e71419c Valentina Fernandez 2024-12-17  188  	memcpy(ipc->cluster_cfg[hartid].buf_base, &status_msg, sizeof(struct mchp_ipc_status));
e4b1d67e71419c Valentina Fernandez 2024-12-17  189  
e4b1d67e71419c Valentina Fernandez 2024-12-17  190  	ret = mchp_ipc_sbi_send(SBI_EXT_IPC_STATUS, ipc->cluster_cfg[hartid].buf_base_addr);
e4b1d67e71419c Valentina Fernandez 2024-12-17  191  	if (ret < 0) {
e4b1d67e71419c Valentina Fernandez 2024-12-17  192  		dev_err_ratelimited(ipc->dev, "could not get IHC irq status ret=%d\n", ret);
e4b1d67e71419c Valentina Fernandez 2024-12-17  193  		return IRQ_HANDLED;
e4b1d67e71419c Valentina Fernandez 2024-12-17  194  	}
e4b1d67e71419c Valentina Fernandez 2024-12-17  195  
e4b1d67e71419c Valentina Fernandez 2024-12-17  196  	memcpy(&status_msg, ipc->cluster_cfg[hartid].buf_base, sizeof(struct mchp_ipc_status));
e4b1d67e71419c Valentina Fernandez 2024-12-17  197  
e4b1d67e71419c Valentina Fernandez 2024-12-17  198  	/*
e4b1d67e71419c Valentina Fernandez 2024-12-17  199  	 * Iterate over each bit set in the IHC interrupt status register (IRQ_STATUS) to identify
e4b1d67e71419c Valentina Fernandez 2024-12-17  200  	 * the channel(s) that have a message to be processed/acknowledged.
e4b1d67e71419c Valentina Fernandez 2024-12-17  201  	 * The bits are organized in alternating format, where each pair of bits represents
e4b1d67e71419c Valentina Fernandez 2024-12-17  202  	 * the status of the message present and message clear interrupts for each cluster/hart
e4b1d67e71419c Valentina Fernandez 2024-12-17  203  	 * (from hart 0 to hart 5). Each cluster can have up to 5 fixed channels associated.
e4b1d67e71419c Valentina Fernandez 2024-12-17  204  	 */
e4b1d67e71419c Valentina Fernandez 2024-12-17  205  
e4b1d67e71419c Valentina Fernandez 2024-12-17  206  	for_each_set_bit(i, (unsigned long *)&status_msg.status, IRQ_STATUS_BITS) {
e4b1d67e71419c Valentina Fernandez 2024-12-17  207  		/* Find out the destination hart that triggered the interrupt */
e4b1d67e71419c Valentina Fernandez 2024-12-17  208  		chan_index = i / 2;
e4b1d67e71419c Valentina Fernandez 2024-12-17  209  
e4b1d67e71419c Valentina Fernandez 2024-12-17  210  		/*
e4b1d67e71419c Valentina Fernandez 2024-12-17  211  		 * The IP has no loopback channels, so we need to decrement the index when
e4b1d67e71419c Valentina Fernandez 2024-12-17  212  		 * the target hart has a greater index than our own
e4b1d67e71419c Valentina Fernandez 2024-12-17  213  		 */
e4b1d67e71419c Valentina Fernandez 2024-12-17  214  		if (chan_index >= status_msg.cluster)
e4b1d67e71419c Valentina Fernandez 2024-12-17  215  			chan_index--;
e4b1d67e71419c Valentina Fernandez 2024-12-17  216  
e4b1d67e71419c Valentina Fernandez 2024-12-17  217  		/*
e4b1d67e71419c Valentina Fernandez 2024-12-17  218  		 * Calculate the channel id given the hart and channel index. Channel IDs
e4b1d67e71419c Valentina Fernandez 2024-12-17  219  		 * are unique across all clusters of an IPC, and iterate contiguously
e4b1d67e71419c Valentina Fernandez 2024-12-17  220  		 * across all clusters.
e4b1d67e71419c Valentina Fernandez 2024-12-17  221  		 */
e4b1d67e71419c Valentina Fernandez 2024-12-17  222  		chan_id = status_msg.cluster * (NUM_CHANS_PER_CLUSTER + chan_index);
e4b1d67e71419c Valentina Fernandez 2024-12-17  223  
e4b1d67e71419c Valentina Fernandez 2024-12-17  224  		chan = &ipc->chans[chan_id];
e4b1d67e71419c Valentina Fernandez 2024-12-17  225  		chan_info = (struct mchp_ipc_sbi_chan *)chan->con_priv;
e4b1d67e71419c Valentina Fernandez 2024-12-17  226  
e4b1d67e71419c Valentina Fernandez 2024-12-17  227  		if (i % 2 == 0) {
e4b1d67e71419c Valentina Fernandez 2024-12-17  228  			mchp_ipc_prepare_receive_req(chan);
e4b1d67e71419c Valentina Fernandez 2024-12-17  229  			ret = mchp_ipc_sbi_chan_send(SBI_EXT_IPC_RECEIVE, chan_id,
e4b1d67e71419c Valentina Fernandez 2024-12-17  230  						     chan_info->buf_base_rx_addr);
e4b1d67e71419c Valentina Fernandez 2024-12-17  231  			if (ret < 0)
e4b1d67e71419c Valentina Fernandez 2024-12-17  232  				continue;
e4b1d67e71419c Valentina Fernandez 2024-12-17  233  
e4b1d67e71419c Valentina Fernandez 2024-12-17  234  			mchp_ipc_process_received_data(chan, &ipc_msg);
e4b1d67e71419c Valentina Fernandez 2024-12-17  235  			mbox_chan_received_data(&ipc->chans[chan_id], (void *)&ipc_msg);
e4b1d67e71419c Valentina Fernandez 2024-12-17  236  
e4b1d67e71419c Valentina Fernandez 2024-12-17  237  		} else {
e4b1d67e71419c Valentina Fernandez 2024-12-17  238  			ret = mchp_ipc_sbi_chan_send(SBI_EXT_IPC_RECEIVE, chan_id,
e4b1d67e71419c Valentina Fernandez 2024-12-17  239  						     chan_info->buf_base_rx_addr);
e4b1d67e71419c Valentina Fernandez 2024-12-17  240  			mbox_chan_txdone(&ipc->chans[chan_id], ret);
e4b1d67e71419c Valentina Fernandez 2024-12-17  241  		}
e4b1d67e71419c Valentina Fernandez 2024-12-17  242  	}
e4b1d67e71419c Valentina Fernandez 2024-12-17  243  	return IRQ_HANDLED;
e4b1d67e71419c Valentina Fernandez 2024-12-17  244  }
e4b1d67e71419c Valentina Fernandez 2024-12-17  245  

:::::: The code at line 187 was first introduced by commit
:::::: e4b1d67e71419c4af581890ecea84b04920d4116 mailbox: add Microchip IPC support

:::::: TO: Valentina Fernandez <valentina.fernandezalanis@microchip.com>
:::::: CC: Jassi Brar <jassisinghbrar@gmail.com>

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

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@linaro.org>
To: oe-kbuild@lists.linux.dev,
	Valentina Fernandez <valentina.fernandezalanis@microchip.com>
Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev,
	linux-kernel@vger.kernel.org,
	Jassi Brar <jassisinghbrar@gmail.com>
Subject: drivers/mailbox/mailbox-mchp-ipc-sbi.c:187 mchp_ipc_cluster_aggr_isr() error: uninitialized symbol 'hartid'.
Date: Wed, 17 Dec 2025 16:20:02 +0300	[thread overview]
Message-ID: <202512171533.CDLdScMY-lkp@intel.com> (raw)
Message-ID: <20251217132002.ckekJQaHK0iaxfrh_FKHwMIbiZyBWJa-rPeCkIgsYG0@z> (raw)

Hi Valentina,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   ea1013c1539270e372fc99854bc6e4d94eaeff66
commit: c1382852330ee2e78d884bab2da25b880488fa1c riscv: sbi: vendorid_list: Add Microchip Technology to the vendor list
config: riscv-randconfig-r071-20251216 (https://download.01.org/0day-ci/archive/20251217/202512171533.CDLdScMY-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 1335a05ab8bc8339ce24be3a9da89d8c3f4e0571)

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>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202512171533.CDLdScMY-lkp@intel.com/

Old smatch warnings:
drivers/mailbox/mailbox-mchp-ipc-sbi.c:422 mchp_ipc_probe() warn: passing zero to 'dev_err_probe'

vim +/hartid +187 drivers/mailbox/mailbox-mchp-ipc-sbi.c
   410  static int mchp_ipc_probe(struct platform_device *pdev)
   411  {
   412          struct device *dev = &pdev->dev;
   413          struct mchp_ipc_mbox_info ipc_info;
   414          struct mchp_ipc_sbi_mbox *ipc;
   415          struct mchp_ipc_sbi_chan *priv;
   416          bool irq_avail = false;
   417          int ret;
   418          u32 chan_id;
   419  
   420          ret = sbi_probe_extension(SBI_EXT_MICROCHIP_TECHNOLOGY);
   421          if (ret <= 0)
   422                  return dev_err_probe(dev, ret, "Microchip SBI extension not detected\n");
                                                  ^^^
sbi_probe_extension() returns zero on error which is success here.

   423  
   424          ipc = devm_kzalloc(dev, sizeof(*ipc), GFP_KERNEL);
   425          if (!ipc)
   426                  return -ENOMEM;
   427  
   428          platform_set_drvdata(pdev, ipc);
   429  
   430          ipc->buf_base = devm_kmalloc(dev, sizeof(struct mchp_ipc_mbox_info), GFP_KERNEL);
   431          if (!ipc->buf_base)
   432                  return -ENOMEM;
   433  
   434          ipc->buf_base_addr = __pa(ipc->buf_base);
   435  
   436          ret = mchp_ipc_sbi_send(SBI_EXT_IPC_PROBE, ipc->buf_base_addr);
   437          if (ret < 0)

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


             reply	other threads:[~2025-12-17  7:47 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-17  7:46 kernel test robot [this message]
2025-12-17 13:20 ` drivers/mailbox/mailbox-mchp-ipc-sbi.c:187 mchp_ipc_cluster_aggr_isr() error: uninitialized symbol 'hartid' Dan Carpenter

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=202512171533.CDLdScMY-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=error27@gmail.com \
    --cc=oe-kbuild@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.