On 26-09-2017 01:41, Dan Williams wrote: > On Mon, Sep 25, 2017 at 1:05 PM, Casey Leedom <leedom@xxxxxxxxxxx> wrote: >> | From: Dan Williams <dan.j.williams@xxxxxxxxx> >> | 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; > Yes, I think you're right. We do want to mask off the page-unaligned > portion of sg->offset. Tried changing above line in "__domain_mapping" but didn't help.