sk_buff & DMA

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
I am having difficulty DMA'ing into sk_buffs.  I have DMA code that
works except when the destination is the data buffer in an sk_buff.
No transfer error is reported in the status register but the sk_buff
data buffer (the destination) is all zeros following the DMA while the
source buffer is nonzero.  I am running Linux 2.6.10 on an MPC8248.

Re: sk_buff & DMA
Quoted text here. Click to load it

These are classic symptoms of caching issues.  My guess is because the
DMA HW does the transfer of your data, the processor cache is not
aware of the changes in actual memory.  Try manually flushing /
reloading your cache for the destination memory.
BTW "dma_map_single /dma_unmap_single"   does not work for some ppc
architectures.  So manually flush the cache using "flush_dcache_range"

Re: sk_buff & DMA
Quoted text here. Click to load it

Thank you for the suggestion.  My problem turned out to be the program
I was using to read memory was not able to read from the memory
location of the DMA's destination.  When I read the memory location
within my driver I saw that the DMA was successful.

Site Timeline