Re: [PATCH 08/11] staging: et131x: simplify rx dma code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Dec 04, 2013 at 03:24:18PM +0800, ZHAO Gang wrote:
> The original code allocate rx dma memory in several dma_alloc_coherent calls,
> which causes some problems:
> 1. since dma_alloc_coherent allocate at least one page memory, it wastes some
>    memory when allocation size is smaller than one page.
> 2. it causes et131x_rx_dma_memory_free as complex as et131x_rx_dma_memory_alloc
> 
> Instead, allocate all rx dma memory in one dma_alloc_coherent call makes less code,
> makes it easy to handle dma allocation error, and makes et131x_rx_dma_memory_free
> as simple as it could be.
> 
> Signed-off-by: ZHAO Gang <gamerh2o@xxxxxxxxx>
> ---
>  drivers/staging/et131x/et131x.c | 202 ++++++++++++----------------------------
>  1 file changed, 59 insertions(+), 143 deletions(-)

Hi Zhao,

I haven't had time to look at these last few patches in detail yet, but
I do have some comments - The code is an improvement in that it reduces
the number of lines of code, but you're also making the driver more
susceptible to memory allocation issues, as you're asking for a single
large block of memory and not several smaller ones. I'm not sure if that
will have an appreciable impact yet.

Also, I think a better way to do this allocation would be to create a
single struct with the items to be allocated, where as few as possible
of the struct members are of dynamic size
(drivers/net/ethernet/cirrus/ep93xx_eth.c is a nice example of this) -
although this reason alone would not be enough to reject the alloc
patches, but the previous reason might.

Cheers,

Mark

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux