aboutsummaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorAndi Kleen <ak@suse.de>2006-06-29 20:54:26 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2006-07-24 20:35:19 -0700
commit9f24916834aaa1a31d90505c671e4746471200bf (patch)
tree08d9e3f1a05893433598e14c4ff52273b9b148e8 /block
parent395e8c5b6b0a3ceaf5e95b79f327028a8a48f481 (diff)
BLOCK: Fix bounce limit address check
This fixes some OOMs on 64bit systems with <4GB of RAM when accessing the cdrom. Do a safer check for when to enable DMA. Currently we enable ISA DMA for cases that do not need it, resulting in OOM conditions when ZONE_DMA runs out of space. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Chris Wright <chrisw@sous-sol.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'block')
-rw-r--r--block/ll_rw_blk.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c
index 7eb36c53f4b..4293143c93c 100644
--- a/block/ll_rw_blk.c
+++ b/block/ll_rw_blk.c
@@ -638,7 +638,7 @@ void blk_queue_bounce_limit(request_queue_t *q, u64 dma_addr)
/* Assume anything <= 4GB can be handled by IOMMU.
Actually some IOMMUs can handle everything, but I don't
know of a way to test this here. */
- if (bounce_pfn < (0xffffffff>>PAGE_SHIFT))
+ if (bounce_pfn < (min_t(u64,0xffffffff,BLK_BOUNCE_HIGH) >> PAGE_SHIFT))
dma = 1;
q->bounce_pfn = max_low_pfn;
#else