rps_default_mask_sysctl() parses and validates writes in the live
per-netns mask. Both the bitmap parser and housekeeping validation can
modify that mask before returning an error, so a failed write can change
the default applied to RX queues created later.
Parse and validate a temporary mask before publishing it, and add a
regression test for a partially parsed invalid value.
On the base kernel, the new test fails because the mask changes from 1
to 3. With the fix, all ten rps_default_mask selftests pass. Tests with
isolated CPUs also confirm that overflow and housekeeping failures leave
the mask unchanged, while valid writes continue to work.
Yingjie Wang (2):
net: preserve rps_default_mask on failed writes
selftests: net: check failed rps_default_mask writes
net/core/sysctl_net_core.c | 23 +++++++++++--------
.../testing/selftests/net/rps_default_mask.sh | 23 +++++++++++++++++++
2 files changed, 36 insertions(+), 10 deletions(-)
base-commit: 94cea342e8915812b45f93c56e134041c7fdb4d7
--
2.43.0