Heiko Thiery <heiko.thiery@xxxxxxxxx> writes: > HI, > > Am Do., 9. Feb. 2023 um 22:19 Uhr schrieb Michael Walle <michael@xxxxxxxx>: >> >> Am 2023-02-09 22:07, schrieb Jakub Kicinski: >> > On Thu, 9 Feb 2023 18:51:58 +0000 Ajay.Kathat@xxxxxxxxxxxxx wrote: >> >> > netdev should be created with a valid lladdr, is there something >> >> > wifi-specific here that'd prevalent that? The canonical flow is >> >> > to this before registering the netdev: >> >> >> >> Here it's the timing in wilc1000 by when the MAC address is available >> >> to >> >> read from NV. NV read is available in "mac_open" net_device_ops >> >> instead >> >> of bus probe function. I think, mostly the operations on netdev which >> >> make use of mac address are performed after the "mac_open" (I may be >> >> missing something). >> >> >> >> Does it make sense to assign a random address in probe and later read >> >> back from NV in mac_open to make use of stored value? >> > >> > Hard to say, I'd suspect that may be even more confusing than >> > starting with zeroes. There aren't any hard rules around the >> > addresses AFAIK, but addrs are visible to user space. So user >> > space will likely make assumptions based on the most commonly >> > observed sequence (reading real addr at probe). >> >> Maybe we should also ask the NetworkManager guys. IMHO random >> MAC address sounds bogus. > > Maybe it would be a "workaround" with loading the firmware while > probing the device to set the real hw address. > > probe() > load_fw() > read_hw_addr_from_nv() > eth_hw_addr_set(ndev, addr) > unload_fw() > > mac_open() > load_fw() > > mac_close() > unload_fw() This is exactly what many wireless drivers already do and I recommend that wilc1000 would do the same. -- https://patchwork.kernel.org/project/linux-wireless/list/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches