Re: sysctl in 2.6.24.2 excludes unapproved files from /proc/sys?

From: Alexey Dobriyan
Date: Fri Feb 29 2008 - 20:46:50 EST


On 3/1/08, Peter T. Breuer <ptb@xxxxxxxxxxxxxx> wrote:
> A change in 2.6.24.x kernel/sysctl.c seems to exclude exo-kernel drivers
> from using the /proc/sys/ interface:

That's somewhat correct.

> and IT TURNS OUT THAT (sorry, did I scream?)

Nobody gives a.

> sysctl_check_table can't
> succeed on anything that's now not been hardwired into the core kernel
> because of the new sysctl_check.c file which contains gazzilions of
> explict tables aying what is supposed to be in there in excruciating
> detail and which are consulted through sysctl_check_table and
> sysctl_binary_lookup. E.g:
>
> static struct trans_ctl_table trans_random_table[] = {
> { RANDOM_POOLSIZE, "poolsize" },
> { RANDOM_ENTROPY_COUNT, "entropy_avail" },
> { RANDOM_READ_THRESH, "read_wakeup_threshold" },
> { RANDOM_WRITE_THRESH, "write_wakeup_threshold" },
> { RANDOM_BOOT_ID, "boot_id" },
> { RANDOM_UUID, "uuid" },
> {}
> };
>
> It appears to me, not that I am totally sure because of the lack of
> comments,

Comments? You can read code, can't you?

> that every attempt to add a new direcotry in the tree with
> a number that is not listed in the above mess fails through
> sysctl_binary_lookup.sysctl_binary_lookup, and every attempt to add
> a directory with CTL_UNNUMBERED instead fails if it has children because
> the children cry about having an unnumbered parent. Every attempt to
> add a directory usurping an existing number fails through some string
> mismatch against the trans_.._tables on the dirnames in one of the
> numerous lookup functions (forget which).
>
> (somebody has really spent their holidays on this).
>
> What's a person to do?

If I understand you correcty, the answer is drop '.ctl_name' bits from
new sysctls and make sure common parts of tables match the ones
in mainline.
--
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/