lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 18 Apr 2016 11:22:05 -0400 From: Sinan Kaya <okaya@...eaurora.org> To: Timur Tabi <timur@...eaurora.org>, Christoph Hellwig <hch@...radead.org> Cc: linux-rdma@...r.kernel.org, cov@...eaurora.org, Yishai Hadas <yishaih@...lanox.com>, netdev@...r.kernel.org, linux-kernel@...r.kernel.org Subject: Re: [PATCH V2] net: ethernet: mellanox: correct page conversion On 4/18/2016 11:15 AM, Timur Tabi wrote: > Sinan Kaya wrote: >> >> VMAP allows you to make several pages look contiguous to the CPU. >> It can only be used against logical addresses returned from kmalloc >> or alloc_page. >> >> You cannot take several virtually mapped addresses returned by dma_alloc_coherent >> and try to make them virtually contiguous again. >> >> The code happens to work on other architectures by pure luck. AFAIK, dma_alloc_coherent >> returns logical addresses on Intel systems until it runs out of DMA memory. After >> that intel arch will also start returning virtually mapped addresses and this code >> will also fail. ARM64 on the other hand always returns a virtually mapped address. >> >> The goal of this code is to allocate a bunch of page sized memory and make it look >> contiguous. It is just using the wrong API. The correct API is either kmalloc or >> alloc_page map it with dma_map_page not dma_alloc_coherent. >> >> The proper usage of dma_map_page requires code to call dma_sync API in correct >> places to be compatible with noncoherent systems. This code is already assuming >> coherency. It would be a nice to have dma_sync APIs in right places. There is no >> harm in calling dma_sync API for coherent systems as they are no-ops in DMA mapping >> layer whereas it is a cache flush for non-coherent systems. > > The text would be a great addition to the patch description. > I can do that on the next version. -- Sinan Kaya Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
Powered by blists - more mailing lists