mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sudeep Holla <sudeep.holla@arm.com>
To: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Sudeep Holla <sudeep.holla@arm.com>,
	 Adam Young <admiyo@os.amperecomputing.com>,
	 Robbie King <robbiek@xsightlabs.com>,
	Huisong Li <lihuisong@huawei.com>,
	 Jassi Brar <jassisinghbrar@gmail.com>,
	 Cristian Marussi <cristian.marussi@arm.com>
Subject: [PATCH 5/6] mailbox: pcc: Initialize SHMEM before binding the channel with the client
Date: Thu, 16 Oct 2025 20:08:19 +0100	[thread overview]
Message-ID: <20251016-pcc_mb_updates-v1-5-0fba69616f69@arm.com> (raw)
In-Reply-To: <20251016-pcc_mb_updates-v1-0-0fba69616f69@arm.com>

The PCC channel's shared memory region must be set up before the
mailbox controller binds the channel with the client, as the binding
process may trigger client operations like startup() that may rely on
SHMEM being initialized.

Reorder the setup sequence to ensure the shared memory is ready before
binding. Initialize and map the PCC shared memory (SHMEM) prior to
calling mbox_bind_client() so that clients never observe an uninitialized
or NULL SHMEM during bind-time callbacks or early use in startup().

This makes the PCC mailbox channel bring-up order consistent and
eliminates a race between SHMEM setup and client binding.

This will be needed in channel startup to clear/acknowledge any pending
interrupts before enabling them.

Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 drivers/mailbox/pcc.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/drivers/mailbox/pcc.c b/drivers/mailbox/pcc.c
index 33bd2d05704b..2829ec51b47f 100644
--- a/drivers/mailbox/pcc.c
+++ b/drivers/mailbox/pcc.c
@@ -378,18 +378,20 @@ pcc_mbox_request_channel(struct mbox_client *cl, int subspace_id)
 		return ERR_PTR(-EBUSY);
 	}
 
-	rc = mbox_bind_client(chan, cl);
-	if (rc)
-		return ERR_PTR(rc);
-
 	pcc_mchan = &pchan->chan;
 	pcc_mchan->shmem = acpi_os_ioremap(pcc_mchan->shmem_base_addr,
 					   pcc_mchan->shmem_size);
-	if (pcc_mchan->shmem)
-		return pcc_mchan;
+	if (!pcc_mchan->shmem)
+		return ERR_PTR(-ENXIO);
 
-	mbox_free_channel(chan);
-	return ERR_PTR(-ENXIO);
+	rc = mbox_bind_client(chan, cl);
+	if (rc) {
+		iounmap(pcc_mchan->shmem);
+		pcc_mchan->shmem = NULL;
+		return ERR_PTR(rc);
+	}
+
+	return pcc_mchan;
 }
 EXPORT_SYMBOL_GPL(pcc_mbox_request_channel);
 

-- 
2.34.1


  parent reply	other threads:[~2025-10-16 19:08 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-16 19:08 [PATCH 0/6] mailbox: pcc: Refactor and improve initialisation and interrupt handling Sudeep Holla
2025-10-16 19:08 ` [PATCH 1/6] Revert "mailbox/pcc: support mailbox management of the shared buffer" Sudeep Holla
2025-10-17 16:54   ` Adam Young
2025-10-20  3:46   ` lihuisong (C)
2025-10-16 19:08 ` [PATCH 2/6] mailbox: pcc: Wire up ->last_tx_done() for PCC channels Sudeep Holla
2025-10-17 16:48   ` Adam Young
2025-10-17 16:59     ` Adam Young
2025-10-20  4:01   ` lihuisong (C)
2025-10-16 19:08 ` [PATCH 3/6] mailbox: pcc: Set txdone_irq/txdone_poll based on PCCT flags Sudeep Holla
2025-10-17 17:16   ` Adam Young
2025-10-20  4:02   ` lihuisong (C)
2025-10-16 19:08 ` [PATCH 4/6] mailbox: pcc: Mark Tx as complete in PCC IRQ handler Sudeep Holla
2025-10-17 16:54   ` Adam Young
2025-10-20  4:08   ` lihuisong (C)
2026-04-10  9:15     ` lihuisong (C)
2025-10-16 19:08 ` Sudeep Holla [this message]
2025-10-17 16:59   ` [PATCH 5/6] mailbox: pcc: Initialize SHMEM before binding the channel with the client Adam Young
2025-10-20  4:15   ` lihuisong (C)
2025-10-16 19:08 ` [PATCH 6/6] mailbox: pcc: Clear any pending responder interrupts before enabling it Sudeep Holla
2025-10-17 17:03   ` Adam Young
2025-10-17 16:49 ` [PATCH 0/6] mailbox: pcc: Refactor and improve initialisation and interrupt handling Adam Young
2025-11-27 14:40 ` Sudeep Holla
2026-01-12 16:55   ` Sudeep Holla
2026-01-26 17:07     ` Adam Young
2026-01-26 17:08       ` Adam Young
2026-01-27  9:29       ` Sudeep Holla
2026-02-04 21:40         ` Adam Young
2026-02-05  7:31           ` Adam Young
2026-02-24 23:13         ` Adam Young

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=20251016-pcc_mb_updates-v1-5-0fba69616f69@arm.com \
    --to=sudeep.holla@arm.com \
    --cc=admiyo@os.amperecomputing.com \
    --cc=cristian.marussi@arm.com \
    --cc=jassisinghbrar@gmail.com \
    --cc=lihuisong@huawei.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robbiek@xsightlabs.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®