iio: adc: xilinx: prevent touching unclocked h/w on remove

In remove, the clock is disabled before canceling the
delayed work. This means that the delayed work may be
touching unclocked hardware.

Fix by disabling the clock after the delayed work is
fully canceled. This is consistent with the probe error
path order.

Signed-off-by: Sven Van Asbroeck <TheSven73@gmail.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
Sven Van Asbroeck 2019-03-10 14:58:26 -04:00 коммит произвёл Jonathan Cameron
Родитель 862e4644fd
Коммит 2e4b88f739
1 изменённых файлов: 1 добавлений и 1 удалений

Просмотреть файл

@ -1322,8 +1322,8 @@ static int xadc_remove(struct platform_device *pdev)
iio_triggered_buffer_cleanup(indio_dev);
}
free_irq(xadc->irq, indio_dev);
clk_disable_unprepare(xadc->clk);
cancel_delayed_work_sync(&xadc->zynq_unmask_work);
clk_disable_unprepare(xadc->clk);
kfree(xadc->data);
kfree(indio_dev->channels);