* [PATCH v2] linux-user: Unconditionally use pipe2() syscall
@ 2022-07-19 16:20 Helge Deller
2022-07-19 17:50 ` Laurent Vivier
0 siblings, 1 reply; 2+ messages in thread
From: Helge Deller @ 2022-07-19 16:20 UTC (permalink / raw)
To: Laurent Vivier, qemu-devel, Peter Maydell
The pipe2() syscall is available on all Linux platforms since kernel
2.6.27, so use it unconditionally to emulate pipe() and pipe2().
Signed-off-by: Helge Deller <deller@gmx.de>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
Changes in v2:
- added Reviewed-by: from Peter
- new diff against git head
- no functional changes
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 991b85e6b4..4f89184d05 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -1586,21 +1586,12 @@ static abi_long do_ppoll(abi_long arg1, abi_long arg2, abi_long arg3,
}
#endif
-static abi_long do_pipe2(int host_pipe[], int flags)
-{
-#ifdef CONFIG_PIPE2
- return pipe2(host_pipe, flags);
-#else
- return -ENOSYS;
-#endif
-}
-
static abi_long do_pipe(CPUArchState *cpu_env, abi_ulong pipedes,
int flags, int is_pipe2)
{
int host_pipe[2];
abi_long ret;
- ret = flags ? do_pipe2(host_pipe, flags) : pipe(host_pipe);
+ ret = pipe2(host_pipe, flags);
if (is_error(ret))
return get_errno(ret);
diff --git a/meson.build b/meson.build
index 8a8c415fc1..75aaca8462 100644
--- a/meson.build
+++ b/meson.build
@@ -2026,15 +2026,6 @@ config_host_data.set('CONFIG_OPEN_BY_HANDLE', cc.links(gnu_source_prefix + '''
#else
int main(void) { struct file_handle fh; return open_by_handle_at(0, &fh, 0); }
#endif'''))
-config_host_data.set('CONFIG_PIPE2', cc.links(gnu_source_prefix + '''
- #include <unistd.h>
- #include <fcntl.h>
-
- int main(void)
- {
- int pipefd[2];
- return pipe2(pipefd, O_CLOEXEC);
- }'''))
config_host_data.set('CONFIG_POSIX_MADVISE', cc.links(gnu_source_prefix + '''
#include <sys/mman.h>
#include <stddef.h>
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v2] linux-user: Unconditionally use pipe2() syscall
2022-07-19 16:20 [PATCH v2] linux-user: Unconditionally use pipe2() syscall Helge Deller
@ 2022-07-19 17:50 ` Laurent Vivier
0 siblings, 0 replies; 2+ messages in thread
From: Laurent Vivier @ 2022-07-19 17:50 UTC (permalink / raw)
To: Helge Deller, qemu-devel, Peter Maydell
Le 19/07/2022 à 18:20, Helge Deller a écrit :
> The pipe2() syscall is available on all Linux platforms since kernel
> 2.6.27, so use it unconditionally to emulate pipe() and pipe2().
>
> Signed-off-by: Helge Deller <deller@gmx.de>
> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> Changes in v2:
> - added Reviewed-by: from Peter
> - new diff against git head
> - no functional changes
>
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 991b85e6b4..4f89184d05 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -1586,21 +1586,12 @@ static abi_long do_ppoll(abi_long arg1, abi_long arg2, abi_long arg3,
> }
> #endif
>
> -static abi_long do_pipe2(int host_pipe[], int flags)
> -{
> -#ifdef CONFIG_PIPE2
> - return pipe2(host_pipe, flags);
> -#else
> - return -ENOSYS;
> -#endif
> -}
> -
> static abi_long do_pipe(CPUArchState *cpu_env, abi_ulong pipedes,
> int flags, int is_pipe2)
> {
> int host_pipe[2];
> abi_long ret;
> - ret = flags ? do_pipe2(host_pipe, flags) : pipe(host_pipe);
> + ret = pipe2(host_pipe, flags);
>
> if (is_error(ret))
> return get_errno(ret);
> diff --git a/meson.build b/meson.build
> index 8a8c415fc1..75aaca8462 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -2026,15 +2026,6 @@ config_host_data.set('CONFIG_OPEN_BY_HANDLE', cc.links(gnu_source_prefix + '''
> #else
> int main(void) { struct file_handle fh; return open_by_handle_at(0, &fh, 0); }
> #endif'''))
> -config_host_data.set('CONFIG_PIPE2', cc.links(gnu_source_prefix + '''
> - #include <unistd.h>
> - #include <fcntl.h>
> -
> - int main(void)
> - {
> - int pipefd[2];
> - return pipe2(pipefd, O_CLOEXEC);
> - }'''))
> config_host_data.set('CONFIG_POSIX_MADVISE', cc.links(gnu_source_prefix + '''
> #include <sys/mman.h>
> #include <stddef.h>
Applied to my linux-user-for-7.1 branch.
Thanks,
Laurent
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-07-19 17:57 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-19 16:20 [PATCH v2] linux-user: Unconditionally use pipe2() syscall Helge Deller
2022-07-19 17:50 ` Laurent Vivier
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.