diff mbox series

mm: Optimizing error condition detection in do_mprotect_pkey()

Message ID 20210118133310.98375-1-tianjia.zhang@linux.alibaba.com
State Accepted
Commit dbf53f7597be11ffc18b16444a1ffc7d7b76746e
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)