|
@@ -5199,10 +5199,6 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i
|
|
|
dev->dev_addr[3] = (np->orig_mac[0] >> 16) & 0xff;
|
|
|
dev->dev_addr[4] = (np->orig_mac[0] >> 8) & 0xff;
|
|
|
dev->dev_addr[5] = (np->orig_mac[0] >> 0) & 0xff;
|
|
|
- /* set permanent address to be correct aswell */
|
|
|
- np->orig_mac[0] = (dev->dev_addr[0] << 0) + (dev->dev_addr[1] << 8) +
|
|
|
- (dev->dev_addr[2] << 16) + (dev->dev_addr[3] << 24);
|
|
|
- np->orig_mac[1] = (dev->dev_addr[4] << 0) + (dev->dev_addr[5] << 8);
|
|
|
writel(txreg|NVREG_TRANSMITPOLL_MAC_ADDR_REV, base + NvRegTransmitPoll);
|
|
|
}
|
|
|
memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
|
|
@@ -5414,6 +5410,8 @@ static void __devexit nv_remove(struct pci_dev *pci_dev)
|
|
|
*/
|
|
|
writel(np->orig_mac[0], base + NvRegMacAddrA);
|
|
|
writel(np->orig_mac[1], base + NvRegMacAddrB);
|
|
|
+ writel(readl(base + NvRegTransmitPoll) & ~NVREG_TRANSMITPOLL_MAC_ADDR_REV,
|
|
|
+ base + NvRegTransmitPoll);
|
|
|
|
|
|
/* free all structures */
|
|
|
free_rings(dev);
|