Re: [PATCH net-next 3/3] net: dsa: connect a late-arriving PHY at ifup
Aleksei Sviridkin <[email protected]>
| Newsgroups | org.kernel.vger.netdev,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
> How about making the DSA driver depend on the PHY. That would be much > simpler. I worked through both halves of that for OpenWrt, where one kernel image serves every board of a target, so every kilobyte lands on all of them. Built-in: the PHY driver itself is cheap, under 8k of text and data on arm64. The firmware still lives on the rootfs though, and a built-in driver probes from an initcall, before mount_root(), so blocking in config_init() until the firmware shows up deadlocks the boot. Putting the firmware in the kernel image costs 144k on every board of the target, and almost none of them have this PHY. Modules: that works, and the kernel gets smaller. OpenWrt already does it elsewhere, kmod-dsa-mv88e6xxx depends on kmod-phy-marvell. What stops me is that it moves the switch driver out of the kernel for every board of the target, and NFS root goes with it. That is a bigger change than I want to push on my own, and it gives up the case you asked about. Do you see a third option, or is the module direction the one you would take, with NFS root treated as acceptable to lose on boards like these? MODULE_SOFTDEP looks useful where dracut builds the initramfs, OpenWrt builds its own, so I am not sure it applies here.