On Tue, Mar 10, 2026 at 11:04:54AM -0500, Shah, Tanmay wrote: > > > On 3/10/2026 10:29 AM, Mathieu Poirier wrote: > > On Tue, Mar 03, 2026 at 03:51:28PM -0800, Tanmay Shah wrote: > >> mailbox driver can't introduce shutdown callback, as it might endup > >> closing mbox channels prematurely. By allowing the client driver to > >> manage the shutdown process, it's ensured that mailbox channels are > >> closed only when they are no longer needed. > >> > >> Signed-off-by: Tanmay Shah <[email protected]> > >> --- > >> drivers/remoteproc/xlnx_r5_remoteproc.c | 2 ++ > >> 1 file changed, 2 insertions(+) > >> > >> diff --git a/drivers/remoteproc/xlnx_r5_remoteproc.c > >> b/drivers/remoteproc/xlnx_r5_remoteproc.c > >> index 5e92dc51f1c0..50a9974f3202 100644 > >> --- a/drivers/remoteproc/xlnx_r5_remoteproc.c > >> +++ b/drivers/remoteproc/xlnx_r5_remoteproc.c > >> @@ -1490,6 +1490,8 @@ static void zynqmp_r5_remoteproc_shutdown(struct > >> platform_device *pdev) > >> dev_err(cluster->dev, "failed to %s rproc %d\n", > >> rproc_state_str, rproc->index); > >> } > >> + > >> + zynqmp_r5_free_mbox(r5_core->ipi); > > > > This is already called in zynqmp_r5_cluster_exit(), why doing it here again? > > > > Hi, > > Thanks for reviews. > I think cluster_exit() call is called only during driver unload. Where > as shutdown callback is called during power-off commands of linux like > reboot or shutdown. > > That is why I am calling it separately during shutdown() callback.
The problem here is that zynqmp_r5_free_mbox() is called twice. At shutdown time all drivers go throuth the normal driver shutdown process where platform_driver.shutdown() is called and subsequently device management callbacks such as zynqmp_r5_cluster_exit(). The same applies to loading and unloading of drivers. Unless there is a corner case I can't see, calling zynqmp_r5_free_mbox() twice is not needed. > > Thanks, > Tanmay > > > I have applied the other two patches in this series. > > > > Thanks, > > Mathieu > > > >> } > >> } > >> > >> -- > >> 2.34.1 > >> >

