From: Prasanna Kumar T S M <ptsm@linux.microsoft.com>
To: "Pandey, Radhey Shyam" <radheys@amd.com>,
jassisinghbrar@gmail.com, michal.simek@amd.com,
tanmay.shah@amd.com, saeed.nowshadi@amd.com,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
ssengar@linux.microsoft.com, tgopinath@linux.microsoft.com,
srivatsa@csail.mit.edu
Subject: Re: [PATCH 1/2] mailbox: zynqmp-ipi: Fix CPU hotplug state cleanup
Date: Wed, 4 Nov 2026 16:51:28 +0530 [thread overview]
Message-ID: <439409ae-bd42-459e-9c0d-21fc5629f635@linux.microsoft.com> (raw)
In-Reply-To: <15903ed0-d3bd-4cf9-a051-ec663411ae38@amd.com>
Hi Radhey Shyam,
Thanks for reviewing this.
On 04-11-2026 11:23, Pandey, Radhey Shyam wrote:
> On 11/3/2026 11:50 AM, Prasanna Kumar T S M wrote:
>> On driver removal, the CPUHP_AP_ONLINE_DYN CPU hotplug state is removed
>> instead of the its actual state. This can leave the mailbox driver
>> callbacks dangling. Use the actual CPU hotplug state during driver
>> removal.
>>
>> Hotplug registration failures are also ignored, allowing probe to
>> succeed without the callbacks needed to enable interrupts on CPUs
>> brought online later.
>>
>> Fixes: 6ffb1635341be ("mailbox: zynqmp: handle SGI for shared IPI")
>
> Nit - only first 12 characters of the SHA-1 ID are sufficient.
Sure, I will update.
>
> Also describe the failure signature and how the error is reproduced.
>
>
>> Signed-off-by: Prasanna Kumar T S M <ptsm@linux.microsoft.com>
>> ---
>> drivers/mailbox/zynqmp-ipi-mailbox.c | 14 +++++++++++---
>> 1 file changed, 11 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/mailbox/zynqmp-ipi-mailbox.c b/drivers/mailbox/
>> zynqmp-ipi-mailbox.c
>> index 42d2583e44ca..b0643ee75db0 100644
>> --- a/drivers/mailbox/zynqmp-ipi-mailbox.c
>> +++ b/drivers/mailbox/zynqmp-ipi-mailbox.c
>> @@ -136,6 +136,7 @@ struct zynqmp_ipi_pdata {
>> unsigned int method;
>> u32 local_id;
>> int virq_sgi;
>> + enum cpuhp_state hp_state;
>
> Warning: drivers/mailbox/zynqmp-ipi-mailbox.c:141 struct member
> 'hp_state' not described in 'zynqmp_ipi_pdata'
I will update this in v2.
>
>> int num_mboxes;
>> struct zynqmp_ipi_mbox ipi_mboxes[] __counted_by(num_mboxes);
>> };
>> @@ -863,15 +864,22 @@ static int xlnx_mbox_init_sgi(struct
>> platform_device *pdev,
>> irq_set_status_flags(pdata->virq_sgi, IRQ_PER_CPU);
>> /* Setup function for the CPU hot-plug cases */
>> - cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "mailbox/sgi:starting",
>> - xlnx_mbox_cpuhp_start, xlnx_mbox_cpuhp_down);
>> + pdata->hp_state = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN,
>> + "mailbox/sgi:starting", xlnx_mbox_cpuhp_start,
>
> what is :starting here ?
I used the existing string.
>
>> + xlnx_mbox_cpuhp_down);
>> + if (pdata->hp_state < 0) {
>> + irq_clear_status_flags(pdata->virq_sgi, IRQ_PER_CPU);
>> + free_percpu_irq(pdata->virq_sgi, &per_cpu_pdata);
>> + irq_dispose_mapping(pdata->virq_sgi);
>> + return pdata->hp_state;
>
> 1. The new error path double-frees and then hits BUG().
> Please reconfirm.
>
> zynqmp_ipi_probe() sets pdata->irq_type before calling
> xlnx_mbox_init_sgi(), and its only error label runs
> zynqmp_ipi_free_mboxes() → xlnx_mbox_cleanup_sgi() whenever irq_type
> == IPI_IRQ_TYPE_SGI. So the new unwind runs, then the caller's unwind
> repeats
> irq_clear_status_flags(), free_percpu_irq() and
> irq_dispose_mapping(). Before any of that, cleanup calls
> cpuhp_remove_state(pdata->hp_state) with the negative errno still in the
> field, and _cpuhp_remove_state_cpuslocked() opens with
> BUG_ON(cpuhp_cb_check(state)), which rejects anything <= CPUHP_OFFLINE.
> A failed hotplug registration now panics instead of failing probe.
>
I will fix this in v2.
>
>> + }
>> return ret;
>> }
>> static void xlnx_mbox_cleanup_sgi(struct zynqmp_ipi_pdata *pdata)
>> {
>> - cpuhp_remove_state(CPUHP_AP_ONLINE_DYN);
>> + cpuhp_remove_state(pdata->hp_state);
>> on_each_cpu(xlnx_disable_percpu_irq, NULL, 1);
Thanks,
Prasanna Kumar
prev parent reply other threads:[~2026-11-04 11:21 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-03 6:20 [PATCH 1/2] mailbox: zynqmp-ipi: Fix CPU hotplug state cleanup Prasanna Kumar T S M
2026-11-03 6:35 ` [PATCH 2/2] soc: xilinx: Fix event manager " Prasanna Kumar T S M
2026-11-03 12:26 ` Jay Buddhabhatti
2026-11-03 15:18 ` Prasanna Kumar T S M
2026-11-03 16:05 ` [PATCH 1/2] mailbox: zynqmp-ipi: Fix " kernel test robot
2026-11-04 5:53 ` Pandey, Radhey Shyam
2026-11-04 11:21 ` Prasanna Kumar T S M [this message]
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=439409ae-bd42-459e-9c0d-21fc5629f635@linux.microsoft.com \
--to=ptsm@linux.microsoft.com \
--cc=jassisinghbrar@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michal.simek@amd.com \
--cc=radheys@amd.com \
--cc=saeed.nowshadi@amd.com \
--cc=srivatsa@csail.mit.edu \
--cc=ssengar@linux.microsoft.com \
--cc=tanmay.shah@amd.com \
--cc=tgopinath@linux.microsoft.com \
/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.