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
next 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.