]> git.pld-linux.org Git - packages/kernel.git/commitdiff
- randomize eth address on 'broken' r8169 cards. Upstream doesn't want this patch...
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Mon, 26 Mar 2012 17:10:27 +0000 (17:10 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    kernel-small_fixes.patch -> 1.59

kernel-small_fixes.patch

index 248dc4d6ceb934bd4ae4ecb7976c6bd58e49357f..0b54725165ea253e99e0d6a29d5b252cbb610f06 100644 (file)
@@ -167,3 +167,26 @@ index 46a15d8..eed44bf 100644
 -- 
 1.7.0.4
 
+diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
+index 7a0c800..ec5ebbb 100644
+--- a/drivers/net/ethernet/realtek/r8169.c
++++ b/drivers/net/ethernet/realtek/r8169.c
+@@ -4103,6 +4103,14 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
+       /* Get MAC address */
+       for (i = 0; i < ETH_ALEN; i++)
+               dev->dev_addr[i] = RTL_R8(MAC0 + i);
++
++      if (!is_valid_ether_addr(dev->dev_addr)) {
++              /* Report it and use a random ethernet address instead */
++              netdev_err(dev, "Invalid MAC address: %pM\n", dev->dev_addr);
++              random_ether_addr(dev->dev_addr);
++              netdev_info(dev, "Using random MAC address: %pM\n",
++                          dev->dev_addr);
++      }
+       memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len);
+       SET_ETHTOOL_OPS(dev, &rtl8169_ethtool_ops);
+-- 
+1.7.7.3
+
+  
\ No newline at end of file
This page took 0.096032 seconds and 4 git commands to generate.