Re: DMA using data buffer vmapped in kernel space

From: Russell King - ARM Linux
Date: Tue Mar 09 2010 - 05:17:32 EST


On Tue, Mar 09, 2010 at 01:29:35AM -0800, David Miller wrote:
> From: Russell King - ARM Linux <linux@xxxxxxxxxxxxxxxx>
> Date: Tue, 9 Mar 2010 09:14:03 +0000
>
> > What you could do is prepare a patch to allow the firmware support to
> > export a scatterlist via the struct firmware, and then use that with
> > dma_map_sg(). Let's hope that the SPI interfaces support scatterlists.
>
> It's so common to want a scatterlist from a vmalloc/vmap area
> that a generic common helper is probably the best.
>
> Just iterate over the vmalloc/vmap area using vmalloc_to_page()
> to fill in the SG entries.

It looks like the firmware interface may return a pointer to either the
kernel binary itself for built-in firmware, or to a set of pages which
have been vmap'd. In the former case, vmalloc_to_page() will fail.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/