> - memcpy(dev->dev_addr, mac_addr, ETH_ALEN); > + if (mac_addr) { > + ether_addr_copy(dev->dev_addr, mac_addr); > + } else { > + u8 ofmac[ETH_ALEN]; > + > + if (of_get_mac_address(pdev->dev.of_node, ofmac) == 0) > + ether_addr_copy(dev->dev_addr, ofmac);
You should be able to skip the ether_addr_copy() by passing dev->dev_addr directly to of_get_mac_address(). > + else > + eth_hw_addr_random(dev); > + } > > lp->rx_irq = platform_get_irq_byname(pdev, "korina_rx"); > lp->tx_irq = platform_get_irq_byname(pdev, "korina_tx"); > @@ -1146,8 +1157,21 @@ static int korina_remove(struct platform_device *pdev) > return 0; > } > > +#ifdef CONFIG_OF > +static const struct of_device_id korina_match[] = { > + { > + .compatible = "idt,3243x-emac", You need to document this compatible somewhere under Documentation/devicetree/binding Andrew