linux/drivers/infiniband/hw/mlx4
Matan Barak 9433c18891 IB/mlx4: Invoke UPDATE_QP for proxy QP1 on MAC changes
When we receive a netdev event indicating a netdev change and/or
a netdev address change, we must change the MAC index used by the
proxy QP1 (in the QP context), otherwise RoCE CM packets sent by the
VF will not carry the same source MAC address as the non-CM packets.

We use the UPDATE_QP command to perform this change.

In order to avoid modifying a QP context based on netdev event,
while the driver attempts to destroy this QP (e.g either the mlx4_ib
or ib_mad modules are unloaded), we use mutex locking in both flows.

Since the relevant mlx4 proxy GSI QP is created indirectly by the
mad module when they create their GSI QP, the mlx4 didn't need to
keep track on that QP prior to this change.

Now, when QP modifications are needed to this QP from within the
driver, we added refernece to it.

Signed-off-by: Matan Barak <matanb@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-05-16 15:12:45 -04:00
..
ah.c IB/mlx4: Handle Ethernet L2 parameters for IP based GID addressing 2014-01-18 14:12:53 -08:00
alias_GUID.c mlx4: Use actual number of PCI functions (PF + VFs) for alias GUID logic 2014-03-25 20:48:05 -04:00
cm.c mlx4_ib: Fix SIDR support of for UD QPs under SRIOV/RoCE 2014-03-12 15:57:16 -04:00
cq.c mlx4: Implement IP based gids support for RoCE/SRIOV 2014-03-12 15:57:16 -04:00
doorbell.c IB: Refactor umem to use linear SG table 2014-03-04 10:34:28 -08:00
Kconfig IB/mlx4: Add dependency INET 2014-01-19 15:14:05 -08:00
mad.c net/mlx4: Adapt code for N-Port VF 2014-03-20 16:18:30 -04:00
main.c IB/mlx4: Invoke UPDATE_QP for proxy QP1 on MAC changes 2014-05-16 15:12:45 -04:00
Makefile IB/mlx4: Add iov directory in sysfs under the ib device 2012-09-30 20:33:39 -07:00
mcg.c mlx4: Implement IP based gids support for RoCE/SRIOV 2014-03-12 15:57:16 -04:00
mlx4_ib.h IB/mlx4: Invoke UPDATE_QP for proxy QP1 on MAC changes 2014-05-16 15:12:45 -04:00
mr.c IB: Refactor umem to use linear SG table 2014-03-04 10:34:28 -08:00
qp.c IB/mlx4: Invoke UPDATE_QP for proxy QP1 on MAC changes 2014-05-16 15:12:45 -04:00
srq.c IB/mlx4: Replace printk(KERN_yyy...) with pr_yyy(...) 2012-05-08 11:59:36 -07:00
sysfs.c net/mlx4: Adapt code for N-Port VF 2014-03-20 16:18:30 -04:00
user.h mlx4: 64-byte CQE/EQE support 2012-11-26 10:19:17 -08:00