packages: kernel/kernel-small_fixes.patch - randomize eth address on 'broke...

arekm arekm at pld-linux.org
Mon Mar 26 19:10:32 CEST 2012


Author: arekm                        Date: Mon Mar 26 17:10:32 2012 GMT
Module: packages                      Tag: HEAD
---- Log message:
- randomize eth address on 'broken' r8169 cards. Upstream doesn't want this patch but we do.

---- Files affected:
packages/kernel:
   kernel-small_fixes.patch (1.58 -> 1.59) 

---- Diffs:

================================================================
Index: packages/kernel/kernel-small_fixes.patch
diff -u packages/kernel/kernel-small_fixes.patch:1.58 packages/kernel/kernel-small_fixes.patch:1.59
--- packages/kernel/kernel-small_fixes.patch:1.58	Fri Mar 23 19:45:45 2012
+++ packages/kernel/kernel-small_fixes.patch	Mon Mar 26 19:10:27 2012
@@ -167,3 +167,26 @@
 -- 
 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
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/packages/kernel/kernel-small_fixes.patch?r1=1.58&r2=1.59



More information about the pld-cvs-commit mailing list