[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20171001085913.GA29880@infradead.org>
Date: Sun, 1 Oct 2017 01:59:13 -0700
From: Christoph Hellwig <hch@...radead.org>
To: Dan Williams <dan.j.williams@...el.com>
Cc: Casey Leedom <leedom@...lsio.com>,
Robin Murphy <robin.murphy@....com>,
Harsh Jain <Harsh@...lsio.com>,
"Raj, Ashok" <ashok.raj@...el.com>,
Herbert Xu <herbert@...dor.apana.org.au>,
David Woodhouse <David.Woodhouse@...el.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"iommu@...ts.linux-foundation.org" <iommu@...ts.linux-foundation.org>,
"linux-crypto@...r.kernel.org" <linux-crypto@...r.kernel.org>,
"dwmw2@...radead.org" <dwmw2@...radead.org>,
Michael Werner <werner@...lsio.com>
Subject: Re: DMA error when sg->offset value is greater than PAGE_SIZE in
Intel IOMMU
On Wed, Sep 27, 2017 at 10:13:51AM -0700, Dan Williams wrote:
> As far as I can see "Offset can be greater than PAGE_SIZE" is the only
> safe assumption for core code.
It seems completely bogus to me, but if it is the current assumption
we'll have to document it. But this brings me back to that
our scatterlists are a pretty horrible data structure to start
with as they try to mix virtual and physical addressing together.
We'd be much better of by passing a chain of bio_vecs where we
just need virtual addresses, a chain of [bus_addr,len] pairs where
we just need a physical address, and both where we need both instead
of this giant structure that tries to do both at the same time..
Powered by blists - more mailing lists