From 44e484a6aa14c388c28750df2cb26b4810b3b399 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 16 Sep 2021 16:50:15 +0200 Subject: [PATCH] initrd: refactor parsing of "rd.ethtool=" to accept zero positional arguments The point of positional arguments is that you can omit them, and that should be treated as the parameter being set to the default. So, don't treat "rd.ethtool=eth0" (or "rd.ethtool=eth0:") special. Just continue the parsing and take all following positional arguments as unset. --- src/nm-initrd-generator/nmi-cmdline-reader.c | 5 ----- src/nm-initrd-generator/tests/test-cmdline-reader.c | 10 +++------- 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/src/nm-initrd-generator/nmi-cmdline-reader.c b/src/nm-initrd-generator/nmi-cmdline-reader.c index 367962d99d..f6aa87b924 100644 --- a/src/nm-initrd-generator/nmi-cmdline-reader.c +++ b/src/nm-initrd-generator/nmi-cmdline-reader.c @@ -1187,11 +1187,6 @@ reader_parse_ethtool(Reader *reader, char *argument) return; } - if (!*argument) { - _LOGW(LOGD_CORE, "Could not find rd.ethtool options to set"); - return; - } - autoneg_str = get_word(&argument, ':'); speed_str = get_word(&argument, ':'); diff --git a/src/nm-initrd-generator/tests/test-cmdline-reader.c b/src/nm-initrd-generator/tests/test-cmdline-reader.c index ccdb8ab7be..6f747fed1a 100644 --- a/src/nm-initrd-generator/tests/test-cmdline-reader.c +++ b/src/nm-initrd-generator/tests/test-cmdline-reader.c @@ -2318,11 +2318,9 @@ test_rd_ethtool(void) NMTST_EXPECT_NM_WARN("cmdline-reader: Impossible to set rd.ethtool options: invalid format"); _ethtool_check_inval("rd.ethtool="); - NMTST_EXPECT_NM_WARN("cmdline-reader: Could not find rd.ethtool options to set"); - _ethtool_check_inval("rd.ethtool=eth0"); + _ethtool_check("rd.ethtool=eth0", FALSE, 0); - NMTST_EXPECT_NM_WARN("cmdline-reader: Could not find rd.ethtool options to set"); - _ethtool_check_inval("rd.ethtool=eth0:"); + _ethtool_check("rd.ethtool=eth0:", FALSE, 0); NMTST_EXPECT_NM_WARN("cmdline-reader: Impossible to set rd.ethtool options: invalid format"); _ethtool_check_inval("rd.ethtool=::"); @@ -2407,9 +2405,7 @@ test_rd_ethtool(void) _ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:off:100", "rd.ethtool=eth0:off"), FALSE, 0); _ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:on:100", "rd.ethtool=eth0:on"), TRUE, 0); _ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:on:100", "rd.ethtool=eth0:off"), FALSE, 0); - - NMTST_EXPECT_NM_WARN("cmdline-reader: Could not find rd.ethtool options to set"); - _ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:off:100", "rd.ethtool=eth0:"), FALSE, 100); + _ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:off:100", "rd.ethtool=eth0:"), FALSE, 0); } /*****************************************************************************/