Hi Breno, On Tue, Sep 23, 2025 at 05:22:25AM -0700, Breno Leitao wrote: > For targets that are set by the mac address, they don't necessarily get > np.dev_name populated, do they? > > I am double checking netpoll_setup(), and if > is_valid_ether_addr(np->dev_mac), I don't see np.dev_name being > populated.
I was not expecting it to be the case either, bu my understanding is that np.dev_name does get populated by __netpoll_setup, which is called unconditionally at the end of netpoll_setup. __netpoll_setup eventually does: np->dev = ndev; strscpy(np->dev_name, ndev->name, IFNAMSIZ); I've confirmed that for targets bound by mac, np->dev_name is empty before these lines but then it is correctly populated here. For targets create by name, np->dev_name is already correctly set prior to this. Please, let me know if I'm missing something. > Should we also compare that the mac doesn't match before returning? Even though the above seem to work on my tests, I was not 100% sure we wanted to also check the dev_name when we initially bound by mac. I've also considered the approach below, which I think achieves what you are suggesting: if (!is_broadcast_ether_addr(nt->np.dev_mac)) { if(memcmp(nt->np.dev_mac, ndev->dev_addr, ETH_ALEN)) return; } else if (strncmp(nt->np.dev_name, ndev->name, IFNAMSIZ)) { return; } Let me know if you prefer this approach, it would allow resuming targets in case even if their dev_name changes. > --breno