summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomoya MORINAGA <tomoya.rohm@gmail.com>2013-02-12 11:25:33 +0900
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-05-19 10:04:47 -0700
commitb89396eaa22b921245b4d30f7e26e406e89aa51c (patch)
tree343d15ed752c04bd7e003ff01b859d2e0aad8681
parenta7e22d0c0e81dde129a51ee413644124f4b59954 (diff)
pch_dma: Use GFP_ATOMIC because called from interrupt context
commit 5c1ef59168c485318e40ba485c1eba57d81d0faa upstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/dma/pch_dma.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/dma/pch_dma.c b/drivers/dma/pch_dma.c
index 1ed89d0a1bda..e6f128a23366 100644
--- a/drivers/dma/pch_dma.c
+++ b/drivers/dma/pch_dma.c
@@ -489,7 +489,7 @@ static struct pch_dma_desc *pdc_desc_get(struct pch_dma_chan *pd_chan)
dev_dbg(chan2dev(&pd_chan->chan), "scanned %d descriptors\n", i);
if (!ret) {
- ret = pdc_alloc_desc(&pd_chan->chan, GFP_NOIO);
+ ret = pdc_alloc_desc(&pd_chan->chan, GFP_ATOMIC);
if (ret) {
spin_lock(&pd_chan->lock);
pd_chan->descs_allocated++;