[LTP] [PATCH V4] getrlimit03: adjust a bit of code to compatiable with mips32

Hongzhi, Song hongzhi.song@windriver.com
Tue Jul 16 11:07:58 CEST 2019


On 7/16/19 3:07 PM, Jan Stancek wrote:
>
> ----- Original Message -----
>> Error info:
>> getrlimit03.c:104: FAIL: __NR_prlimit64(0) had rlim_cur =
>> ffffffffffffffff but __NR_getrlimit(0) had rlim_cur = 7fffffff
>>
>> According to kernel code: [arch/mips/include/uapi/asm/resource.h]
>> RLIM_INFINITY is set to 0x7fffffffUL instead of ULONG_MAX on mips32.
>>
>>   /*
>>   * SuS says limits have to be unsigned.
>>   * Which makes a ton more sense anyway,
>>   * but we keep the old value on MIPS32,
>>   * for compatibility:
>>   */
>>   #ifndef __mips64
>>   # define RLIM_INFINITY      0x7fffffffUL
>>   #endif
>>
>> Adding conditional statement about mips to fix this.
>>
>> Signed-off-by: Jan Stancek <jstancek@redhat.com>
>> Signed-off-by: Hongzhi.Song <hongzhi.song@windriver.com>
>> ---
>>   testcases/kernel/syscalls/getrlimit/getrlimit03.c | 8 +++++++-
>>   1 file changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/testcases/kernel/syscalls/getrlimit/getrlimit03.c
>> b/testcases/kernel/syscalls/getrlimit/getrlimit03.c
>> index e4d56c4..03bd821 100644
>> --- a/testcases/kernel/syscalls/getrlimit/getrlimit03.c
>> +++ b/testcases/kernel/syscalls/getrlimit/getrlimit03.c
>> @@ -26,6 +26,7 @@
>>   
>>   #include "tst_test.h"
>>   #include "lapi/syscalls.h"
>> +#include "lapi/abisize.h"
>>   
>>   /**
>>    * Linux provides an "old" getrlimit syscall handler that uses signed long,
>> @@ -61,7 +62,12 @@ struct rlimit_ulong {
>>   	unsigned long rlim_cur;
>>   	unsigned long rlim_max;
>>   };
>> -const unsigned long RLIM_INFINITY_UL = ULONG_MAX;
>> +
>> +#if defined(__mips) && defined(TST_ABI32)
> I see several tests already use __mips__, why did you go with __mips here?
> Anyway, I'm fine with the patch.


I just find kernel uses __mips, but I will change to __mips__ with patch-v5.

Thanks.

--Hongzhi


>
>> +	const unsigned long RLIM_INFINITY_UL = 0x7fffffffUL;
>> +#else
>> +	const unsigned long RLIM_INFINITY_UL = ULONG_MAX;
>> +#endif
>>   
>>   static int getrlimit_ulong(int resource, struct rlimit_ulong *rlim)
>>   {
>> --
>> 2.8.1
>>
>>


More information about the ltp mailing list