lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <x49tvw0z30y.fsf@segfault.boston.devel.redhat.com>
Date:   Fri, 05 Jan 2018 11:25:17 -0500
From:   Jeff Moyer <jmoyer@...hat.com>
To:     Christoph Hellwig <hch@....de>,
        Benjamin LaHaise <ben@...munityfibre.ca>
Cc:     linux-aio@...ck.org, Avi Kivity <avi@...lladb.com>,
        linux-fsdevel@...r.kernel.org, netdev@...r.kernel.org,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/6] move _body_io_syscall to the generic syscall.h

Christoph Hellwig <hch@....de> writes:

> This way it can be used for the fallback 6-argument version on
> all architectures.
>
> Signed-off-by: Christoph Hellwig <hch@....de>

This is a strange way to do things.  However, I was never really sold on
libaio having to implement its own system call wrappers.  That decision
definitely resulted in some maintenance overhead.

Ben, what was your reasoning for not just using syscall?

-Jeff

> ---
>  src/syscall-generic.h | 6 ------
>  src/syscall.h         | 7 +++++++
>  2 files changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/src/syscall-generic.h b/src/syscall-generic.h
> index 24d7c7c..35b8580 100644
> --- a/src/syscall-generic.h
> +++ b/src/syscall-generic.h
> @@ -2,12 +2,6 @@
>  #include <unistd.h>
>  #include <sys/syscall.h>
>  
> -#define _body_io_syscall(sname, args...) \
> -{ \
> -	int ret = syscall(__NR_##sname, ## args); \
> -	return ret < 0 ? -errno : ret; \
> -}
> -
>  #define io_syscall1(type,fname,sname,type1,arg1) \
>  type fname(type1 arg1) \
>  _body_io_syscall(sname, (long)arg1)
> diff --git a/src/syscall.h b/src/syscall.h
> index a2da030..3819519 100644
> --- a/src/syscall.h
> +++ b/src/syscall.h
> @@ -10,6 +10,13 @@
>  #define DEFSYMVER(compat_sym, orig_sym, ver_sym)	\
>  	__asm__(".symver " SYMSTR(compat_sym) "," SYMSTR(orig_sym) "@@LIBAIO_" SYMSTR(ver_sym));
>  
> +/* generic fallback */
> +#define _body_io_syscall(sname, args...) \
> +{ \
> +	int ret = syscall(__NR_##sname, ## args); \
> +	return ret < 0 ? -errno : ret; \
> +}
> +
>  #if defined(__i386__)
>  #include "syscall-i386.h"
>  #elif defined(__x86_64__)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ