linux_dsm_epyc7002/drivers/net/ethernet/mellanox/mlx4
Shani Michaelli ee755324a3 net/mlx4_en: Fix errors in MAC address changing when port is down
This patch fix an issue that happen when changing the MAC address when
the port is down, described as follows:
1. Set the port down.
2. Change the MAC address - mlx4_en_set_mac() will change dev->dev_addr.
3. Set the port up - will result in mlx4_en_do_uc_filter that will
   remove the prev_mac entry from the mac_hash db.
4. Changing the MAC address again will eventually trigger the call to
   mlx4_en_replace_mac() in order to replace prev_mac with dev_addr but
   the prev_mac entry is already not exist in the mac_hash db therefore
   the operation fails.

The fix is to set the prev_mac with the new MAC address so in step 3
above, after setting the port up mlx4_en_get_qp() is updating the
mac_hash with the entry of dev_addr which is equal to prev_mac.
Therefore in step 4, when calling mlx4_en_replace_mac, the entry related
to prev_mac exist in mac_hash and the replace operation succeed.

Reviewed-by: Eyal Perry <eyalpe@mellanox.com>
Signed-off-by: Shani Michaeli <shanim@mellanox.com>
Signed-off-by: Amir Vadai <amirv@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-05-14 15:40:33 -04:00
..
alloc.c mlx4_core: Roll back round robin bitmap allocation commit for CQs, SRQs, and MPTs 2013-12-09 21:12:13 -05:00
catas.c mlx4: Add support for EEH error recovery 2012-07-25 15:24:13 -07:00
cmd.c mellanox: Logging message cleanups 2014-05-08 23:42:02 -04:00
cq.c net/mlx4_core: Enforce irq affinity changes immediatly 2014-05-14 15:40:32 -04:00
en_clock.c ptp: drivers: set the number of programmable pins. 2014-03-21 14:21:14 -04:00
en_cq.c mellanox: Logging message cleanups 2014-05-08 23:42:02 -04:00
en_dcb_nl.c net/mlx4_en: Fix UP limit in ieee_ets->prio_tc 2014-03-02 20:04:00 -05:00
en_ethtool.c net/mlx4_en: User prio mapping gets corrupted when changing number of channels 2014-05-14 15:40:33 -04:00
en_main.c mellanox: Logging message cleanups 2014-05-08 23:42:02 -04:00
en_netdev.c net/mlx4_en: Fix errors in MAC address changing when port is down 2014-05-14 15:40:33 -04:00
en_port.c net/mlx4_en: Move queue stopped/waked counters to be per ring 2014-03-02 20:04:01 -05:00
en_port.h net/mlx4_core: set port QoS attributes 2012-04-05 05:08:03 -04:00
en_resources.c net/mlx4_en: Add netdev support for TCP/IP offloads of vxlan tunneling 2013-12-31 14:31:43 -05:00
en_rx.c net/mlx4_core: Enforce irq affinity changes immediatly 2014-05-14 15:40:32 -04:00
en_selftest.c net/mlx4_en: Fix selftest failing on non 10G link speed 2014-03-02 20:04:01 -05:00
en_tx.c net/mlx4_core: Enforce irq affinity changes immediatly 2014-05-14 15:40:32 -04:00
eq.c net/mlx4_core: Enforce irq affinity changes immediatly 2014-05-14 15:40:32 -04:00
fw.c mellanox: Logging message cleanups 2014-05-08 23:42:02 -04:00
fw.h net/mlx4_core: Expose physical port id as PF/VF capability 2013-12-19 19:04:43 -05:00
icm.c net/mlx4_core: ICM pages are allocated on device NUMA node 2013-11-07 19:22:48 -05:00
icm.h mlx4_core: Fix integer overflows so 8TBs of memory registration works 2012-09-13 17:52:02 -07:00
intf.c mlx4: Use port management change event instead of smp_snoop 2012-07-10 09:47:10 -07:00
Kconfig net/mlx4: Set proper build dependancy with vxlan 2014-04-01 16:25:51 -04:00
main.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-05-12 13:19:14 -04:00
Makefile net/mlx4_en: Add HW timestamping (TS) support 2013-04-24 16:30:14 -04:00
mcg.c mellanox: Logging message cleanups 2014-05-08 23:42:02 -04:00
mlx4_en.h mellanox: Logging message cleanups 2014-05-08 23:42:02 -04:00
mlx4.h mellanox: Logging message cleanups 2014-05-08 23:42:02 -04:00
mr.c mellanox: Logging message cleanups 2014-05-08 23:42:02 -04:00
pd.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
port.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-05-12 13:19:14 -04:00
profile.c mellanox: Logging message cleanups 2014-05-08 23:42:02 -04:00
qp.c mellanox: Logging message cleanups 2014-05-08 23:42:02 -04:00
reset.c mellanox: Logging message cleanups 2014-05-08 23:42:02 -04:00
resource_tracker.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-05-12 13:19:14 -04:00
sense.c Merge branch 'for-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2012-10-02 09:54:49 -07:00
srq.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00