Messages in this thread | | | Date | Sun, 5 Dec 2004 14:18:45 -0500 | From | Linh Dang <> | Subject | Re: [PATCH][PPC32[NEWBIE] enhancement to virt_to_bus/bus_to_virt (try 2) |
| |
On Sun, 5 Dec 2004 02:11:10 -0800, Eugene Surovegin <ebs@ebshome.net> wrote: [...] > > Unfortunately your patch doesn't achieve your goals. vmalloc space on > PPC32 will be between KERNEL_BASE and ioremap_bot anyway, so > additional check is mostly useless anyway (it will only call iopa() > for ioremaps done early during the boot).
Duh! how about using total_lowmem? i.e. use the current way for memory between KERNEL_BASE and (KERNEL_BASE+total_lowmem), and iopa for other addresses?
> > Also, even assuming you got the range right and called iopa() for > vmalloced space, tell me how are you gonna deal with non-physically > continuous vmalloced buffers in your DMA library?
From a single virtual buffer, the DMA library will build a chained list of physically contiguous buffers (it can be one or more physical buffers). All the DMA engines I'm familiar with (mpc8260, mpc8580, marvell, etc.) accept a list of physical buffers.
The decoding algorithm (from a single virtual buffer to a chained list of physical buffers) is dead simple.
Thanx for the reply -- Linh Dang - 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/
| |