Re: nt: usb: USB_RTL8153_ECM should not default to y
From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2021-09-18 11:16:27
Hi Jakub, On Fri, Sep 17, 2021 at 9:37 PM Jakub Kicinski [off-list ref] wrote:
On Fri, 17 Sep 2021 21:05:55 +0200 Maciej Żenczykowski wrote:quoted
quoted
Yeah.. more context here: https://lore.kernel.org/all/7fd014f2-c9a5-e7ec-f1c6-b3e4bb0f6eb6@samsung.com/ (local) default !USB_RTL8152 would be my favorite but that probably doesn't compute in kconfig land. Or perhaps bring back the 'y' but more clearly mark it as a sub-option of CDCETHER? It's hard to blame people for expecting drivers to default to n, we should make it clearer that this is more of a "make driver X support variation Y", 'cause now it sounds like a completely standalone driver from the Kconfig wording. At least to a lay person like myself.I think: depends on USB_NET_CDCETHER && (USB_RTL8152 || USB_RTL8152=n) default y accomplished exactly what was wanted. USB_NET_CDCETHER is a dependency, hence: USB_NET_CDCETHER=n forces it off - as it should - it's an addon to cdcether. USB_NET_CDCETHER=m disallows 'y' - module implies addon must be module.
What is the expected behavior if USB_NET_CDCETHER=y, and USB_RTL8152=n? In that case, the old "default y" made USB_RTL8153_ECM builtin. That was the issue I was fixing. If USB_RTL8153_ECM is somewhat critical, perhaps you want "default m if USB_NET_CDCETHER=m"?
quoted
similarly USB_RTL8152 is a dependency, so it being a module disallows 'y'. This is desired, because if CDCETHER is builtin, so this addon could be builtin, then RTL8152 would fail to bind it by default. ie. CDCETHER=y && RTL8152=m must force RTL8153_ECM != y (this is the bugfix) basically the funky 'USB_RTL8152 || USB_RTL8152=n' --> disallows 'y' iff RTL8152=m 'default y' enables it by default as 'y' if possible, as 'm' if not, and disables it if impossible. So I believe this had the exact right default behaviour - and allowed all the valid options.Right, it was _technically_ correct but run afoul of the "drivers should default to 'n'" policy. If it should not be treated as a driver but more of a feature of an existing driver which user has already selected we should refine the name of the option to make that clear.
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds