RE: [PATCH v8 7/7] iommu/vt-d: Use bounce buffer for untrusted devices
From: David Laight
Date: Fri Aug 30 2019 - 09:39:58 EST
From: Lu Baolu
> Sent: 30 August 2019 08:17
> The Intel VT-d hardware uses paging for DMA remapping.
> The minimum mapped window is a page size. The device
> drivers may map buffers not filling the whole IOMMU
> window. This allows the device to access to possibly
> unrelated memory and a malicious device could exploit
> this to perform DMA attacks. To address this, the
> Intel IOMMU driver will use bounce pages for those
> buffers which don't fill whole IOMMU pages.
Won't this completely kill performance?
I'd expect to see something for dma_alloc_coherent() (etc)
that tries to give the driver page sized buffers.
Either that or the driver could allocate page sized buffers
even though it only passes fragments of these buffers to
the dma functions (to avoid excessive cache invalidates).
Since you have to trust the driver, why not actually trust it?
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)