From: andriy.shevchenko@linux.intel.com (Andy Shevchenko)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2] dma: Add Xilinx AXI Video Direct Memory Access Engine driver support
Date: Thu, 23 Jan 2014 16:00:37 +0200 [thread overview]
Message-ID: <1390485637.7619.88.camel@smile> (raw)
In-Reply-To: <52E11E39.6090901@metafoo.de>
On Thu, 2014-01-23 at 14:50 +0100, Lars-Peter Clausen wrote:
> On 01/23/2014 02:38 PM, Shevchenko, Andriy wrote:
> > On Thu, 2014-01-23 at 12:25 +0100, Lars-Peter Clausen wrote:
> >> On 01/22/2014 05:52 PM, Srikanth Thokala wrote:
> >
> > [...]
> >
> >>> + /* Request the interrupt */
> >>> + chan->irq = irq_of_parse_and_map(node, 0);
> >>> + err = devm_request_irq(xdev->dev, chan->irq, xilinx_vdma_irq_handler,
> >>> + IRQF_SHARED, "xilinx-vdma-controller", chan);
> >>
> >> This is a clasic example of where to not use devm_request_irq. 'chan' is
> >> accessed in the interrupt handler, but if you use devm_request_irq 'chan'
> >> will be freed before the interrupt handler has been released, which means
> >> there is now a race condition where the interrupt handler can access already
> >> freed memory.ta
> >
> > Could you elaborate this case? As far as I understood managed resources
> > are a kind of stack pile. In this case you have no such condition. Where
> > am I wrong?
>
> The stacked stuff is only ran after the remove() function. Which means that
> you call dma_async_device_unregister() before the interrupt handler is
> freed. Another issue with the interrupt handler is a bit hidden. The driver
> does not call tasklet_kill in the remove function. Which it should though to
> make sure that the tasklet does not race against the freeing of the memory.
> And in order to make sure that the tasklet is not rescheduled you need to
> free the irq before killing the tasklet, since the interrupt handler
> schedules the tasklet.
So, you mean devm_request_irq() will race in any DMA driver?
I think the proper solution is to disable all device work in
the .remove() and devm will care about resources.
> majordomo-info.html
--
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy
next prev parent reply other threads:[~2014-01-23 14:00 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-22 16:52 [PATCH v2] Add Xilinx AXI Video DMA Engine driver Srikanth Thokala
2014-01-22 16:52 ` [PATCH v2] dma: Add Xilinx AXI Video Direct Memory Access Engine driver support Srikanth Thokala
2014-01-22 21:30 ` Levente Kurusa
2014-01-23 17:35 ` Srikanth Thokala
2014-01-23 11:25 ` Lars-Peter Clausen
2014-01-23 13:38 ` Shevchenko, Andriy
2014-01-23 13:50 ` Lars-Peter Clausen
2014-01-23 14:00 ` Andy Shevchenko [this message]
2014-01-23 14:07 ` Lars-Peter Clausen
2014-01-26 14:03 ` Vinod Koul
2014-01-26 17:41 ` Lars-Peter Clausen
2014-01-24 11:16 ` Srikanth Thokala
2014-01-24 13:24 ` Lars-Peter Clausen
2014-01-26 13:59 ` Vinod Koul
2014-01-26 17:39 ` Lars-Peter Clausen
2014-01-27 13:12 ` Srikanth Thokala
2014-01-28 3:13 ` Vinod Koul
2014-01-31 6:51 ` Srikanth Thokala
2014-02-05 16:25 ` Srikanth Thokala
2014-02-05 16:30 ` Lars-Peter Clausen
2014-02-06 13:34 ` Srikanth Thokala
2014-02-06 15:53 ` Lars-Peter Clausen
2014-02-10 12:51 ` Srikanth Thokala
2014-01-28 3:09 ` Vinod Koul
2014-01-27 11:06 ` Srikanth Thokala
2014-01-31 6:52 ` Srikanth Thokala
2014-02-04 5:28 ` Vinod Koul
2014-02-04 10:35 ` Srikanth Thokala
2014-01-31 17:44 ` Andy Gross
2014-02-01 18:23 ` Lars-Peter Clausen
2014-01-23 13:32 ` Andy Shevchenko
2014-01-23 17:52 ` Srikanth Thokala
2014-01-26 14:24 ` Vinod Koul
2014-01-26 17:46 ` Lars-Peter Clausen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1390485637.7619.88.camel@smile \
--to=andriy.shevchenko@linux.intel.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).