[PATCH 1/14] Spidernet DMA coalescing

Christoph Hellwig hch at infradead.org
Thu Dec 14 22:05:17 EST 2006


On Wed, Dec 13, 2006 at 03:06:59PM -0600, Linas Vepstas wrote:
> 
> The current driver code performs 512 DMA mappings of a bunch of 
> 32-byte ring descriptor structures. This is silly, as they are 
> all in contiguous memory. This patch changes the code to 
> dma_map_coherent() each rx/tx ring as a whole.

It's acutally dma_alloc_coherent now that you updated the patch :)

> +	chain->ring = dma_alloc_coherent(&card->pdev->dev, alloc_size,
> +		&chain->dma_addr, GFP_KERNEL);
>  
> +	if (!chain->ring)
> +		return -ENOMEM;
>  
> +	descr = chain->ring;
> +	memset(descr, 0, alloc_size);

dma_alloc_coherent is defined to zero the allocated memory, so you
won't need this memset.




More information about the Linuxppc-dev mailing list