Re: [PATCH v2] linux-user/syscall: fix target_msqid_ds time fields order

Helge Deller <[email protected]>
Newsgroups org.nongnu.qemu-devel
Message-ID <[email protected]>
On 8/8/26 10:50, Michael Tokarev wrote:
> On 3/30/24 01:36, Max Filippov wrote:
>> target_msqid_ds::msg_*time field pairs are reversed on 32-bit TARGET_PPC
>> and TARGET_SPARC and on big-endian TARGET_MIPS and TARGET_XTENSA.
>> Fix the order to match the kernel definitions.
>> The issue is spotted by the libc-test http://nsz.repo.hu/git/?p=libc-test
>> on big-endian xtensa core.
>>
>> Cc: [email protected]
>> Signed-off-by: Max Filippov <[email protected]>
> 
> Just come across this old patch, is it not needed anymore or has it been lost?

Yes, seems to have been lost.

> (I realize the current code uses target_time64_t instead of abi_ulong, so probably
> not needed now)

Right. Unless we have an alignment problem with target_time64_t on 32-bit (which seems ok).

Helge

>> Changes v1->v2:
>> - split into a separate patch
>> - add PPC, SPARC and big-endian MIPS
>>
>>   linux-user/syscall.c | 20 +++++++++++++++-----
>>   1 file changed, 15 insertions(+), 5 deletions(-)
>>
>> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
>> index d9bfd31c1cad..781ed14bc613 100644
>> --- a/linux-user/syscall.c
>> +++ b/linux-user/syscall.c
>> @@ -4113,17 +4113,27 @@ static inline abi_long do_semtimedop(int semid,
>>   struct target_msqid_ds
>>   {
>>       struct target_ipc_perm msg_perm;
>> -    abi_ulong msg_stime;
>>   #if TARGET_ABI_BITS == 32
>> +#if defined(TARGET_PPC) || defined(TARGET_SPARC) || \
>> +    (TARGET_BIG_ENDIAN && (defined(TARGET_MIPS) || defined(TARGET_XTENSA)))
>> +    abi_ulong __unused1;
>> +    abi_ulong msg_stime;
>> +    abi_ulong __unused2;
>> +    abi_ulong msg_rtime;
>> +    abi_ulong __unused3;
>> +    abi_ulong msg_ctime;
>> +#else
>> +    abi_ulong msg_stime;
>>       abi_ulong __unused1;
>> -#endif
>>       abi_ulong msg_rtime;
>> -#if TARGET_ABI_BITS == 32
>>       abi_ulong __unused2;
>> -#endif
>>       abi_ulong msg_ctime;
>> -#if TARGET_ABI_BITS == 32
>>       abi_ulong __unused3;
>> +#endif
>> +#else
>> +    abi_ulong msg_stime;
>> +    abi_ulong msg_rtime;
>> +    abi_ulong msg_ctime;
>>   #endif
>>       abi_ulong __msg_cbytes;
>>       abi_ulong msg_qnum;
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.