mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Pandey, Radhey Shyam" <radheys@amd.com>
To: Prasanna Kumar T S M <ptsm@linux.microsoft.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 11:23:33 +0530	[thread overview]
Message-ID: <15903ed0-d3bd-4cf9-a051-ec663411ae38@amd.com> (raw)
In-Reply-To: <20261103062051.676519-1-ptsm@linux.microsoft.com>

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.

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'

>   	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 ?


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


> +	}
>   
>   	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);
>   


  parent reply	other threads:[~2026-11-04  5:53 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-03  6:20 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 [this message]
2026-11-04 11:21   ` Prasanna Kumar T S M

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=15903ed0-d3bd-4cf9-a051-ec663411ae38@amd.com \
    --to=radheys@amd.com \
    --cc=jassisinghbrar@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michal.simek@amd.com \
    --cc=ptsm@linux.microsoft.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

all inboxes | Powered by JetHome®