[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CABb+yY1EwQF__04hpxyujJuvpS4+g=thY3Yd=Efn=aw3yQha3A@mail.gmail.com>
Date: Sun, 18 Jan 2026 14:53:02 -0600
From: Jassi Brar <jassisinghbrar@...il.com>
To: Valentina Fernandez <valentina.fernandezalanis@...rochip.com>
Cc: conor.dooley@...rochip.com, dan.carpenter@...aro.org,
linux-kernel@...r.kernel.org, lkp@...el.com
Subject: Re: [PATCH v1] mailbox: mchp-ipc-sbi: fix uninitialized symbol and
other smatch warnings
On Thu, Dec 18, 2025 at 4:35 AM Valentina Fernandez
<valentina.fernandezalanis@...rochip.com> wrote:
>
> Fix uninitialized symbol 'hartid' warning in mchp_ipc_cluster_aggr_isr()
> by introducing a 'found' flag to track whether the IRQ matches any
> online hart. If no match is found, return IRQ_NONE.
>
> Also fix other smatch warnings by removing dead code in
> mchp_ipc_startup() and by returning -ENODEV in dev_err_probe() if the
> Microchip SBI extension is not found.
>
> Fixes below smatch warnings:
> drivers/mailbox/mailbox-mchp-ipc-sbi.c:187 mchp_ipc_cluster_aggr_isr() error: uninitialized symbol 'hartid'.
> drivers/mailbox/mailbox-mchp-ipc-sbi.c:324 mchp_ipc_startup() warn: ignoring unreachable code.
> drivers/mailbox/mailbox-mchp-ipc-sbi.c:422 mchp_ipc_probe() warn: passing zero to 'dev_err_probe'
>
> Reported-by: kernel test robot <lkp@...el.com>
> Reported-by: Dan Carpenter <dan.carpenter@...aro.org>
> Closes: https://lore.kernel.org/r/202512171533.CDLdScMY-lkp@intel.com/
> Signed-off-by: Valentina Fernandez <valentina.fernandezalanis@...rochip.com>
> ---
> drivers/mailbox/mailbox-mchp-ipc-sbi.c | 21 +++++++++------------
> 1 file changed, 9 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/mailbox/mailbox-mchp-ipc-sbi.c b/drivers/mailbox/mailbox-mchp-ipc-sbi.c
> index d444491a584e..b87bf2fb4b9b 100644
> --- a/drivers/mailbox/mailbox-mchp-ipc-sbi.c
> +++ b/drivers/mailbox/mailbox-mchp-ipc-sbi.c
> @@ -174,17 +174,21 @@ static irqreturn_t mchp_ipc_cluster_aggr_isr(int irq, void *data)
> struct mchp_ipc_msg ipc_msg;
> struct mchp_ipc_status status_msg;
> int ret;
> - unsigned long hartid;
> u32 i, chan_index, chan_id;
> + bool found = false;
>
> /* Find out the hart that originated the irq */
> for_each_online_cpu(i) {
> - hartid = cpuid_to_hartid_map(i);
> - if (irq == ipc->cluster_cfg[i].irq)
> + if (irq == ipc->cluster_cfg[i].irq) {
> + found = true;
> break;
> + }
> }
>
> - status_msg.cluster = hartid;
> + if (unlikely(!found))
> + return IRQ_NONE;
> +
> + status_msg.cluster = cpuid_to_hartid_map(i);
> memcpy(ipc->cluster_cfg[i].buf_base, &status_msg, sizeof(struct mchp_ipc_status));
>
> ret = mchp_ipc_sbi_send(SBI_EXT_IPC_STATUS, ipc->cluster_cfg[i].buf_base_addr);
> @@ -321,13 +325,6 @@ static int mchp_ipc_startup(struct mbox_chan *chan)
> goto fail_free_buf_msg_rx;
> }
>
> - if (ret) {
> - dev_err(ipc->dev, "failed to register interrupt(s)\n");
> - goto fail_free_buf_msg_rx;
> - }
> -
> - return ret;
> -
> fail_free_buf_msg_rx:
> kfree(chan_info->msg_buf_rx);
> fail_free_buf_msg_tx:
> @@ -419,7 +416,7 @@ static int mchp_ipc_probe(struct platform_device *pdev)
>
> ret = sbi_probe_extension(SBI_EXT_MICROCHIP_TECHNOLOGY);
> if (ret <= 0)
> - return dev_err_probe(dev, ret, "Microchip SBI extension not detected\n");
> + return dev_err_probe(dev, -ENODEV, "Microchip SBI extension not detected\n");
>
> ipc = devm_kzalloc(dev, sizeof(*ipc), GFP_KERNEL);
> if (!ipc)
> --
> 2.34.1
>
Applied to mailbox/for-next.
Thanks.
Powered by blists - more mailing lists