All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicolas Pitre <nicolas.pitre@linaro.org>
To: Matthew Wilcox <willy@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Souptick Joarder <jrdr.linux@gmail.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 01/10] cramfs: Convert to use vmf_insert_mixed
Date: Tue, 28 Aug 2018 13:49:25 -0400 (EDT)	[thread overview]
Message-ID: <nycvar.YSQ.7.76.1808281235060.10215@knanqh.ubzr> (raw)
In-Reply-To: <20180828145728.11873-2-willy@infradead.org>

On Tue, 28 Aug 2018, Matthew Wilcox wrote:

> cramfs is the only remaining user of vm_insert_mixed; convert it.
> 
> Signed-off-by: Matthew Wilcox <willy@infradead.org>
> ---
>  fs/cramfs/inode.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c
> index f408994fc632..b72449c19cd1 100644
> --- a/fs/cramfs/inode.c
> +++ b/fs/cramfs/inode.c
> @@ -417,10 +417,15 @@ static int cramfs_physmem_mmap(struct file *file, struct vm_area_struct *vma)
>  		 */
>  		int i;
>  		vma->vm_flags |= VM_MIXEDMAP;
> -		for (i = 0; i < pages && !ret; i++) {
> +		for (i = 0; i < pages; i++) {
> +			vm_fault_t vmf;
>  			unsigned long off = i * PAGE_SIZE;
>  			pfn_t pfn = phys_to_pfn_t(address + off, PFN_DEV);
> -			ret = vm_insert_mixed(vma, vma->vm_start + off, pfn);
> +			vmf = vmf_insert_mixed(vma, vma->vm_start + off, pfn);
> +			if (vmf & VM_FAULT_ERROR) {
> +				pages = i;
> +				break;
> +			}

I'd suggest this to properly deal with errers instead:

diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c
index f408994fc6..0c35e62f10 100644
--- a/fs/cramfs/inode.c
+++ b/fs/cramfs/inode.c
@@ -418,9 +418,12 @@ static int cramfs_physmem_mmap(struct file *file, struct vm_area_struct *vma)
 		int i;
 		vma->vm_flags |= VM_MIXEDMAP;
 		for (i = 0; i < pages && !ret; i++) {
+			vm_fault_t vmf;
 			unsigned long off = i * PAGE_SIZE;
 			pfn_t pfn = phys_to_pfn_t(address + off, PFN_DEV);
-			ret = vm_insert_mixed(vma, vma->vm_start + off, pfn);
+			vmf = vmf_insert_mixed(vma, vma->vm_start + off, pfn);
+			if (vmf & VM_FAULT_ERROR)
+				ret = vm_fault_to_errno(vmf, 0);
 		}
 	}
 

Nicolas

  reply	other threads:[~2018-08-28 17:49 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-28 14:57 [PATCH 00/10] Push the vm_fault_t conversion further Matthew Wilcox
2018-08-28 14:57 ` [PATCH 01/10] cramfs: Convert to use vmf_insert_mixed Matthew Wilcox
2018-08-28 17:49   ` Nicolas Pitre [this message]
2018-08-28 22:04     ` Matthew Wilcox
2018-08-28 23:52       ` Nicolas Pitre
2018-08-28 14:57 ` [PATCH 02/10] mm: Remove vm_insert_mixed Matthew Wilcox
2018-08-28 14:57 ` [PATCH 03/10] mm: Introduce vmf_insert_pfn_prot Matthew Wilcox
2018-08-28 14:57 ` [PATCH 04/10] x86: Convert vdso to use vm_fault_t Matthew Wilcox
2018-08-28 14:57 ` [PATCH 05/10] mm: Make vm_insert_pfn_prot static Matthew Wilcox
2018-08-28 14:57 ` [PATCH 06/10] mm: Remove references to vm_insert_pfn Matthew Wilcox
2018-08-28 14:57 ` [PATCH 07/10] mm: Remove vm_insert_pfn Matthew Wilcox
2018-08-28 14:57 ` [PATCH 08/10] mm: Inline vm_insert_pfn_prot into caller Matthew Wilcox
2018-08-28 14:57 ` [PATCH 09/10] mm: Convert __vm_insert_mixed to vm_fault_t Matthew Wilcox
2018-08-28 14:57 ` [PATCH 10/10] mm: Convert insert_pfn " Matthew Wilcox

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=nycvar.YSQ.7.76.1808281235060.10215@knanqh.ubzr \
    --to=nicolas.pitre@linaro.org \
    --cc=akpm@linux-foundation.org \
    --cc=jrdr.linux@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=willy@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.