On Mon, Jul 26, 2010 at 1:44 PM, Dezhong Diao (dediao) <dediao@xxxxxxxxx> wrote: > It is not a problem our hardware supports DMA directly to high memory. Mine too. The existing dma-default.c does not handle high pages at all, but applying your patch did not completely solve the problem on my setup so I think something else is still going wrong. If I figure it out I'll post a fix. In the meantime could you please consider adding BUG() to the else clause, e.g. + if (addr) { + addr += offset; + __dma_sync_virtual(addr, size, direction); + kunmap_high(page); + } else + BUG() Thanks.