On Mon, Mar 16, 2026 at 11:37:05AM -0500, Shah, Tanmay wrote:
> 
> 
> On 3/16/2026 10:38 AM, Mathieu Poirier wrote:
> > 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.
> > 
> > Then call zynqmp_r5_free_mbox() from zynqmp_r5_remoteproc_shutdown() rather 
> > than
> > zynqmp_r5_cluster_exit().
> > 
> 
> I have to call zynqmp_r5_free_mbox() from both handlers i.e.
> platform_driver.remove() and platform_driver.shutdown(). I can't skip
> either of them.
> 
> Because during driver unload (rmmod), shutdown() handler won't be
> called. And during power-off commands (reboot, shutdown) remove()
> handler won't be called.

I was under the impression that during system shutdown, ->remove() and
->shutdown() were called sequentially.  I looked into the platform_driver
structure documentation and nothing of that nature is described, leading me to
beleive your assessment is correct.

I'll apply your patch.

> 
> Let me know if I am still missing something.
> 
> Thanks,
> Tanmay
> 
> >>
> >> Thanks,
> >> Tanmay
> >>
> >>> I have applied the other two patches in this series.
> >>>
> >>> Thanks,
> >>> Mathieu
> >>>
> >>>>          }
> >>>>  }
> >>>>  
> >>>> -- 
> >>>> 2.34.1
> >>>>
> >>
> 

Reply via email to