Messages in this thread | | | From | Manish Narani <> | Subject | RE: [PATCH 4/4] iio: adc: xilinx: Use devm_ functions while requesting irq | Date | Mon, 23 Jul 2018 09:27:03 +0000 |
| |
Hi Lars,
> -----Original Message----- > From: Lars-Peter Clausen [mailto:lars@metafoo.de] > Sent: Thursday, July 19, 2018 10:08 PM > To: Manish Narani <MNARANI@xilinx.com>; jic23@kernel.org; > knaack.h@gmx.de; pmeerw@pmeerw.net; Michal Simek > <michals@xilinx.com>; linux-iio@vger.kernel.org; linux-arm- > kernel@lists.infradead.org; linux-kernel@vger.kernel.org > Cc: Anirudha Sarangi <anirudh@xilinx.com>; Srinivas Goud > <sgoud@xilinx.com> > Subject: Re: [PATCH 4/4] iio: adc: xilinx: Use devm_ functions while requesting > irq > > > @@ -1310,7 +1308,6 @@ static int xadc_remove(struct platform_device > > *pdev) { > > struct iio_dev *indio_dev = platform_get_drvdata(pdev); > > struct xadc *xadc = iio_priv(indio_dev); > > - int irq = platform_get_irq(pdev, 0); > > > > iio_device_unregister(indio_dev); > > if (xadc->ops->flags & XADC_FLAGS_BUFFERED) { @@ -1318,7 +1315,6 > @@ > > static int xadc_remove(struct platform_device *pdev) > > iio_trigger_free(xadc->convst_trigger); > > iio_triggered_buffer_cleanup(indio_dev); > > } > > - free_irq(irq, indio_dev); > > This opens up a race condition. The IRQ needs to be freed before any of these > other things below the free_irq() are executed. Will look into it and send with taking care of the same.
> > > clk_disable_unprepare(xadc->clk); > > cancel_delayed_work(&xadc->zynq_unmask_work); > > kfree(xadc->data); > >
Thanks, Manish
| |