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

Commit c418253f authored by Or Gerlitz's avatar Or Gerlitz Committed by David S. Miller
Browse files

net/mlx4_core: Keep VF assigned MAC in the PF admin table



MAC addresses assigned by the PF to VFs were not kept in the PF driver
admin table. As a result, displaying the VF MACs from the PF interface
to user space showed zero address where in fact the VF got non-zero
address from the PF, fix that.

Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ef96f7d4
Loading
Loading
Loading
Loading
+7 −3
Original line number Original line Diff line number Diff line
@@ -840,12 +840,16 @@ int mlx4_QUERY_PORT_wrapper(struct mlx4_dev *dev, int slave,
			   MLX4_CMD_NATIVE);
			   MLX4_CMD_NATIVE);


	if (!err && dev->caps.function != slave) {
	if (!err && dev->caps.function != slave) {
		/* set slave default_mac address */
		MLX4_GET(def_mac, outbox->buf, QUERY_PORT_MAC_OFFSET);
		def_mac += slave << 8;
		/* if config MAC in DB use it */
		/* if config MAC in DB use it */
		if (priv->mfunc.master.vf_oper[slave].vport[vhcr->in_modifier].state.mac)
		if (priv->mfunc.master.vf_oper[slave].vport[vhcr->in_modifier].state.mac)
			def_mac = priv->mfunc.master.vf_oper[slave].vport[vhcr->in_modifier].state.mac;
			def_mac = priv->mfunc.master.vf_oper[slave].vport[vhcr->in_modifier].state.mac;
		else {
			/* set slave default_mac address */
			MLX4_GET(def_mac, outbox->buf, QUERY_PORT_MAC_OFFSET);
			def_mac += slave << 8;
			priv->mfunc.master.vf_admin[slave].vport[vhcr->in_modifier].mac = def_mac;
		}

		MLX4_PUT(outbox->buf, def_mac, QUERY_PORT_MAC_OFFSET);
		MLX4_PUT(outbox->buf, def_mac, QUERY_PORT_MAC_OFFSET);


		/* get port type - currently only eth is enabled */
		/* get port type - currently only eth is enabled */