[patch 04/45] BLOCK: Fix bounce limit address check

From: Greg KH
Date: Mon Jul 17 2006 - 12:41:34 EST

-stable review patch. If anyone has any objections, please let us know.


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@xxxxxxx>
Signed-off-by: Jens Axboe <axboe@xxxxxxx>
Signed-off-by: Chris Wright <chrisw@xxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx>
block/ll_rw_blk.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- linux-
+++ linux-
@@ -638,7 +638,7 @@ void blk_queue_bounce_limit(request_queu
/* 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;

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/