mlx4: Disable HA for SRIOV PF RoCE devices
authorOr Gerlitz <ogerlitz@mellanox.com>
Thu, 25 Jun 2015 08:29:44 +0000 (11:29 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 25 Jun 2015 09:06:29 +0000 (02:06 -0700)
When in HA mode, the driver exposes an IB (RoCE) device instance with only
one port. Under SRIOV, the existing implementation doesn't go well with
the PF RoCE driver's role of Special QPs Para-Virtualization, etc.

As such, disable HA for the mlx4 PF RoCE device in SRIOV mode.

Fixes: a57500903093 ('IB/mlx4: Add port aggregation support')
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/intf.c

index 6fce58718837202bd82739dd8592b753ece7ef42..0d80aed5904371c2a2358a99618e7a2328b50c09 100644 (file)
@@ -93,8 +93,14 @@ int mlx4_register_interface(struct mlx4_interface *intf)
        mutex_lock(&intf_mutex);
 
        list_add_tail(&intf->list, &intf_list);
-       list_for_each_entry(priv, &dev_list, dev_list)
+       list_for_each_entry(priv, &dev_list, dev_list) {
+               if (mlx4_is_mfunc(&priv->dev) && (intf->flags & MLX4_INTFF_BONDING)) {
+                       mlx4_dbg(&priv->dev,
+                                "SRIOV, disabling HA mode for intf proto %d\n", intf->protocol);
+                       intf->flags &= ~MLX4_INTFF_BONDING;
+               }
                mlx4_add_device(intf, priv);
+       }
 
        mutex_unlock(&intf_mutex);
 
This page took 0.028846 seconds and 5 git commands to generate.