From: Eran Ben Elisha <era...@mellanox.com>

As IB VFs are not capable to read the port counters through MADs,
move there to read their own QP counters to gather statistics.

Signed-off-by: Eran Ben Elisha <era...@mellanox.com>
Signed-off-by: Hadar Hen Zion <had...@mellanox.com>
Signed-off-by: Or Gerlitz <ogerl...@mellanox.com>
---
 drivers/infiniband/hw/mlx4/mad.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/infiniband/hw/mlx4/mad.c b/drivers/infiniband/hw/mlx4/mad.c
index 74ca13f..bc698b1 100644
--- a/drivers/infiniband/hw/mlx4/mad.c
+++ b/drivers/infiniband/hw/mlx4/mad.c
@@ -869,10 +869,12 @@ int mlx4_ib_process_mad(struct ib_device *ibdev, int 
mad_flags, u8 port_num,
                        struct ib_wc *in_wc, struct ib_grh *in_grh,
                        struct ib_mad *in_mad, struct ib_mad *out_mad)
 {
+       struct mlx4_ib_dev *dev = to_mdev(ibdev);
        switch (rdma_port_get_link_layer(ibdev, port_num)) {
        case IB_LINK_LAYER_INFINIBAND:
-               return ib_process_mad(ibdev, mad_flags, port_num, in_wc,
-                                     in_grh, in_mad, out_mad);
+               if (!mlx4_is_slave(dev->dev))
+                       return ib_process_mad(ibdev, mad_flags, port_num, in_wc,
+                                             in_grh, in_mad, out_mad);
        case IB_LINK_LAYER_ETHERNET:
                return iboe_process_mad(ibdev, mad_flags, port_num, in_wc,
                                          in_grh, in_mad, out_mad);
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to