[PATCH] ion: scatterlist offset not used for buffer map

Laura Abbott labbott at redhat.com
Fri Apr 8 22:43:59 UTC 2016


On 04/07/2016 11:56 PM, John Einar Reitan wrote:
> On Thu, Apr 07, 2016 at 12:37:50PM -0700, Laura Abbott wrote:
>> On 04/07/2016 04:29 AM, John Einar Reitan wrote:
>>> ion's default user/kernel page mapping code don't honor the offset
>>> option for scatterlists. It uses sg_page and expect the whole page to be
>>> mapped, while the offset could dictate an offset within a large page.
>>>
>>> sg_phys correctly accounts for the offset, so should be used instead.
>>>
>>
>> Can you be more specific about which heap and which allocation pattern
>> is exposing this bug?
>
> The heap that exposed the bug is one I'm developing and will be posting
> as a RFC soon. It uses compound pages and an sub-divides it into surface
> buffers. The ion buffers are configured to hold sgl's with the compound
> page and the correct offset of the buffer, via
> sg_set_page(.., compound_page, .., offset_of_logical_buffer);
>
> sg_phys/sg_virt  includes this offset, but if you poke the sg and extract
> the page with sg_page yourself you must include this offset in your
> calculations too.
>

This patch should be re-sent when you have the RFC for the heap. Unless
there is a heap available in tree we don't really need this patch.

Thanks,
Laura


More information about the devel mailing list