On Thu, 15 Jul 2021 17:35:23 +0800 Hui Liu <hui.liu@xxxxxxxxxxxx> wrote: > Add mutex_destroy when probe fail and remove device. > > Signed-off-by: Hui Liu <hui.liu@xxxxxxxxxxxx> Hi Hui Liu, We very very rarely bother to call mutex_destroy(). The reason is that it is only a non noop in when mutex debugging is enabled and that is only useful if there is a plausible route in which it could be used after the mutex_destroy. Given these are both at the ends of removal paths, I don't think this is useful. That's why you will rarely find mutex_destroy() being called. Thanks, Jonathan > --- > drivers/iio/adc/mt6577_auxadc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/iio/adc/mt6577_auxadc.c b/drivers/iio/adc/mt6577_auxadc.c > index 79c1dd68b909..d57243037ad6 100644 > --- a/drivers/iio/adc/mt6577_auxadc.c > +++ b/drivers/iio/adc/mt6577_auxadc.c > @@ -289,6 +289,7 @@ static int mt6577_auxadc_probe(struct platform_device *pdev) > ret = iio_device_register(indio_dev); > if (ret < 0) { > dev_err(&pdev->dev, "failed to register iio device\n"); > + mutex_destroy(&adc_dev->lock); > goto err_power_off; > } > > @@ -313,6 +314,7 @@ static int mt6577_auxadc_remove(struct platform_device *pdev) > 0, MT6577_AUXADC_PDN_EN); > > clk_disable_unprepare(adc_dev->adc_clk); > + mutex_destroy(&adc_dev->lock); > > return 0; > }