IB/mlx4: Support RAW Ethernet when RoCE is disabled
Subsystems (3)
PATCH 1/1 IB/mlx4: Support RAW Ethernet when RoCE is disabled
From: Majd Dibbiny <majd-VPRAkNaXOzVWk0Htik3J/[email protected]>
On some environments, such as certain SR-IOV VF configurations, RoCE isn't supported for mlx4 Ethernet ports. Currently the driver will not open IB device on that port.
This is problematic since we do want user-space RAW Ethernet QPs functionality to remain in place. For that end, enhance the relevant driver flows such that we do create a device instance in that case.
--- drivers/infiniband/hw/mlx4/main.c | 26 +++++++++++--------------- include/linux/mlx4/device.h | 3 +-- 2 files changed, 12 insertions(+), 17 deletions(-)
drivers/infiniband/hw/mlx4/main.c +11 -15
@@ -2867,23 +2867,19 @@ static void *mlx4_ib_add(struct mlx4_dev *dev)if (mlx4_ib_init_sriov (ibdev)) goto err_mad; -if (dev->caps.flags &MLX4_DEV_CAP_FLAG_IBOE || - dev->caps.flags2 &MLX4_DEV_CAP_FLAG2_ROCE_V1_V2 ) { -if (!iboe->nb.notifier_call) { - iboe->nb.notifier_call = mlx4_ib_netdev_event; - err =register_netdevice_notifier (&iboe->nb); -if (err) { - iboe->nb.notifier_call =NULL ; - goto err_notif; - } - } -if (dev->caps.flags2 &MLX4_DEV_CAP_FLAG2_ROCE_V1_V2 ) { - err =mlx4_config_roce_v2_port (dev,ROCE_V2_UDP_DPORT ); -if (err) { - goto err_notif; - } +if (!iboe->nb.notifier_call) { + iboe->nb.notifier_call = mlx4_ib_netdev_event; + err =register_netdevice_notifier (&iboe->nb); +if (err) { + iboe->nb.notifier_call =NULL ; + goto err_notif; } } +if (dev->caps.flags2 &MLX4_DEV_CAP_FLAG2_ROCE_V1_V2 ) { + err =mlx4_config_roce_v2_port (dev,ROCE_V2_UDP_DPORT ); +if (err) + goto err_notif; + }for (j =0 ; j <ARRAY_SIZE (mlx4_class_attributes); ++j) { if (device_create_file(&ibdev->ib_dev.dev,
include/linux/mlx4/device.h +1 -2
@@ -1010,8 +1010,7 @@ struct mlx4_mad_ifc {#define mlx4_foreach_ib_transport_port (port, dev) \ for ((port) = 1; (port) <= (dev)->caps.num_ports; (port)++) \ if (((dev)->caps.port_mask[port] == MLX4_PORT_TYPE_IB) || \ - ((dev)->caps.flags & MLX4_DEV_CAP_FLAG_IBOE) || \ - ((dev)->caps.flags2 & MLX4_DEV_CAP_FLAG2_ROCE_V1_V2)) + ((dev)->caps.port_mask[port] == MLX4_PORT_TYPE_ETH))#define MLX4_INVALID_SLAVE_ID 0xFF#define MLX4_SINK_COUNTER_INDEX (dev) (dev->caps.max_counters - 1)
--
2.12.0
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): 20170319090128.7593-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org
Doug Ledford
AppliedQuoted 6 lines · Leon Romanovsky
From: Majd Dibbiny <majd-VPRAkNaXOzVWk0Htik3J/[email protected]>
On some environments, such as certain SR-IOV VF configurations, RoCE isn't supported for mlx4 Ethernet ports. Currently the driver will not open IB device on that port.
Quoted 8 lines
This is problematic since we do want user-space RAW Ethernet QPs functionality
to remain in place. For that end, enhance the relevant driver flows such that we
do create a device instance in that case.Signed-off-by Leon Romanovsky <[email protected]>
Thanks, applied.
Signature · 9 lines
Doug Ledford <[email protected]> GPG KeyID: B826A3330E572FDD Key fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html