Hello Roland,

is it possible that the "force" and write" parameter for the function
get_user_pages are interchanged.

The signature of get_user_pages is:

int get_user_pages(struct task_struct *tsk,
                   struct mm_struct *mm,
                   unsigned long start,
                   int len,
                   int write,    <<<<<
                   int force,    <<<<<
                   struct page **pages,
                   struct vm_area_struct **vmas)

The usage in uverbs_mem.c in function ib_umem_get (line 110) is:

ret = get_user_pages(current,
                     current->mm, cur_base,
                     min_t(int, npages,
                     PAGE_SIZE / sizeof (struct page *)),
                     1,          <<<< IS WRITE ???
                     !write,     <<<< IS FORCE ???
                     page_list,
                     NULL);

If that is the case, I think the problem was not seen, because ib_umem_get
was only used with the "write" flag at the moment.

--

Mit freundlichen Gruessen / Kind Regards
Heiko Joerg Schick

----------------------------------------------------------------------
Heiko J Schick
I/O Firmware Development II
Linux InfiniBand Device Drivers

IBM Deutschland Entwicklung GmbH     external:    49-07031-16-0 x4219
Schoenaicher Str. 220                t/l:         120-4129
71032 Boeblingen                     email:       [EMAIL PROTECTED]
----------------------------------------------------------------------
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to