X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fnet%2Fsis190.c;h=20745fd4e9738e92050db6d70d9658a2b4e78c1a;hb=bc84e0a160e383deb56568f4e03bc51b1ce16775;hp=2e9e88be7b33f59558a06a22f06fee363805755d;hpb=a80f509f4a4f41ea8693733124470ad63a12664a;p=linux-2.6 diff --git a/drivers/net/sis190.c b/drivers/net/sis190.c index 2e9e88be7b..20745fd4e9 100644 --- a/drivers/net/sis190.c +++ b/drivers/net/sis190.c @@ -1630,15 +1630,21 @@ static inline void sis190_init_rxfilter(struct net_device *dev) SIS_PCI_COMMIT(); } -static int sis190_get_mac_addr(struct pci_dev *pdev, struct net_device *dev) +static int __devinit sis190_get_mac_addr(struct pci_dev *pdev, + struct net_device *dev) { - u8 from; + int rc; + + rc = sis190_get_mac_addr_from_eeprom(pdev, dev); + if (rc < 0) { + u8 reg; - pci_read_config_byte(pdev, 0x73, &from); + pci_read_config_byte(pdev, 0x73, ®); - return (from & 0x00000001) ? - sis190_get_mac_addr_from_apc(pdev, dev) : - sis190_get_mac_addr_from_eeprom(pdev, dev); + if (reg & 0x00000001) + rc = sis190_get_mac_addr_from_apc(pdev, dev); + } + return rc; } static void sis190_set_speed_auto(struct net_device *dev)