Re: + sysctl-add-proc_dointvec_unsigned-handler.patch added to -mm tree

From: Dave Young
Date: Tue Mar 08 2011 - 03:43:41 EST


On Tue, Mar 8, 2011 at 4:24 PM, Alexey Dobriyan <adobriyan@xxxxxxxxx> wrote:
> On Tue, Mar 08, 2011 at 01:43:31PM +0800, Dave Young wrote:
>> On Tue, Mar 8, 2011 at 1:15 PM, Dave Young <hidave.darkstar@xxxxxxxxx> wrote:
>> > On Tue, Mar 8, 2011 at 7:26 AM, Alexey Dobriyan <adobriyan@xxxxxxxxx> wrote:
>> >> On Mon, Mar 07, 2011 at 03:05:43PM -0800, akpm@xxxxxxxxxxxxxxxxxxxx wrote:
>> >>> Add a proc_dointvec_unsigned() sysctl handler for positive value cases.
>> >>
>> >>> --- a/kernel/sysctl.c~sysctl-add-proc_dointvec_unsigned-handler
>> >>> +++ a/kernel/sysctl.c
>> >>
>> >>> +int proc_dointvec_unsigned(struct ctl_table *table, int write,
>> >>> + Â Â Â Â Â Â Â void __user *buffer, size_t *lenp, loff_t *ppos)
>> >>> +{
>> >>> + Â Â struct do_proc_dointvec_minmax_conv_param param = {
>> >>> + Â Â Â Â Â Â .min = &zero,
>> >>> + Â Â };
>> >>> + Â Â return do_proc_dointvec(table, write, buffer, lenp, ppos,
>> >>> + Â Â Â Â Â Â Â Â Â Â Â Â Â Â do_proc_dointvec_minmax_conv, &param);
>> >>> +}
>> >>
>> >> This silently ignored max value in .extra2 .
>> >
>> > Hi,
>> >
>> > Good cache, should set .max = NULL here
>>
>> Oh, c99 set default value to 0, isn't it?
>>
>> What do you mean silently ignore here?
>>
>> Let's see the code:
>>
>> Âif ((param->min && *param->min > val) ||
>> Â Â Â Â Â Â Â Â Â Â (param->max && *param->max < val))
>> Â Â Â Â Â Â Â Â Â Â return -EINVAL;
>>
>> There's no problem max == NULL
>
> I mean literally "silently ignore".
>
> Try
> Â Â Â Â{
> Â Â Â Â Â Â Â Â.name = "foo",
> Â Â Â Â Â Â Â Â.data = &foo,
> Â Â Â Â Â Â Â Â.maxlen = sizeof(foo),
> Â Â Â Â Â Â Â Â.proc_handler = proc_dointvec_unsigned,
> Â Â Â Â Â Â Â Â.extra2 = &_42,
> Â Â Â Â}
>

Yes, extra2 is ignored, what would you like to do for this kind of ignore?


--
Regards
dave
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/