Re: [PATCH v2] sys_prctl(): remove unsigned comparision with less than zero

Yang Xu
2019-07-30T08:48:57Z

on 2019/07/25 11:10, Yang Xu wrote:

>>> --- a/kernel/sys.c
>>> +++ b/kernel/sys.c
>>> @@ -2372,7 +2372,7 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
>>> error = current->timer_slack_ns;
>>> break;
>>> case PR_SET_TIMERSLACK:
>>> - if (arg2<= 0)
>>> + if (arg2 == 0)
>>> current->timer_slack_ns =
>>> current->default_timer_slack_ns;
>> A number of years ago Linus expressed approval of such comparisons with
>> unsigned quantities. He felt that it improves readability a little -
>> the reader doesn't have to scroll back and check the type.
> Hi Andrew
>
> It sounds good. ButWe still have to look at the actual situation. In here, this comparisons with unsigned
> quantities doesn't improvereadability. In turn, the code give user a wrongdescription as man page said "
> If arg2 is less than or equal to zero, the "current" timer slack is reset to the thread's default" timer slack value."
> If we set -1 in user space, we pass it into kernel as ULONG_MAX, it will not use default timer_slack value.
> Also, I guess that if value has no actual sense we can use this comparisons. In here, arg2 represents slack time.
> time will never less than 0.
> ps: whether we change or not change this comparisons, it doesn't affect logic. So if you think this patch is meaningless,
> I will accept it.
Hi Andrew
what do you think about it? update it or keep it.

Thanks
Yang Xu