From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Sudeep Holla <sudeep.holla@arm.com>, Dhruva Gole <d-gole@ti.com>,
Peng Fan <peng.fan@nxp.com>, Sasha Levin <sashal@kernel.org>,
arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: [PATCH AUTOSEL 6.12 458/486] firmware: arm_scmi: Relax duplicate name constraint across protocol ids
Date: Mon, 5 May 2025 18:38:54 -0400 [thread overview]
Message-ID: <20250505223922.2682012-458-sashal@kernel.org> (raw)
In-Reply-To: <20250505223922.2682012-1-sashal@kernel.org>
From: Sudeep Holla <sudeep.holla@arm.com>
[ Upstream commit 21ee965267bcbdd733be0f35344fa0f0226d7861 ]
Currently in scmi_protocol_device_request(), no duplicate scmi device
name is allowed across any protocol. However scmi_dev_match_id() first
matches the protocol id and then the name. So, there is no strict
requirement to keep this scmi device name unique across all the protocols.
Relax the constraint on the duplicate name across the protocols and
inhibit only within the same protocol id.
Message-Id: <20250131141822.514342-1-sudeep.holla@arm.com>
Reviewed-by: Dhruva Gole <d-gole@ti.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/firmware/arm_scmi/bus.c | 19 ++++++-------------
1 file changed, 6 insertions(+), 13 deletions(-)
diff --git a/drivers/firmware/arm_scmi/bus.c b/drivers/firmware/arm_scmi/bus.c
index 157172a5f2b57..7e160fc9bf8cc 100644
--- a/drivers/firmware/arm_scmi/bus.c
+++ b/drivers/firmware/arm_scmi/bus.c
@@ -42,7 +42,7 @@ static atomic_t scmi_syspower_registered = ATOMIC_INIT(0);
* This helper let an SCMI driver request specific devices identified by the
* @id_table to be created for each active SCMI instance.
*
- * The requested device name MUST NOT be already existent for any protocol;
+ * The requested device name MUST NOT be already existent for this protocol;
* at first the freshly requested @id_table is annotated in the IDR table
* @scmi_requested_devices and then the requested device is advertised to any
* registered party via the @scmi_requested_devices_nh notification chain.
@@ -52,7 +52,6 @@ static atomic_t scmi_syspower_registered = ATOMIC_INIT(0);
static int scmi_protocol_device_request(const struct scmi_device_id *id_table)
{
int ret = 0;
- unsigned int id = 0;
struct list_head *head, *phead = NULL;
struct scmi_requested_dev *rdev;
@@ -67,19 +66,13 @@ static int scmi_protocol_device_request(const struct scmi_device_id *id_table)
}
/*
- * Search for the matching protocol rdev list and then search
- * of any existent equally named device...fails if any duplicate found.
+ * Find the matching protocol rdev list and then search of any
+ * existent equally named device...fails if any duplicate found.
*/
mutex_lock(&scmi_requested_devices_mtx);
- idr_for_each_entry(&scmi_requested_devices, head, id) {
- if (!phead) {
- /* A list found registered in the IDR is never empty */
- rdev = list_first_entry(head, struct scmi_requested_dev,
- node);
- if (rdev->id_table->protocol_id ==
- id_table->protocol_id)
- phead = head;
- }
+ phead = idr_find(&scmi_requested_devices, id_table->protocol_id);
+ if (phead) {
+ head = phead;
list_for_each_entry(rdev, head, node) {
if (!strcmp(rdev->id_table->name, id_table->name)) {
pr_err("Ignoring duplicate request [%d] %s\n",
--
2.39.5
next prev parent reply other threads:[~2025-05-06 2:20 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20250505223922.2682012-1-sashal@kernel.org>
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 014/486] arm64: Add support for HIP09 Spectre-BHB mitigation Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 031/486] spi-rockchip: Fix register out of bounds access Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 037/486] thermal/drivers/mediatek/lvts: Start sensor interrupts disabled Sasha Levin
2025-05-05 22:31 ` [PATCH AUTOSEL 6.12 039/486] Bluetooth: btmtksdio: Prevent enabling interrupts after IRQ handler removal Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 056/486] staging: vchiq_arm: Create keep-alive thread during probe Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 060/486] wifi: mt76: only mark tx-status-failed frames as ACKed on mt76x0/2 Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 061/486] wifi: mt76: mt7996: fix SER reset trigger on WED reset Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 062/486] wifi: mt76: mt7996: revise TXS size Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 063/486] wifi: mt76: mt7925: load the appropriate CLC data based on hardware type Sasha Levin
2025-05-05 22:32 ` [PATCH AUTOSEL 6.12 064/486] wifi: mt76: mt7925: fix fails to enter low power mode in suspend state Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 110/486] ASoC: mediatek: mt6359: Add stub for mt6359_accdet_enable_jack_detect Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 123/486] ASoC: sun4i-codec: support hp-det-gpios property Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 131/486] net: stmmac: dwmac-rk: Validate GRF and peripheral GRF during probe Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 137/486] phy: rockchip: usbdp: Only verify link rates/lanes/voltage when the corresponding set flags are set Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 138/486] arm64/mm: Check pmd_table() in pmd_trans_huge() Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 139/486] arm64/mm: Check PUD_TYPE_TABLE in pud_bad() Sasha Levin
2025-05-05 22:33 ` [PATCH AUTOSEL 6.12 140/486] mmc: dw_mmc: add exynos7870 DW MMC support Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 164/486] coresight-etb10: change etb_drvdata spinlock's type to raw_spinlock_t Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 168/486] watchdog: aspeed: Update bootstatus handling Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 172/486] crypto: mxs-dcp - Only set OTP_KEY bit for OTP key Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 185/486] soc: samsung: include linux/array_size.h where needed Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 187/486] media: c8sectpfe: Call of_node_put(i2c_bus) only once in c8sectpfe_probe() Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 190/486] soc: mediatek: mtk-mutex: Add DPI1 SOF/EOF to MT8188 mutex tables Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 204/486] pinctrl: bcm281xx: Use "unsigned int" instead of bare "unsigned" Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 217/486] drm/rockchip: vop2: Add uv swap for cluster window Sasha Levin
2025-05-05 22:34 ` [PATCH AUTOSEL 6.12 222/486] clk: imx8mp: inform CCF of maximum frequency of clocks Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 225/486] ARM: at91: pm: fix at91_suspend_finish for ZQ calibration Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 226/486] drm/mediatek: mtk_dpi: Add checks for reg_h_fre_con existence Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 228/486] perf: arm_pmuv3: Call kvm_vcpu_pmu_resync_el0() before enabling counters Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 229/486] soc: apple: rtkit: Use high prio work queue Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 230/486] soc: apple: rtkit: Implement OSLog buffers properly Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 232/486] PCI: brcmstb: Expand inbound window size up to 64GB Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 233/486] PCI: brcmstb: Add a softdep to MIP MSI-X driver Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 235/486] firmware: arm_ffa: Set dma_mask for ffa devices Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 244/486] net: ethernet: mtk_ppe_offload: Allow QinQ, double ETH_P_8021Q only Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 248/486] soc: ti: k3-socinfo: Do not use syscon helper to build regmap Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 255/486] ASoC: mediatek: mt8188: Treat DMIC_GAINx_CUR as non-volatile Sasha Levin
2025-05-05 22:35 ` [PATCH AUTOSEL 6.12 256/486] ASoC: mediatek: mt8188: Add reference for dmic clocks Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 306/486] serial: mctrl_gpio: split disable_ms into sync and no_sync APIs Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 308/486] pmdomain: imx: gpcv2: use proper helper for property detection Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 323/486] firmware: arm_ffa: Reject higher major version as incompatible Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 324/486] firmware: arm_ffa: Handle the presence of host partition in the partition info Sasha Levin
2025-05-05 22:36 ` [PATCH AUTOSEL 6.12 325/486] firmware: xilinx: Dont send linux address to get fpga config get status Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 354/486] phy: phy-rockchip-samsung-hdptx: Swap the definitions of LCPLL_REF and ROPLL_REF Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 356/486] phy: exynos5-usbdrd: fix EDS distribution tuning (gs101) Sasha Levin
2025-05-05 22:37 ` [PATCH AUTOSEL 6.12 359/486] net: stmmac: dwmac-loongson: Set correct {tx,rx}_fifo_size Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 419/486] drm/rockchip: vop2: Improve display modes handling on RK3588 HDMI0 Sasha Levin
2025-05-05 22:38 ` [PATCH AUTOSEL 6.12 447/486] arm64: zynqmp: add clock-output-names property in clock nodes Sasha Levin
2025-05-05 22:38 ` Sasha Levin [this message]
2025-05-05 22:39 ` [PATCH AUTOSEL 6.12 465/486] spi: zynqmp-gqspi: Always acknowledge interrupts Sasha Levin
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=20250505223922.2682012-458-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=arm-scmi@vger.kernel.org \
--cc=d-gole@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=peng.fan@nxp.com \
--cc=stable@vger.kernel.org \
--cc=sudeep.holla@arm.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;
as well as URLs for NNTP newsgroup(s).