Re: [PATCH 02/21] arm64/iommu: improve mmap bounds checking

From: Robin Murphy
Date: Tue Apr 09 2019 - 11:12:57 EST


On 07/04/2019 07:59, Christoph Hellwig wrote:
On Fri, Apr 05, 2019 at 06:30:52PM +0100, Robin Murphy wrote:
On 27/03/2019 08:04, Christoph Hellwig wrote:
The nr_pages checks should be done for all mmap requests, not just those
using remap_pfn_range.

Hmm, the logic in iommu_dma_mmap() inherently returns an error for the "off
= nr_pages" case already. It's also supposed to be robust against the
"vma_pages(vma) > nr_pages - off" condition, although by making the partial
mapping and treating it as a success, rather than doing nothing and
returning an error. What's the exact motivation here?

Have one error check at the front of the function that is identical
to the mmap checks in the other dma_map_ops instances so that:

a) we get the same error behavior for partial requests everywhere
b) we can lift these checks into common code in the next round.


Fair enough, but in that case why isn't the dma_mmap_from_coherent() path also covered?

Robin.