Subject: Re: [E1000-devel] dma_map_page and dma_map_single

From: Alexander Duyck <[email-masked]>
Date: Thu, 25 Oct 2012 09:21:54 -0700

We use dma_map_single here because we have a virtual pointer and not a
page.  If you look in the kernel at the file
include/asm-generic/dma-mapping-common.h you will see that
dma_map_single_attrs which is what ends up being called when we call
dma_map_single will convert the pointer to a page and then call
map_page.  This way we don't have to place the overhead for the code
directly in our driver.

Thanks,

Alex

On 10/25/2012 01:58 AM, ratheesh kannoth wrote:
> Hi ,
>
> I was looking at tx_map ( igb-3.3.6  ) in igb driver. I could see that
> dma_map_single is used for first buffer and dma_map_page is used for
> the fragments.
>
> What is the real difference  between these api ?  we can replace
> dma_map_single with dma_map_page. then  why  we used dma_map_single
> here ?.
>
> Thanks,
> Ratheesh
>