diff mbox series

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

Message ID 20210201220551.GA8015@ls3530.fritz.box (mailing list archive)
State New, archived
Headers show
Series [v2] linux-user: fix O_NONBLOCK usage for hppa target | expand

Commit Message

Helge Deller Feb. 1, 2021, 10:05 p.m. UTC
Historically 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>

---

Comments

Laurent Vivier Feb. 13, 2021, 4:23 p.m. UTC | #1
Le 01/02/2021 à 23:05, Helge Deller a écrit :
> Historically 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 */
> 

Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Laurent Vivier Feb. 13, 2021, 4:25 p.m. UTC | #2
Le 01/02/2021 à 23:05, Helge Deller a écrit :
> Historically 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 */
> 

Applied to my linux-user-for-6.0 branch.

Thanks,
Laurent
Helge Deller Feb. 22, 2021, 1:02 a.m. UTC | #3
Dear qemu-stable,

can you please consider adding this patch to the qemu-stable branch.
Upstream commit	2bdc74f3d7c4cacb65dbde910471c62992640275

Thanks,
Helge


On 2/13/21 5:25 PM, Laurent Vivier wrote:
> Le 01/02/2021 à 23:05, Helge Deller a écrit :
>> Historically 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 */
>>
>
> Applied to my linux-user-for-6.0 branch.
>
> Thanks,
> Laurent
>
diff mbox series

Patch

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 */