Re: DMA error when sg->offset value is greater than PAGE_SIZE in Intel IOMMU

From: Casey Leedom
Date: Wed Sep 27 2017 - 12:31:13 EST


| From: Dan Williams <dan.j.williams@xxxxxxxxx>
| Sent: Tuesday, September 26, 2017 9:10 AM
|
| On Tue, Sep 26, 2017 at 9:06 AM, Casey Leedom <leedom@xxxxxxxxxxx> wrote:
| > | From: Robin Murphy <robin.murphy@xxxxxxx>
| > | Sent: Tuesday, September 26, 2017 7:22 AM
| > |...
| > ...
| > Regardless, it seems that you agree that there's an issue with the Intel
| > I/O MMU support code with regard to the legal values which a (struct
| > scatterlist) can take on? I still can't find any documentation for this
| > and, personally, I'm a bit baffled by a Page-oriented Scatter/Gather List
| > representation where [Offset, Offset+Length) can reside outside the Page.
|
| Consider the case where the page represents a huge page, then an
| offset greater than PAGE_SIZE (up to HPAGE_SIZE) makes sense.

Okay, but whatever the underlaying Page Size is, should [Offset,
Offset+Length) completely reside within the referenced Page? I'm just
trying to understand the Invariance Conditions which are assumed by all of
the code which processes Scatter/gather Lists ...

Casey