diff options
author | Tomoya MORINAGA <tomoya.rohm@gmail.com> | 2013-02-11 21:25:33 -0500 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2013-04-15 00:21:16 -0400 |
commit | 5c1ef59168c485318e40ba485c1eba57d81d0faa (patch) | |
tree | 2faba4d657e7cb9df6d85332a55c5659a01a620e /drivers/dma | |
parent | 30fb980b99d3896bd891e56fec22191d40007efc (diff) |
pch_dma: Use GFP_ATOMIC because called from interrupt context
pdc_desc_get() is called from pd_prep_slave_sg, and the function is
called from interrupt context(e.g. Uart driver "pch_uart.c").
In fact, I saw kernel error message.
So, GFP_ATOMIC must be used not GFP_NOIO.
Signed-off-by: Tomoya MORINAGA <tomoya.rohm@gmail.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Diffstat (limited to 'drivers/dma')
-rw-r--r-- | drivers/dma/pch_dma.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/dma/pch_dma.c b/drivers/dma/pch_dma.c index d01faeb0f27c..ce3dc3e9688c 100644 --- a/drivers/dma/pch_dma.c +++ b/drivers/dma/pch_dma.c | |||
@@ -476,7 +476,7 @@ static struct pch_dma_desc *pdc_desc_get(struct pch_dma_chan *pd_chan) | |||
476 | dev_dbg(chan2dev(&pd_chan->chan), "scanned %d descriptors\n", i); | 476 | dev_dbg(chan2dev(&pd_chan->chan), "scanned %d descriptors\n", i); |
477 | 477 | ||
478 | if (!ret) { | 478 | if (!ret) { |
479 | ret = pdc_alloc_desc(&pd_chan->chan, GFP_NOIO); | 479 | ret = pdc_alloc_desc(&pd_chan->chan, GFP_ATOMIC); |
480 | if (ret) { | 480 | if (ret) { |
481 | spin_lock(&pd_chan->lock); | 481 | spin_lock(&pd_chan->lock); |
482 | pd_chan->descs_allocated++; | 482 | pd_chan->descs_allocated++; |