Q: blk_queue_bounce_limit

Manfred Spraul (manfred@colorfullife.com)
Sun, 13 Jan 2002 11:22:26 +0100


I think the selection of the ISA pool in blk_queue_bounce_limit is
wrong:
it switches to the ISA pool if the requested DMA address is equal to
16 MB. I think it must switch if the requested bounce limit is smaller
than max_low_pfn.

<<<<<<<
- if (dma_addr == BLK_BOUNCE_ISA) {
+ if (bounce_pfn < blk_max_low_pfn) {
+ BUG_ON(dma_addr < BLK_BOUNCE_ISA);
init_emergency_isa_pool();
q->bounce_gfp = GFP_NOIO | GFP_DMA;
} else
q->bounce_gfp = GFP_NOHIGHIO;
<<<

Usually both lines are identical, except:
- If only 16 MB are installed, then bouncing to ISA is never needed.
- There could be broken devices that only support DMA to < 512 MB.
For such a device no bounce it needed if less than 512 MB is installed,
and if more is installed we must bounce to ISA. (since we don't have
a 512MB zone).
- Bouncing to less that 16 MB is not supported.

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