[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <MWHPR12MB1600948B2F57696189FC7C22C87A0@MWHPR12MB1600.namprd12.prod.outlook.com>
Date: Mon, 25 Sep 2017 20:05:45 +0000
From: Casey Leedom <leedom@...lsio.com>
To: Dan Williams <dan.j.williams@...el.com>
CC: Robin Murphy <robin.murphy@....com>,
Herbert Xu <herbert@...dor.apana.org.au>,
"Harsh Jain" <Harsh@...lsio.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>,
David Woodhouse <David.Woodhouse@...el.com>
Subject: Re: DMA error when sg->offset value is greater than PAGE_SIZE in
Intel IOMMU
| From: Dan Williams <dan.j.williams@...el.com>
| Sent: Monday, September 25, 2017 12:31 PM
| ...
| IIUC it looks like this has been broken ever since commit e1605495c716
| "intel-iommu: Introduce domain_sg_mapping() to speed up
| intel_map_sg()". I.e. it looks like the calculation for pte_val should
| be:
|
| pteval = (page_to_phys(sg_page(sg)) + sg->offset) | prot;
Hhmmm, shouldn't that be:
pteval = (page_to_phys(sg_page(sg)) + (sg->offset>>PAGE_SHIFT)) | prot;
???
Casey
Powered by blists - more mailing lists