Thread (12 messages) flat view 12 messages, 3 authors, 2011-09-01
STALE5500d

[PATCH] iommu: omap_iovmm: support non page-aligned buffers in iommu_vmap

From: Ohad Ben-Cohen <hidden>
Date: 2011-08-31 17:16:18
Also in: linux-omap

Hi Laurent, Joerg,

On Wed, Aug 31, 2011 at 7:56 PM, Laurent Pinchart
[off-list ref] wrote:
On Wednesday 31 August 2011 15:06:42 Roedel, Joerg wrote:
quoted
Do you mean the parts of the pages you map to the device that are not in
the requested range (basically everything before offset and all after
size)?
This issue exists in other iommu drivers as well. It is inherent to how
the dma-api is defined and how the iommu hardware works.
The dma-api can work on byte granularity while the hardware usually only
works on page granularity.
True, but if we implement address rounding transparently in the IOMMU layer
Ohad's concern can be valid, depending on whether the device is trusted. If we
decide to push address rounding to the drivers that decision can be made on a
per-device basis. However, drivers are usually not aware of what granularity
the IOMMU works on, so that wouldn't be straightforward and clean.
I think the confusion lies in the fact that omap's iovmm should be
treated as the DMA-API (which will soon replace it altogether anyway)
and not as an IOMMU driver, and in that sense, Laurent's patch does
sound reasonable.

However, one needs to keep this in mind (e.g. map only page-aligned
buffers ?) when using the upcoming iommu-based DMA-API with untrusted
devices (such as remote processors running arbitrary code). It is
completely wrong to allow these devices access to random physical
memory regions. We might want to come up with a way to prevent this
from happening...

Thanks,
Ohad.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help