summaryrefslogtreecommitdiff
path: root/mm/dmapool.c
diff options
context:
space:
mode:
authorAndrew Morton <akpm@linux-foundation.org>2011-01-13 15:47:25 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2011-01-13 17:32:48 -0800
commit684265d4a30f133162f06ddb2e5010608e60e4bb (patch)
treef4eb3cab6bdbebf48360a8bc8696588483ac0e52 /mm/dmapool.c
parent84bc227d7fde049a568cd58a5610613feedc0dff (diff)
downloadlwn-684265d4a30f133162f06ddb2e5010608e60e4bb.tar.gz
lwn-684265d4a30f133162f06ddb2e5010608e60e4bb.zip
mm/dmapool.c: use TASK_UNINTERRUPTIBLE in dma_pool_alloc()
As it stands this code will degenerate into a busy-wait if the calling task has signal_pending(). Cc: Rolf Eike Beer <eike-kernel@sf-tec.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/dmapool.c')
-rw-r--r--mm/dmapool.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/dmapool.c b/mm/dmapool.c
index a2f6295b4df4..03bf3bb4519a 100644
--- a/mm/dmapool.c
+++ b/mm/dmapool.c
@@ -324,7 +324,7 @@ void *dma_pool_alloc(struct dma_pool *pool, gfp_t mem_flags,
if (mem_flags & __GFP_WAIT) {
DECLARE_WAITQUEUE(wait, current);
- __set_current_state(TASK_INTERRUPTIBLE);
+ __set_current_state(TASK_UNINTERRUPTIBLE);
__add_wait_queue(&pool->waitq, &wait);
spin_unlock_irqrestore(&pool->lock, flags);