to check if the pinctrl_dev still exists before calling pinctrl_unregister(). Signed-off-by: Lizhe <sensor1010@xxxxxxx> --- drivers/pinctrl/sprd/pinctrl-sprd.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/pinctrl/sprd/pinctrl-sprd.c b/drivers/pinctrl/sprd/pinctrl-sprd.c index ca9659f4e4b1..52089e34435c 100644 --- a/drivers/pinctrl/sprd/pinctrl-sprd.c +++ b/drivers/pinctrl/sprd/pinctrl-sprd.c @@ -1114,8 +1114,10 @@ EXPORT_SYMBOL_GPL(sprd_pinctrl_core_probe); int sprd_pinctrl_remove(struct platform_device *pdev) { struct sprd_pinctrl *sprd_pctl = platform_get_drvdata(pdev); + + if (sprd_pctl->pctl) + pinctrl_unregister(sprd_pctl->pctl); - pinctrl_unregister(sprd_pctl->pctl); return 0; } EXPORT_SYMBOL_GPL(sprd_pinctrl_remove); -- 2.34.1