From: Marcelo Tosatti m8xx_cpm_hostalloc() can't rely on using the coherent DMA allocator early on boot because the VM is not fully up yet. Change it to use the on-board DPRAM instead. The current code relies on the "bootmem_page" allocated by m8xx_cpm_reset(), which must be killed. This is done in v2.4 but has never been forward ported to v2.6. Signed-off-by: Marcelo Tosatti Cc: Pantelis Antoniou Cc: Kumar Gala Signed-off-by: Andrew Morton --- drivers/serial/cpm_uart/cpm_uart_cpm1.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/serial/cpm_uart/cpm_uart_cpm1.c~cpm_uart-use-dpram-for-early-console drivers/serial/cpm_uart/cpm_uart_cpm1.c --- devel/drivers/serial/cpm_uart/cpm_uart_cpm1.c~cpm_uart-use-dpram-for-early-console 2005-07-25 21:32:09.000000000 -0700 +++ devel-akpm/drivers/serial/cpm_uart/cpm_uart_cpm1.c 2005-07-25 21:32:09.000000000 -0700 @@ -185,7 +185,7 @@ int cpm_uart_allocbuf(struct uart_cpm_po memsz = L1_CACHE_ALIGN(pinfo->rx_nrfifos * pinfo->rx_fifosize) + L1_CACHE_ALIGN(pinfo->tx_nrfifos * pinfo->tx_fifosize); if (is_con) { - mem_addr = (u8 *) m8xx_cpm_hostalloc(memsz); + mem_addr = (u8 *) cpm_dpram_addr(cpm_dpalloc(memsz, 8)); dma_addr = 0; } else mem_addr = dma_alloc_coherent(NULL, memsz, &dma_addr, _