[1/2] elf: simpler check for -EEXIST
diff mbox series

Message ID 20190314204208.GA18143@avx2
State New, archived
Headers show
Series
  • [1/2] elf: simpler check for -EEXIST
Related show

Commit Message

Alexey Dobriyan March 14, 2019, 8:42 p.m. UTC
PTR_ERR((void *)map_addr) == -EEXIST

is a very complicated way of doing the obvious.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
---

 fs/binfmt_elf.c |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Tetsuo Handa March 14, 2019, 10:02 p.m. UTC | #1
On 2019/03/15 5:42, Alexey Dobriyan wrote:
> 	PTR_ERR((void *)map_addr) == -EEXIST
> 
> is a very complicated way of doing the obvious.

Michal suggested me to explicitly use PTR_ERR() for documentation purpose in
a reply mail to https://lkml.kernel.org/r/20180418115546.GZ17484@dhcp22.suse.cz .

> 
> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> ---
> 
>  fs/binfmt_elf.c |    3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> --- a/fs/binfmt_elf.c
> +++ b/fs/binfmt_elf.c
> @@ -375,8 +375,7 @@ static unsigned long elf_map(struct file *filep, unsigned long addr,
>  	} else
>  		map_addr = vm_mmap(filep, addr, size, prot, type, off);
>  
> -	if ((type & MAP_FIXED_NOREPLACE) &&
> -	    PTR_ERR((void *)map_addr) == -EEXIST)
> +	if ((type & MAP_FIXED_NOREPLACE) && map_addr == -EEXIST)
>  		pr_info("%d (%s): Uhuuh, elf segment at %px requested but the memory is mapped already\n",
>  			task_pid_nr(current), current->comm, (void *)addr);
>  
>
Alexey Dobriyan March 15, 2019, 4:05 p.m. UTC | #2
On Fri, Mar 15, 2019 at 07:02:23AM +0900, Tetsuo Handa wrote:
> On 2019/03/15 5:42, Alexey Dobriyan wrote:
> > 	PTR_ERR((void *)map_addr) == -EEXIST
> > 
> > is a very complicated way of doing the obvious.
> 
> Michal suggested me to explicitly use PTR_ERR()

without any explanation why...

I wonder what documentation does this line need?

	map_addr == -EEXIST


> for documentation purpose in
> a reply mail to https://lkml.kernel.org/r/20180418115546.GZ17484@dhcp22.suse.cz .
> 
> > 
> > Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> > ---
> > 
> >  fs/binfmt_elf.c |    3 +--
> >  1 file changed, 1 insertion(+), 2 deletions(-)
> > 
> > --- a/fs/binfmt_elf.c
> > +++ b/fs/binfmt_elf.c
> > @@ -375,8 +375,7 @@ static unsigned long elf_map(struct file *filep, unsigned long addr,
> >  	} else
> >  		map_addr = vm_mmap(filep, addr, size, prot, type, off);
> >  
> > -	if ((type & MAP_FIXED_NOREPLACE) &&
> > -	    PTR_ERR((void *)map_addr) == -EEXIST)
> > +	if ((type & MAP_FIXED_NOREPLACE) && map_addr == -EEXIST)
> >  		pr_info("%d (%s): Uhuuh, elf segment at %px requested but the memory is mapped already\n",
> >  			task_pid_nr(current), current->comm, (void *)addr);
> >  
> > 
>
Michal Hocko March 16, 2019, 8:31 a.m. UTC | #3
On Fri 15-03-19 19:05:17, Alexey Dobriyan wrote:
> On Fri, Mar 15, 2019 at 07:02:23AM +0900, Tetsuo Handa wrote:
> > On 2019/03/15 5:42, Alexey Dobriyan wrote:
> > > 	PTR_ERR((void *)map_addr) == -EEXIST
> > > 
> > > is a very complicated way of doing the obvious.
> > 
> > Michal suggested me to explicitly use PTR_ERR()
> 
> without any explanation why...

The return value is ERR_PTR. This code uses unsigned long which is OK
but I thought it is better to call out the return value convention
explicitly. It is not like I would argue about that though.

Patch
diff mbox series

--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -375,8 +375,7 @@  static unsigned long elf_map(struct file *filep, unsigned long addr,
 	} else
 		map_addr = vm_mmap(filep, addr, size, prot, type, off);
 
-	if ((type & MAP_FIXED_NOREPLACE) &&
-	    PTR_ERR((void *)map_addr) == -EEXIST)
+	if ((type & MAP_FIXED_NOREPLACE) && map_addr == -EEXIST)
 		pr_info("%d (%s): Uhuuh, elf segment at %px requested but the memory is mapped already\n",
 			task_pid_nr(current), current->comm, (void *)addr);