The .attach() rproc ops is invoked through the helper rproc_attach_device(), but the .detach() ops is invoked directly at present. Introduce a similar wrapper function rproc_detach_device() for .detach() ops so that the code is symmetric. Signed-off-by: Suman Anna <s-anna@xxxxxx> --- drivers/remoteproc/remoteproc_core.c | 2 +- drivers/remoteproc/remoteproc_internal.h | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c index 6348aaa42bbb..6019f46001c8 100644 --- a/drivers/remoteproc/remoteproc_core.c +++ b/drivers/remoteproc/remoteproc_core.c @@ -1869,7 +1869,7 @@ static int __rproc_detach(struct rproc *rproc) } /* Tell the remote processor the core isn't available anymore */ - ret = rproc->ops->detach(rproc); + ret = rproc_detach_device(rproc); if (ret) { dev_err(dev, "can't detach from rproc: %d\n", ret); return ret; diff --git a/drivers/remoteproc/remoteproc_internal.h b/drivers/remoteproc/remoteproc_internal.h index a328e634b1de..931d50b6a0d1 100644 --- a/drivers/remoteproc/remoteproc_internal.h +++ b/drivers/remoteproc/remoteproc_internal.h @@ -121,6 +121,14 @@ static inline int rproc_attach_device(struct rproc *rproc) return 0; } +static inline int rproc_detach_device(struct rproc *rproc) +{ + if (rproc->ops->detach) + return rproc->ops->detach(rproc); + + return 0; +} + static inline int rproc_fw_sanity_check(struct rproc *rproc, const struct firmware *fw) { -- 2.30.1