[PATCH] linux-user: fix O_NONBLOCK usage for hppa target

Helge Deller posted 1 patch 3 years, 2 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210201162652.GA25611@ls3530.fritz.box
Maintainers: Laurent Vivier <laurent@vivier.eu>
There is a newer version of this series
[PATCH] linux-user: fix O_NONBLOCK usage for hppa target
Posted by Helge Deller 3 years, 2 months ago
Historically the the parisc linux port tried to be compatible with
HP-UX userspace and as such defined the O_NONBLOCK constant to 0200004
to emulate separate NDELAY & NONBLOCK values.

Since parisc was the only Linux platform which had two bits set, this
produced various userspace issues. Finally it was decided to drop the
(never completed) HP-UX compatibilty, which is why O_NONBLOCK was
changed upstream to only have one bit set in future with this commit:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=75ae04206a4d0e4f541c1d692b7febd1c0fdb814

This patch simply adjusts the value for qemu-user too.

Signed-off-by: Helge Deller <deller@gmx.de>

---

diff --git a/linux-user/hppa/target_fcntl.h b/linux-user/hppa/target_fcntl.h
index bd966a59b8..08e3a4fcb0 100644
--- a/linux-user/hppa/target_fcntl.h
+++ b/linux-user/hppa/target_fcntl.h
@@ -8,7 +8,7 @@
 #ifndef HPPA_TARGET_FCNTL_H
 #define HPPA_TARGET_FCNTL_H

-#define TARGET_O_NONBLOCK    000200004 /* HPUX has separate NDELAY & NONBLOCK */
+#define TARGET_O_NONBLOCK    000200000
 #define TARGET_O_APPEND      000000010
 #define TARGET_O_CREAT       000000400 /* not fcntl */
 #define TARGET_O_EXCL        000002000 /* not fcntl */

Re: [PATCH] linux-user: fix O_NONBLOCK usage for hppa target
Posted by BALATON Zoltan 3 years, 2 months ago
On Mon, 1 Feb 2021, Helge Deller wrote:
> Historically the the parisc linux port tried to be compatible with

Double "the the" ^

> HP-UX userspace and as such defined the O_NONBLOCK constant to 0200004
> to emulate separate NDELAY & NONBLOCK values.
>
> Since parisc was the only Linux platform which had two bits set, this
> produced various userspace issues. Finally it was decided to drop the
> (never completed) HP-UX compatibilty, which is why O_NONBLOCK was
> changed upstream to only have one bit set in future with this commit:
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=75ae04206a4d0e4f541c1d692b7febd1c0fdb814
>
> This patch simply adjusts the value for qemu-user too.
>
> Signed-off-by: Helge Deller <deller@gmx.de>
>
> ---
>
> diff --git a/linux-user/hppa/target_fcntl.h b/linux-user/hppa/target_fcntl.h
> index bd966a59b8..08e3a4fcb0 100644
> --- a/linux-user/hppa/target_fcntl.h
> +++ b/linux-user/hppa/target_fcntl.h
> @@ -8,7 +8,7 @@
> #ifndef HPPA_TARGET_FCNTL_H
> #define HPPA_TARGET_FCNTL_H
>
> -#define TARGET_O_NONBLOCK    000200004 /* HPUX has separate NDELAY & NONBLOCK */
> +#define TARGET_O_NONBLOCK    000200000
> #define TARGET_O_APPEND      000000010
> #define TARGET_O_CREAT       000000400 /* not fcntl */
> #define TARGET_O_EXCL        000002000 /* not fcntl */
>
>