IB/mlx4: Load balance ports in port aggregation mode
[linux-2.6-block.git] / drivers / infiniband / hw / mlx4 / mlx4_ib.h
index 2b49f9de255639922c14a29f8c1996ceb3ec603b..721540c9163d540b98717fc8f4c13cb2302d5752 100644 (file)
@@ -534,6 +534,7 @@ struct mlx4_ib_dev {
        struct mlx4_ib_qp      *qp1_proxy[MLX4_MAX_PORTS];
        /* lock when destroying qp1_proxy and getting netdev events */
        struct mutex            qp1_proxy_lock[MLX4_MAX_PORTS];
+       u8                      bond_next_port;
 };
 
 struct ib_event_work {
@@ -629,6 +630,13 @@ static inline struct mlx4_ib_ah *to_mah(struct ib_ah *ibah)
        return container_of(ibah, struct mlx4_ib_ah, ibah);
 }
 
+static inline u8 mlx4_ib_bond_next_port(struct mlx4_ib_dev *dev)
+{
+       dev->bond_next_port = (dev->bond_next_port + 1) % dev->num_ports;
+
+       return dev->bond_next_port + 1;
+}
+
 int mlx4_ib_init_sriov(struct mlx4_ib_dev *dev);
 void mlx4_ib_close_sriov(struct mlx4_ib_dev *dev);