On Wed, Sep 09, 2026 at 07:04:40PM +0200, Vincent Jardin via B4 Relay wrote: > From: Vincent Jardin <[email protected]> > > Unbinding and re-binding the root DPRC fails with: > > sysfs: cannot create duplicate filename '/dev/char/10:256' > misc_register / fsl_mc_uapi_create_device_file / > dprc_setup / dprc_probe > > It happens when the fsl-mc bus probe is not deferred, without SMMU: > - the dprc driver is registered at postcore_initcall, > - the DT node is populated at arch_initcall_sync, > - the root DPRC probes right there, before misc_init() has > registered misc_class at subsys_initcall. > > misc_register() still succeeds but the device gets > no class, so misc_deregister() at unbind cannot find it: > the minor is freed while the device and its /sys/dev/char/ link leak, > and then the next bind collides on the same minor. > > Let's move the dprc and allocator drivers registration, and > platform_driver_register(), to subsys_initcall_sync, after misc_init() > at subsys_initcall. > bus_register() and the platform-bus notifier stay at postcore_initcall > so that fsl_mc_bus_notifier() still pauses the MC before the SMMU is probed. >
Thank you for the updated commit message. > Cc: [email protected] # niche: root DPRC unbind/rebind only > Fixes: 2cf1e703f066 ("bus: fsl-mc: add fsl-mc userspace support") > Signed-off-by: Vincent Jardin <[email protected]> Reviewed-by: Ioana Ciornei <[email protected]>
