|
@@ -814,8 +814,9 @@ static int __devinit rhine_init_one(struct pci_dev *pdev,
|
|
|
|
|
|
for (i = 0; i < 6; i++)
|
|
|
dev->dev_addr[i] = ioread8(ioaddr + StationAddr + i);
|
|
|
+ memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
|
|
|
|
|
|
- if (!is_valid_ether_addr(dev->dev_addr)) {
|
|
|
+ if (!is_valid_ether_addr(dev->perm_addr)) {
|
|
|
rc = -EIO;
|
|
|
printk(KERN_ERR "Invalid MAC address\n");
|
|
|
goto err_out_unmap;
|
|
@@ -1829,6 +1830,7 @@ static struct ethtool_ops netdev_ethtool_ops = {
|
|
|
.set_wol = rhine_set_wol,
|
|
|
.get_sg = ethtool_op_get_sg,
|
|
|
.get_tx_csum = ethtool_op_get_tx_csum,
|
|
|
+ .get_perm_addr = ethtool_op_get_perm_addr,
|
|
|
};
|
|
|
|
|
|
static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
|