mirror of https://gitee.com/openkylin/linux.git
Merge branch 'mlx5-fixes'
Saeed Mahameed says: ==================== mlx5 driver fixes for 4.5-rc2 We added here a patch from Matan and Alaa for addressing Linus comments on the mess w.r.t reserved field names in the driver/firmware auto-generated file. Once the patch hits linus tree, we'll ask Doug to rebase his tree on that rc so both net-next and rdma-next development for 4.6 will be done under the fixed robust form. Also provided two patches that addresses the dynamic ndo initialization issue of mlx5e netdevice. Or and Saeed. changes from V1: (Only first patch was changed) In this V we fixed the issues addressed in Or's previous e-mail. 1. Offsets took into account two dimensional u8 arrays 2. Offsets took into account nesting unions and structs 3. Offsets for unions 4. Offsets for any reserved field ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
7b4c534ed4
|
@ -2024,18 +2024,37 @@ static int mlx5e_get_vf_stats(struct net_device *dev,
|
|||
vf_stats);
|
||||
}
|
||||
|
||||
static struct net_device_ops mlx5e_netdev_ops = {
|
||||
static const struct net_device_ops mlx5e_netdev_ops_basic = {
|
||||
.ndo_open = mlx5e_open,
|
||||
.ndo_stop = mlx5e_close,
|
||||
.ndo_start_xmit = mlx5e_xmit,
|
||||
.ndo_get_stats64 = mlx5e_get_stats,
|
||||
.ndo_set_rx_mode = mlx5e_set_rx_mode,
|
||||
.ndo_set_mac_address = mlx5e_set_mac,
|
||||
.ndo_vlan_rx_add_vid = mlx5e_vlan_rx_add_vid,
|
||||
.ndo_vlan_rx_kill_vid = mlx5e_vlan_rx_kill_vid,
|
||||
.ndo_vlan_rx_add_vid = mlx5e_vlan_rx_add_vid,
|
||||
.ndo_vlan_rx_kill_vid = mlx5e_vlan_rx_kill_vid,
|
||||
.ndo_set_features = mlx5e_set_features,
|
||||
.ndo_change_mtu = mlx5e_change_mtu,
|
||||
.ndo_do_ioctl = mlx5e_ioctl,
|
||||
.ndo_change_mtu = mlx5e_change_mtu,
|
||||
.ndo_do_ioctl = mlx5e_ioctl,
|
||||
};
|
||||
|
||||
static const struct net_device_ops mlx5e_netdev_ops_sriov = {
|
||||
.ndo_open = mlx5e_open,
|
||||
.ndo_stop = mlx5e_close,
|
||||
.ndo_start_xmit = mlx5e_xmit,
|
||||
.ndo_get_stats64 = mlx5e_get_stats,
|
||||
.ndo_set_rx_mode = mlx5e_set_rx_mode,
|
||||
.ndo_set_mac_address = mlx5e_set_mac,
|
||||
.ndo_vlan_rx_add_vid = mlx5e_vlan_rx_add_vid,
|
||||
.ndo_vlan_rx_kill_vid = mlx5e_vlan_rx_kill_vid,
|
||||
.ndo_set_features = mlx5e_set_features,
|
||||
.ndo_change_mtu = mlx5e_change_mtu,
|
||||
.ndo_do_ioctl = mlx5e_ioctl,
|
||||
.ndo_set_vf_mac = mlx5e_set_vf_mac,
|
||||
.ndo_set_vf_vlan = mlx5e_set_vf_vlan,
|
||||
.ndo_get_vf_config = mlx5e_get_vf_config,
|
||||
.ndo_set_vf_link_state = mlx5e_set_vf_link_state,
|
||||
.ndo_get_vf_stats = mlx5e_get_vf_stats,
|
||||
};
|
||||
|
||||
static int mlx5e_check_required_hca_cap(struct mlx5_core_dev *mdev)
|
||||
|
@ -2137,18 +2156,11 @@ static void mlx5e_build_netdev(struct net_device *netdev)
|
|||
|
||||
SET_NETDEV_DEV(netdev, &mdev->pdev->dev);
|
||||
|
||||
if (priv->params.num_tc > 1)
|
||||
mlx5e_netdev_ops.ndo_select_queue = mlx5e_select_queue;
|
||||
if (MLX5_CAP_GEN(mdev, vport_group_manager))
|
||||
netdev->netdev_ops = &mlx5e_netdev_ops_sriov;
|
||||
else
|
||||
netdev->netdev_ops = &mlx5e_netdev_ops_basic;
|
||||
|
||||
if (MLX5_CAP_GEN(mdev, vport_group_manager)) {
|
||||
mlx5e_netdev_ops.ndo_set_vf_mac = mlx5e_set_vf_mac;
|
||||
mlx5e_netdev_ops.ndo_set_vf_vlan = mlx5e_set_vf_vlan;
|
||||
mlx5e_netdev_ops.ndo_get_vf_config = mlx5e_get_vf_config;
|
||||
mlx5e_netdev_ops.ndo_set_vf_link_state = mlx5e_set_vf_link_state;
|
||||
mlx5e_netdev_ops.ndo_get_vf_stats = mlx5e_get_vf_stats;
|
||||
}
|
||||
|
||||
netdev->netdev_ops = &mlx5e_netdev_ops;
|
||||
netdev->watchdog_timeo = 15 * HZ;
|
||||
|
||||
netdev->ethtool_ops = &mlx5e_ethtool_ops;
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue