On Wed, 30 Nov 2016 18:30:52 +0800 Yisheng Xie <[email protected]> wrote:

> I tried to echo an invalid value to an unsigned long type sysctl on
> 4.9.0-rc6:
>    linux:~# cat /proc/sys/vm/user_reserve_kbytes
>    131072
>    linux:~# echo -1 > /proc/sys/vm/user_reserve_kbytes
>    linux:~# cat /proc/sys/vm/user_reserve_kbytes
>    131072
> 
> The echo operation got error and the value do not write to
> user_reserve_kbytes, however, user do not know it until checking
> the value again.
> 
> This patch return -EINVAL when write an invalid value to unsigned
> long type sysctl to make user know  what happened without
> checking its value once more, just as what proc_douintvec do.

hmpf.

# echo 18446744073709551615  > /proc/sys/vm/user_reserve_kbytes                 
                            
# cat /proc/sys/vm/user_reserve_kbytes
18446744073709551615

I think that when taking in an unsigned long the kernel should simply
treat -1 as 0xffffffff (or 0xffffffffffffffff).  It's natural and
normal and everyone knows what it means?



Reply via email to