Re: [PATCH 0/8] Remove child from struct ctl_table

From: Luis Chamberlain
Date: Tue Jun 06 2023 - 14:56:31 EST


On Fri, Jun 02, 2023 at 01:06:30PM +0200, Joel Granados wrote:
> Resending as the first set got mangled with smtp error.
>
> This is part of the effort to remove the empty element of the ctl_table
> structures (used to calculate size) and replace it with an ARRAY_SIZE call. By
> replacing the child element in struct ctl_table with a flags element we make
> sure that there are no forward recursions on child nodes and therefore set
> ourselves up for just using an ARRAY_SIZE. We also added some self tests to
> make sure that we do not break anything.
>
> Patchset is separated in 4: parport fixes, selftests fixes, selftests additions and
> replacement of child element. Tested everything with sysctl self tests and everything
> seems "ok".
>
> 1. parport fixes: @mcgrof: this is related to my previous series and it plugs a
> sysct table leak in the parport driver. Please tell me if you want me to repost
> the parport series with this one stiched in.
>
> 2. Selftests fixes: Remove the prefixed zeros when passing a awk field to the
> awk print command because it was causing $0009 to be interpreted as $0.
> Replaced continue with return in sysctl.sh(test_case) so the test actually
> gets skipped. The skip decision is now in sysctl.sh(skip_test).
>
> 3. Selftest additions: New test to confirm that unregister actually removes
> targets. New test to confirm that permanently empty targets are indeed
> created and that no other targets can be created "on top".
>
> 4. Replaced the child pointer in struct ctl_table with a u8 flag. The flag
> is used to differentiate between permanently empty targets and non-empty ones.
>
> Comments/feedback greatly appreciated

This all looks great, thanks so much for doing all this work! I pushed
to sysctl-next.

Luis