Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7b4c534e authored by David S. Miller's avatar David S. Miller
Browse files

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: default avatarDavid S. Miller <davem@davemloft.net>
parents 266b495f b0eed40e
Loading
Loading
Loading
Loading
+28 −16
Original line number Diff line number Diff line
@@ -2024,7 +2024,7 @@ 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,
@@ -2038,6 +2038,25 @@ static struct net_device_ops mlx5e_netdev_ops = {
	.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)
{
	if (MLX5_CAP_GEN(mdev, port_type) != MLX5_CAP_PORT_TYPE_ETH)
@@ -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)) {
		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;
	}
	if (MLX5_CAP_GEN(mdev, vport_group_manager))
		netdev->netdev_ops = &mlx5e_netdev_ops_sriov;
	else
		netdev->netdev_ops = &mlx5e_netdev_ops_basic;

	netdev->netdev_ops        = &mlx5e_netdev_ops;
	netdev->watchdog_timeo    = 15 * HZ;

	netdev->ethtool_ops	  = &mlx5e_ethtool_ops;
+1484 −1484

File changed.

Preview size limit exceeded, changes collapsed.