[PATCH 2/6] bus: fsl-mc: initialize UAPI state before device registration

From: Jiale Yao

Date: Wed Oct 28 2026 - 00:50:14 EST


misc_register() exposes the fsl-mc UAPI device before its mutex and
static portal pointer are initialized. A userspace open racing device
creation can consequently lock an uninitialized mutex or observe
incomplete state.

Initialize the UAPI state before registering the misc device.

Fixes: 2cf1e703f066 ("bus: fsl-mc: add fsl-mc userspace support")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Jiale Yao <yaojiale02@xxxxxxx>
---
drivers/bus/fsl-mc/fsl-mc-uapi.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/bus/fsl-mc/fsl-mc-uapi.c b/drivers/bus/fsl-mc/fsl-mc-uapi.c
index aaa14f17aef4..2c586dd787f3 100644
--- a/drivers/bus/fsl-mc/fsl-mc-uapi.c
+++ b/drivers/bus/fsl-mc/fsl-mc-uapi.c
@@ -586,15 +586,13 @@ int fsl_mc_uapi_create_device_file(struct fsl_mc_bus *mc_bus)
mc_uapi->misc.minor = MISC_DYNAMIC_MINOR;
mc_uapi->misc.name = dev_name(&mc_dev->dev);
mc_uapi->misc.fops = &fsl_mc_uapi_dev_fops;
+ mc_uapi->static_mc_io = mc_bus->mc_dev.mc_io;
+ mutex_init(&mc_uapi->mutex);

error = misc_register(&mc_uapi->misc);
if (error)
return error;

- mc_uapi->static_mc_io = mc_bus->mc_dev.mc_io;
-
- mutex_init(&mc_uapi->mutex);
-
return 0;
}

--
2.34.1