Summary

* sysctl ctl_table constification

  Constifying ctl_table structs prevents the modification of proc_handler
  function pointers. All ctl_table struct arguments are const qualified in the
  sysctl API in such a way that the ctl_table arrays being defined elsewhere
  and passed through sysctl can be constified one-by-one. We kick the
  constification off by qualifying user_table in kernel/ucount.c and expect all
  the ctl_tables to be constified in the coming releases.

* Misc fixes

  Adjust comments in two places to better reflect the code. Remove superfluous
  dput calls. Remove Luis from sysctl maintainership. Replace comments about
  holding a lock with calls to lockdep_assert_held.

* Testing

  All these went through 0-day and they have all been in linux-next for at
  least 1 month (since Oct-24). I also rand these through the sysctl selftest
  for x86_64.
sysctl: Reduce dput(child) calls in proc_sys_fill_cache()

Replace two dput(child) calls with one that occurs immediately before
the IS_ERR evaluation. This transformation can be performed because
dput() gets called regardless of the value returned by IS_ERR(res).

This issue was transformed by using a script for the
semantic patch language like the following.
<SmPL>
@extended_adjustment@
expression e, f != { mutex_unlock }, x, y;
@@
+f(e);
 if (...)
 {
 <+... when != \( e = x \| y(..., &e, ...) \)
-   f(e);
 ...+>
 }
-f(e);
</SmPL>

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Reviewed-by: Joel Granados <joel.granados@kernel.org>
Signed-off-by: Joel Granados <joel.granados@kernel.org>
1 file changed