On Wed, Sep 27, 2017 at 9:31 AM, Casey Leedom <leedom@xxxxxxxxxxx> wrote: > | 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 ... As far as I can see "Offset can be greater than PAGE_SIZE" is the only safe assumption for core code.