diff mbox series

mm: Optimizing error condition detection in do_mprotect_pkey()

Message ID 20210118133310.98375-1-tianjia.zhang@linux.alibaba.com (mailing list archive)
State New
Headers show
Series mm: Optimizing error condition detection in do_mprotect_pkey() | expand

Commit Message

Tianjia Zhang Jan. 18, 2021, 1:33 p.m. UTC
Obviously, the error variable detection of the if statement is
for the mprotect callback function, so it is also put into the
scope of calling callbck.

Reported-by: Jia Zhang <zhang.jia@linux.alibaba.com>
Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
---
 mm/mprotect.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

Jarkko Sakkinen Jan. 20, 2021, 2:29 p.m. UTC | #1
On Mon, Jan 18, 2021 at 09:33:10PM +0800, Tianjia Zhang wrote:
> Obviously, the error variable detection of the if statement is
> for the mprotect callback function, so it is also put into the
> scope of calling callbck.
> 
> Reported-by: Jia Zhang <zhang.jia@linux.alibaba.com>
> Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>

No fixes tag, no description what this commit does. Nothing
makes sense to me.

/Jarkko

> ---
>  mm/mprotect.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/mm/mprotect.c b/mm/mprotect.c
> index ab709023e9aa..94188df1ee55 100644
> --- a/mm/mprotect.c
> +++ b/mm/mprotect.c
> @@ -617,10 +617,11 @@ static int do_mprotect_pkey(unsigned long start, size_t len,
>  		if (tmp > end)
>  			tmp = end;
>  
> -		if (vma->vm_ops && vma->vm_ops->mprotect)
> +		if (vma->vm_ops && vma->vm_ops->mprotect) {
>  			error = vma->vm_ops->mprotect(vma, nstart, tmp, newflags);
> -		if (error)
> -			goto out;
> +			if (error)
> +				goto out;
> +		}
>  
>  		error = mprotect_fixup(vma, &prev, nstart, tmp, newflags);
>  		if (error)
> -- 
> 2.19.1.3.ge56e4f7
> 
>
Andrew Morton Jan. 21, 2021, 10:46 p.m. UTC | #2
On Wed, 20 Jan 2021 16:29:20 +0200 Jarkko Sakkinen <jarkko@kernel.org> wrote:

> 
> 
> On Mon, Jan 18, 2021 at 09:33:10PM +0800, Tianjia Zhang wrote:
> > Obviously, the error variable detection of the if statement is
> > for the mprotect callback function, so it is also put into the
> > scope of calling callbck.
> > 
> > Reported-by: Jia Zhang <zhang.jia@linux.alibaba.com>
> > Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
> 
> No fixes tag, no description what this commit does. Nothing
> makes sense to me.

It's a little cleanup.  Makes the flow at this site consistent with the
other places where this function handles errors.  I added a bit to the
changelog mentioning this.
Jarkko Sakkinen Jan. 22, 2021, 5:38 p.m. UTC | #3
On Thu, Jan 21, 2021 at 02:46:27PM -0800, Andrew Morton wrote:
> On Wed, 20 Jan 2021 16:29:20 +0200 Jarkko Sakkinen <jarkko@kernel.org> wrote:
> 
> > 
> > 
> > On Mon, Jan 18, 2021 at 09:33:10PM +0800, Tianjia Zhang wrote:
> > > Obviously, the error variable detection of the if statement is
> > > for the mprotect callback function, so it is also put into the
> > > scope of calling callbck.
> > > 
> > > Reported-by: Jia Zhang <zhang.jia@linux.alibaba.com>
> > > Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
> > 
> > No fixes tag, no description what this commit does. Nothing
> > makes sense to me.
> 
> It's a little cleanup.  Makes the flow at this site consistent with the
> other places where this function handles errors.  I added a bit to the
> changelog mentioning this.

Alright, I see. I'm just used to getting feedback to my own patches
that "imperative form" of expression should be rigidly used. That's the
main reason I gave the feedback.

/Jarkko
diff mbox series

Patch

diff --git a/mm/mprotect.c b/mm/mprotect.c
index ab709023e9aa..94188df1ee55 100644
--- a/mm/mprotect.c
+++ b/mm/mprotect.c
@@ -617,10 +617,11 @@  static int do_mprotect_pkey(unsigned long start, size_t len,
 		if (tmp > end)
 			tmp = end;
 
-		if (vma->vm_ops && vma->vm_ops->mprotect)
+		if (vma->vm_ops && vma->vm_ops->mprotect) {
 			error = vma->vm_ops->mprotect(vma, nstart, tmp, newflags);
-		if (error)
-			goto out;
+			if (error)
+				goto out;
+		}
 
 		error = mprotect_fixup(vma, &prev, nstart, tmp, newflags);
 		if (error)