aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/emulex/benet/be.h
diff options
context:
space:
mode:
authorSuresh Reddy <Suresh.Reddy@broadcom.com>2016-09-07 19:57:53 +0530
committerDavid S. Miller <davem@davemloft.net>2016-09-07 22:44:56 -0700
commitc27ebf58517536c0006813007680b24db17def47 (patch)
tree1b04757f61b15326a8d04cd6496b1dd4afc2c0e5 /drivers/net/ethernet/emulex/benet/be.h
parentbe2net: Avoid redundant addition of mac address in HW (diff)
downloadlinux-dev-c27ebf58517536c0006813007680b24db17def47.tar.xz
linux-dev-c27ebf58517536c0006813007680b24db17def47.zip
be2net: Fix mac address collision in some configurations
If the device mac address is updated using ndo_set_mac_address(), while the same mac address is already programmed, the driver does not detect this condition if its netdev->dev_addr has been changed. The driver tries to add the same mac address resulting in mac address collision error. This has been observed in bonding mode-5 configuration. To fix this, store the mac address configured in HW in the adapter structure. Use this to compare against the new address being updated to avoid collision. Signed-off-by: Suresh Reddy <Suresh.Reddy@broadcom.com> Signed-off-by: Sathya Perla <sathya.perla@broadcom.com> Signed-off-by: Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/emulex/benet/be.h')
-rw-r--r--drivers/net/ethernet/emulex/benet/be.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be.h b/drivers/net/ethernet/emulex/benet/be.h
index eecf24e92fd3..30a26aa39a2b 100644
--- a/drivers/net/ethernet/emulex/benet/be.h
+++ b/drivers/net/ethernet/emulex/benet/be.h
@@ -693,6 +693,7 @@ struct be_adapter {
u32 fat_dump_len;
u16 serial_num[CNTL_SERIAL_NUM_WORDS];
u8 phy_state; /* state of sfp optics (functional, faulted, etc.,) */
+ u8 dev_mac[ETH_ALEN];
u32 priv_flags; /* ethtool get/set_priv_flags() */
struct be_error_recovery error_recovery;
};