> +static int rtsn_probe(struct platform_device *pdev) > +{ > + struct rtsn_private *priv; > + struct net_device *ndev; > + struct resource *res; > + int ret; > + > + ndev = alloc_etherdev_mqs(sizeof(struct rtsn_private), TX_NUM_CHAINS, ... > + ether_setup(ndev); struct net_device *alloc_etherdev_mqs(int sizeof_priv, unsigned int txqs, unsigned int rxqs) { return alloc_netdev_mqs(sizeof_priv, "eth%d", NET_NAME_ENUM, ether_setup, txqs, rxqs); } Notice the ether_setup here? I think you end up calling it twice. Andrew