Thread (18 messages) 18 messages, 7 authors, 2018-11-28

[PATCH 1/9] mm: Introduce new vm_insert_range API

From: Randy Dunlap <hidden>
Date: 2018-11-16 16:59:58
Also in: dri-devel, linux-iommu, linux-media, linux-mm, linux-rockchip, lkml

On 11/16/18 12:15 AM, Souptick Joarder wrote:
On Fri, Nov 16, 2018 at 12:11 PM Matthew Wilcox [off-list ref] wrote:
quoted
On Fri, Nov 16, 2018 at 11:00:30AM +0530, Souptick Joarder wrote:
quoted
On Thu, Nov 15, 2018 at 11:44 PM Randy Dunlap [off-list ref] wrote:
quoted
On 11/15/18 7:45 AM, Souptick Joarder wrote:
What is the opposite of vm_insert_range() or even of vm_insert_page()?
or is there no need for that?
There is no opposite function of vm_insert_range() / vm_insert_page().
My understanding is, in case of any error, mmap handlers will return the
err to user process and user space will decide the next action. So next
time when mmap handler is getting invoked it will map from the beginning.
Correct me if I am wrong.
The opposite function, I suppose, is unmap_region().
quoted
quoted
s/no./number/
I didn't get it ??
This is a 'sed' expression.  's' is the 'substitute' command; the /
is a separator, 'no.' is what you wrote, and 'number' is what Randy
is recommending instead.
Ok. Will change it in v2.
Thanks.
quoted
quoted
quoted
quoted
+     for (i = 0; i < page_count; i++) {
+             ret = vm_insert_page(vma, uaddr, pages[i]);
+             if (ret < 0)
+                     return ret;
For a non-trivial value of page_count:
Is it a problem if vm_insert_page() succeeds for several pages
and then fails?
No, it will be considered as total failure and mmap handler will return
the err to user space.
I think what Randy means is "What happens to the inserted pages?" and
the answer is that mmap_region() jumps to the 'unmap_and_free_vma'
label, which is an accurate name.
which says:

	/* Undo any partial mapping done by a device driver. */
	unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end);

and that is what I was missing.  Thanks.
Sorry for incorrect understanding of the question.
No problem.


-- 
~Randy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help