Patchwork [net-next,2/2] mlx4_core: limiting VF port options

login
register
mail settings
Submitter Yevgeny Petrilin
Date Dec. 29, 2011, 5:42 p.m.
Message ID <4EFCA68F.9060904@mellanox.co.il>
Download mbox | patch
Permalink /patch/133588/
State Accepted
Delegated to: David Miller
Headers show

Comments

Yevgeny Petrilin - Dec. 29, 2011, 5:42 p.m.
At the moment VFs can only operate in Eth mode.
In addition we don't want the VF to attempt link sensing,
so we block this option as well.

Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
---
 drivers/net/ethernet/mellanox/mlx4/fw.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)
David Miller - Dec. 29, 2011, 8:09 p.m.
From: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Date: Thu, 29 Dec 2011 19:42:39 +0200

> 
> At the moment VFs can only operate in Eth mode.
> In addition we don't want the VF to attempt link sensing,
> so we block this option as well.
> 
> Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>

Applied, but:

> +#define MLX4_VF_PORT_ETH_ONLY_MASK	0xE6

Why don't you just clearly define what all the port type bits mean
instead of only defining some arbitrary combination of them?

What if people want to experiment with other bit mask settings?  They
can't do that if you don't document the layout fully and properly.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.c b/drivers/net/ethernet/mellanox/mlx4/fw.c
index e0639eb..8bcc66f 100644
--- a/drivers/net/ethernet/mellanox/mlx4/fw.c
+++ b/drivers/net/ethernet/mellanox/mlx4/fw.c
@@ -657,6 +657,8 @@  int mlx4_QUERY_PORT_wrapper(struct mlx4_dev *dev, int slave,
 	u8 port_type;
 	int err;
 
+#define MLX4_VF_PORT_ETH_ONLY_MASK	0xE6
+
 	err = mlx4_cmd_box(dev, 0, outbox->dma, vhcr->in_modifier, 0,
 			   MLX4_CMD_QUERY_PORT, MLX4_CMD_TIME_CLASS_B,
 			   MLX4_CMD_NATIVE);
@@ -671,8 +673,8 @@  int mlx4_QUERY_PORT_wrapper(struct mlx4_dev *dev, int slave,
 		MLX4_GET(port_type, outbox->buf,
 			 QUERY_PORT_SUPPORTED_TYPE_OFFSET);
 
-		/* disable ib */
-		port_type &= 0xFE;
+		/* Allow only Eth port, no link sensing allowed */
+		port_type &= MLX4_VF_PORT_ETH_ONLY_MASK;
 
 		/* check eth is enabled for this port */
 		if (!(port_type & 2))