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


Reply via email to