lkml.org 
[lkml]   [2019]   [Jul]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [Xen-devel] [PATCH v4 8/9] xen/gntdev.c: Convert to use vm_map_pages()
From
Date
On 7/30/19 2:03 AM, Souptick Joarder wrote:
> On Mon, Jul 29, 2019 at 7:06 PM Marek Marczykowski-Górecki
> <marmarek@invisiblethingslab.com> wrote:
>> On Mon, Jul 29, 2019 at 02:02:54PM +0530, Souptick Joarder wrote:
>>> On Mon, Jul 29, 2019 at 1:35 PM Souptick Joarder <jrdr.linux@gmail.com> wrote:
>>>> On Sun, Jul 28, 2019 at 11:36 PM Marek Marczykowski-Górecki
>>>> <marmarek@invisiblethingslab.com> wrote:
>>>>> On Fri, Feb 15, 2019 at 08:18:31AM +0530, Souptick Joarder wrote:
>>>>>> Convert to use vm_map_pages() to map range of kernel
>>>>>> memory to user vma.
>>>>>>
>>>>>> map->count is passed to vm_map_pages() and internal API
>>>>>> verify map->count against count ( count = vma_pages(vma))
>>>>>> for page array boundary overrun condition.
>>>>> This commit breaks gntdev driver. If vma->vm_pgoff > 0, vm_map_pages
>>>>> will:
>>>>> - use map->pages starting at vma->vm_pgoff instead of 0
>>>> The actual code ignores vma->vm_pgoff > 0 scenario and mapped
>>>> the entire map->pages[i]. Why the entire map->pages[i] needs to be mapped
>>>> if vma->vm_pgoff > 0 (in original code) ?
>> vma->vm_pgoff is used as index passed to gntdev_find_map_index. It's
>> basically (ab)using this parameter for "which grant reference to map".
>>
>>>> are you referring to set vma->vm_pgoff = 0 irrespective of value passed
>>>> from user space ? If yes, using vm_map_pages_zero() is an alternate
>>>> option.
>> Yes, that should work.
> I prefer to use vm_map_pages_zero() to resolve both the issues. Alternatively
> the patch can be reverted as you suggested. Let me know you opinion and wait
> for feedback from others.
>
> Boris, would you like to give any feedback ?

vm_map_pages_zero() looks good to me. Marek, does it work for you?

-boris


\
 
 \ /
  Last update: 2019-07-30 16:09    [W:1.097 / U:0.592 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site