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

From: Harsh Jain
Date: Tue Sep 26 2017 - 07:18:23 EST




On 26-09-2017 00:15, David Woodhouse wrote:
> On Wed, 2017-09-20 at 16:01 +0800, Herbert Xu wrote:
>> Harsh Jain <Harsh@xxxxxxxxxxx> wrote:
>>> Â
>>> While debugging DMA mapping error in chelsio crypto driver we
>> observed that when scatter/gather list received by driver has some
>> entry with page->offset > 4096 (PAGE_SIZE). It starts giving DMA
>> error. Without IOMMU it works fine.
>>
>> This is not a bug. The network stack can and will feed us such
>> SG lists.
> Hm? Under what circumstances is the offset permitted to be >
> PAGE_SIZE?
Its random, Kernel API's don't check offset value after arithmetic operations like in "__skb_to_sgvec()", "scatterwalk_ffwd()".