[patch] block: fix queue bounce limit calculation

From: Chuck Ebbert
Date: Sat Aug 19 2006 - 06:14:31 EST


Queue bounce should start after the max page, not on it.

Signed-off-by: Chuck Ebbert <76306.1226@xxxxxxxxxxxxxx>
---

Could this explain reported slowdown on x86_64 after limit was
changed in 2.6.16.7?

--- 2.6.17.9-64.orig/block/ll_rw_blk.c
+++ 2.6.17.9-64/block/ll_rw_blk.c
@@ -638,11 +638,11 @@ 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 < (min_t(u64,0xffffffff,BLK_BOUNCE_HIGH) >> PAGE_SHIFT))
+ if (bounce_pfn <= (min_t(u64,0xffffffff,BLK_BOUNCE_HIGH) >> PAGE_SHIFT))
dma = 1;
q->bounce_pfn = max_low_pfn;
#else
- if (bounce_pfn < blk_max_low_pfn)
+ if (bounce_pfn <= blk_max_low_pfn)
dma = 1;
q->bounce_pfn = bounce_pfn;
#endif
--
Chuck
-
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/