BUG: invalid MAX_DMA_ADDRESS macro for i386?

Paul (set@pobox.com)
Wed, 1 Aug 2001 01:16:52 -0400


Dear All;

2.4.6-ac5 kernel, i486.
Well, I have tracked down my problem. We see a comparison
like this to determine whether to use a bounce buffer:

if ( virt_to_bus(addr+buflen) >= MAX_DMA_ADDRESS) {
...(use a bounce buffer 'cause that addr is not dma-able)...

This is not working, because MAX_DMA_ADDRESS is defined
so:

./include/asm-i386/dma.h:
#define MAX_DMA_ADDRESS (PAGE_OFFSET+0x1000000)

This looks to come out to 0xc1000000. This does not seem
to be comparable to a bus address. eg. 0x100000 == 16M, the DMA
limit on ISA bus.
This driver doesnt work on ISA machine with > 16M, as the
bounce buffer never gets used. (forcing its unconditional use
makes it work fine)
So, what is wrong here? Macro, or conditional? Clue me in
so I can fix it correctly.

Paul
set@pobox.com
-
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/