Messages in this thread | | | Date | Sun, 13 Jan 2002 11:22:26 +0100 | From | Manfred Spraul <> | Subject | Q: blk_queue_bounce_limit |
| |
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/
| |