Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
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


      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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox