From: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> commit e01b042e580f1fbf4fd8da467442451da00c7a90 upstream. __setup() handlers should return 1 on success, i.e., the parameter has been handled. A return of 0 causes the "option=value" string to be added to init's environment strings, polluting it. Fixes: 47dd7a540b8a ("net: add support for STMicroelectronics Ethernet controllers.") Fixes: f3240e2811f0 ("stmmac: remove warning when compile as built-in (V2)") Signed-off-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> Reported-by: Igor Zhbanov <i.zhbanov@xxxxxxxxxxxx> Link: lore.kernel.org/r/64644a2f-4a20-bab3-1e15-3b2cdd0defe3@xxxxxxxxxxxx Cc: Giuseppe Cavallaro <peppe.cavallaro@xxxxxx> Cc: Alexandre Torgue <alexandre.torgue@xxxxxxxxxxx> Cc: Jose Abreu <joabreu@xxxxxxxxxxxx> Link: https://lore.kernel.org/r/20220224033536.25056-1-rdunlap@xxxxxxxxxxxxx Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -3608,7 +3608,7 @@ static int __init stmmac_cmdline_opt(cha char *opt; if (!str || !*str) - return -EINVAL; + return 1; while ((opt = strsep(&str, ",")) != NULL) { if (!strncmp(opt, "debug:", 6)) { if (kstrtoint(opt + 6, 0, &debug)) @@ -3639,11 +3639,11 @@ static int __init stmmac_cmdline_opt(cha goto err; } } - return 0; + return 1; err: pr_err("%s: ERROR broken module parameter conversion", __func__); - return -EINVAL; + return 1; } __setup("stmmaceth=", stmmac_cmdline_opt); Patches currently in stable-queue which might be from rdunlap@xxxxxxxxxxxxx are queue-4.9/arm-9182-1-mmu-fix-returns-from-early_param-and-__setup-functions.patch queue-4.9/net-stmmac-fix-return-value-of-__setup-handler.patch queue-4.9/net-sxgbe-fix-return-value-of-__setup-handler.patch