All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Brauner <christian.brauner@ubuntu.com>
To: Liu Shixin <liushixin2@huawei.com>
Cc: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Arve Hjønnevåg" <arve@android.com>,
	"Todd Kjos" <tkjos@android.com>,
	"Martijn Coenen" <maco@android.com>,
	"Joel Fernandes" <joel@joelfernandes.org>,
	"Christian Brauner" <christian@brauner.io>,
	"Hridya Valsaraju" <hridya@google.com>,
	"Suren Baghdasaryan" <surenb@google.com>,
	devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH -next] binder: simplify the return expression of binder_mmap
Date: Mon, 21 Sep 2020 10:08:30 +0200	[thread overview]
Message-ID: <20200921080830.vrki7dcm64l46ppb@wittgenstein> (raw)
In-Reply-To: <20200921082423.2590938-1-liushixin2@huawei.com>

On Mon, Sep 21, 2020 at 04:24:23PM +0800, Liu Shixin wrote:
> Simplify the return expression.
> 
> Signed-off-by: Liu Shixin <liushixin2@huawei.com>
> ---

Why not is all I can really say. :) But if this is about simplifying you
could get rid of the "ret" and "failure string" variables, and the goto
in that function completely by doing sm like this (__completely
untested__):

diff --git a/drivers/android/binder.c b/drivers/android/binder.c
index f936530a19b0..26f4dc81b008 100644
--- a/drivers/android/binder.c
+++ b/drivers/android/binder.c
@@ -5182,9 +5182,7 @@ static const struct vm_operations_struct binder_vm_ops = {

 static int binder_mmap(struct file *filp, struct vm_area_struct *vma)
 {
-       int ret;
        struct binder_proc *proc = filp->private_data;
-       const char *failure_string;

        if (proc->tsk != current->group_leader)
                return -EINVAL;
@@ -5196,9 +5194,9 @@ static int binder_mmap(struct file *filp, struct vm_area_struct *vma)
                     (unsigned long)pgprot_val(vma->vm_page_prot));

        if (vma->vm_flags & FORBIDDEN_MMAP_FLAGS) {
-               ret = -EPERM;
-               failure_string = "bad vm_flags";
-               goto err_bad_arg;
+               pr_err("%s: %d %lx-%lx %s failed %d\n", __func__,
+                               proc->pid, vma->vm_start, vma->vm_end, "bad vm_flags", -EPERM);
+               return -EPERM;
        }
        vma->vm_flags |= VM_DONTCOPY | VM_MIXEDMAP;
        vma->vm_flags &= ~VM_MAYWRITE;
@@ -5206,15 +5204,7 @@ static int binder_mmap(struct file *filp, struct vm_area_struct *vma)
        vma->vm_ops = &binder_vm_ops;
        vma->vm_private_data = proc;

-       ret = binder_alloc_mmap_handler(&proc->alloc, vma);
-       if (ret)
-               return ret;
-       return 0;
-
-err_bad_arg:
-       pr_err("%s: %d %lx-%lx %s failed %d\n", __func__,
-              proc->pid, vma->vm_start, vma->vm_end, failure_string, ret);
-       return ret;
+       return binder_alloc_mmap_handler(&proc->alloc, vma);
 }

Christian

WARNING: multiple messages have this Message-ID (diff)
From: Christian Brauner <christian.brauner@ubuntu.com>
To: Liu Shixin <liushixin2@huawei.com>
Cc: devel@driverdev.osuosl.org, "Todd Kjos" <tkjos@android.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	linux-kernel@vger.kernel.org,
	"Suren Baghdasaryan" <surenb@google.com>,
	"Hridya Valsaraju" <hridya@google.com>,
	"Arve Hjønnevåg" <arve@android.com>,
	"Joel Fernandes" <joel@joelfernandes.org>,
	"Martijn Coenen" <maco@android.com>,
	"Christian Brauner" <christian@brauner.io>
Subject: Re: [PATCH -next] binder: simplify the return expression of binder_mmap
Date: Mon, 21 Sep 2020 10:08:30 +0200	[thread overview]
Message-ID: <20200921080830.vrki7dcm64l46ppb@wittgenstein> (raw)
In-Reply-To: <20200921082423.2590938-1-liushixin2@huawei.com>

On Mon, Sep 21, 2020 at 04:24:23PM +0800, Liu Shixin wrote:
> Simplify the return expression.
> 
> Signed-off-by: Liu Shixin <liushixin2@huawei.com>
> ---

Why not is all I can really say. :) But if this is about simplifying you
could get rid of the "ret" and "failure string" variables, and the goto
in that function completely by doing sm like this (__completely
untested__):

diff --git a/drivers/android/binder.c b/drivers/android/binder.c
index f936530a19b0..26f4dc81b008 100644
--- a/drivers/android/binder.c
+++ b/drivers/android/binder.c
@@ -5182,9 +5182,7 @@ static const struct vm_operations_struct binder_vm_ops = {

 static int binder_mmap(struct file *filp, struct vm_area_struct *vma)
 {
-       int ret;
        struct binder_proc *proc = filp->private_data;
-       const char *failure_string;

        if (proc->tsk != current->group_leader)
                return -EINVAL;
@@ -5196,9 +5194,9 @@ static int binder_mmap(struct file *filp, struct vm_area_struct *vma)
                     (unsigned long)pgprot_val(vma->vm_page_prot));

        if (vma->vm_flags & FORBIDDEN_MMAP_FLAGS) {
-               ret = -EPERM;
-               failure_string = "bad vm_flags";
-               goto err_bad_arg;
+               pr_err("%s: %d %lx-%lx %s failed %d\n", __func__,
+                               proc->pid, vma->vm_start, vma->vm_end, "bad vm_flags", -EPERM);
+               return -EPERM;
        }
        vma->vm_flags |= VM_DONTCOPY | VM_MIXEDMAP;
        vma->vm_flags &= ~VM_MAYWRITE;
@@ -5206,15 +5204,7 @@ static int binder_mmap(struct file *filp, struct vm_area_struct *vma)
        vma->vm_ops = &binder_vm_ops;
        vma->vm_private_data = proc;

-       ret = binder_alloc_mmap_handler(&proc->alloc, vma);
-       if (ret)
-               return ret;
-       return 0;
-
-err_bad_arg:
-       pr_err("%s: %d %lx-%lx %s failed %d\n", __func__,
-              proc->pid, vma->vm_start, vma->vm_end, failure_string, ret);
-       return ret;
+       return binder_alloc_mmap_handler(&proc->alloc, vma);
 }

Christian
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

  reply	other threads:[~2020-09-21  8:09 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-21  8:24 [PATCH -next] binder: simplify the return expression of binder_mmap Liu Shixin
2020-09-21  8:24 ` Liu Shixin
2020-09-21  8:08 ` Christian Brauner [this message]
2020-09-21  8:08   ` Christian Brauner
2020-09-21 10:42   ` Liu Shixin
2020-09-21 10:42     ` Liu Shixin
2020-09-21 11:47   ` Liu Shixin
2020-09-21 11:47     ` Liu Shixin
2020-09-27 12:35     ` Greg Kroah-Hartman
2020-09-27 12:35       ` Greg Kroah-Hartman
2020-09-29  1:52       ` [PATCH v3 " Liu Shixin
2020-09-29  1:52         ` Liu Shixin
2020-10-02 13:48         ` Greg Kroah-Hartman
2020-10-02 13:48           ` Greg Kroah-Hartman
2020-10-02 14:18         ` Martijn Coenen
2020-10-02 14:18           ` Martijn Coenen
2020-10-02 14:28         ` Christian Brauner
2020-10-02 14:28           ` Christian Brauner

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=20200921080830.vrki7dcm64l46ppb@wittgenstein \
    --to=christian.brauner@ubuntu.com \
    --cc=arve@android.com \
    --cc=christian@brauner.io \
    --cc=devel@driverdev.osuosl.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hridya@google.com \
    --cc=joel@joelfernandes.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=liushixin2@huawei.com \
    --cc=maco@android.com \
    --cc=surenb@google.com \
    --cc=tkjos@android.com \
    /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.