From: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> commit 50e06ddceeea263f57fe92baa677c638ecd65bb6 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: acc18c147b22 ("net: sxgbe: add EEE(Energy Efficient Ethernet) for Samsung sxgbe") Fixes: 1edb9ca69e8a ("net: sxgbe: add basic framework for Samsung 10Gb ethernet driver") 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: Siva Reddy <siva.kallam@xxxxxxxxxxx> Cc: Girish K S <ks.giri@xxxxxxxxxxx> Cc: Byungho An <bh74.an@xxxxxxxxxxx> Link: https://lore.kernel.org/r/20220224033528.24640-1-rdunlap@xxxxxxxxxxxxx Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) --- a/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c +++ b/drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c @@ -2311,18 +2311,18 @@ static int __init sxgbe_cmdline_opt(char char *opt; if (!str || !*str) - return -EINVAL; + return 1; while ((opt = strsep(&str, ",")) != NULL) { if (!strncmp(opt, "eee_timer:", 10)) { if (kstrtoint(opt + 10, 0, &eee_timer)) goto err; } } - return 0; + return 1; err: pr_err("%s: ERROR broken module parameter conversion\n", __func__); - return -EINVAL; + return 1; } __setup("sxgbeeth=", sxgbe_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