rpmsg_dev_probe() calls rpdev->ops->announce_create() only when the driver specifies a callback and an endpoint was opened, but rpmsg_dev_remove() calls announce_destroy() unconditionally. Fix this by adding the missing check. Cc: stable@vger.kernel.org Fixes: 7586516ca043 ("rpmsg: Only invoke announce_create for rpdev with endpoints") Signed-off-by: Stephan Gerhold Signed-off-by: Abel Vesa --- drivers/rpmsg/rpmsg_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/rpmsg/rpmsg_core.c b/drivers/rpmsg/rpmsg_core.c index 5d661681a..fb444dc2f 100644 --- a/drivers/rpmsg/rpmsg_core.c +++ b/drivers/rpmsg/rpmsg_core.c @@ -533,7 +533,7 @@ static void rpmsg_dev_remove(struct device *dev) struct rpmsg_device *rpdev = to_rpmsg_device(dev); struct rpmsg_driver *rpdrv = to_rpmsg_driver(rpdev->dev.driver); - if (rpdev->ops->announce_destroy) + if (rpdev->ept && rpdev->ops->announce_destroy) rpdev->ops->announce_destroy(rpdev); if (rpdrv->remove)