Messages in this thread | | | Date | Wed, 29 Apr 2015 17:13:50 +0300 | From | Ido Shamay <> | Subject | Re: [PATCH RFC] net/mlx4: Remove improper usage of dma_alloc_coherent(). |
| |
On 4/13/2015 12:33 AM, Ido Shamay wrote: > On 4/7/2015 10:43 PM, Ido Shamay wrote: >> On 4/7/2015 2:00 AM, David Daney wrote: >>> From: David Daney <david.daney@cavium.com> >>> >>> The dma_alloc_coherent() function returns a virtual address which can >>> be used for coherent access to the underlying memory. On some >>> architectures, like arm64, undefined behavior results if this memory is >>> also accessed via virtual mappings that are not coherent. Because of >>> their undefined nature, operations like virt_to_page() return garbage >>> when passed virtual addresses obtained from dma_alloc_coherent(). Any >>> subsequent mappings via vmap() of the garbage page values are unusable >>> and result in bad things like bus errors (synchronous aborts in ARM64 >>> speak). >>> >>> The MLX4 driver contains code that does the equivalent of: >>> >>> vmap(virt_to_page(dma_alloc_coherent)) >>> >>> This results in an OOPs when the device is opened. >>> >>> To fix this... >>> >>> Always use result of dma_alloc_coherent() directly. > Acked-by: Ido Shamay <idos@mellanox.com> > Thanks David, this is good for us
Hi David,
Are you resending this patch or you want us to do that?
| |