On Apr 19, 2006, at 3:24 PM, Kenneth Poole wrote: > > /* get pointer */ > - cp = cpm2cpu_addr(bdp->cbd_bufaddr); > + cp = (unsigned char *)pinfo->mem_addr + > (bdp->cbd_bufaddr - pinfo->dma_addr);
Ummm, no. Keep the cpm2cpu_addr() and pass it some driver data structure pointer so it does the computes, or better, keep the phys/virt addresses in a handy data structure you can easily access and work with offsets within the different address spaces. The test of addr >= CPM_ADDR is critically important to early boot and kgdb support and can't be removed. > - bdp->cbd_bufaddr = cpu2cpm_addr(mem_addr); > + bdp->cbd_bufaddr = dma_addr; This kind of initialization is broken, too. You have to test that memory address and return the proper space. Thanks. -- Dan