diff mbox

mlx4/IB: Add set_4k_mtu module parameter.

Message ID 20100112120901.GA7161@vlad-laptop (mailing list archive)
State New, archived
Headers show

Commit Message

Vladimir Sokolovsky Jan. 12, 2010, 12:09 p.m. UTC
None
diff mbox

Patch

diff --git a/drivers/net/mlx4/port.c b/drivers/net/mlx4/port.c
index 606aa58..0e9d745 100644
--- a/drivers/net/mlx4/port.c
+++ b/drivers/net/mlx4/port.c
@@ -37,6 +37,10 @@ 
 
 #include "mlx4.h"
 
+static int mlx4_ib_set_4k_mtu;
+module_param_named(set_4k_mtu, mlx4_ib_set_4k_mtu, int, 0444);
+MODULE_PARM_DESC(set_4k_mtu, "attempt to set 4K MTU to all ConnectX ports");
+
 #define MLX4_MAC_VALID		(1ull << 63)
 #define MLX4_MAC_MASK		0xffffffffffffULL
 
@@ -308,6 +312,12 @@  int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port)
 
 	memset(mailbox->buf, 0, 256);
 
+	if (mlx4_ib_set_4k_mtu)
+		((__be32 *) mailbox->buf)[0] |= cpu_to_be32((1 << 22) |
+							    (1 << 21) |
+							    (5 << 12) |
+							    (2 << 4));
+
 	((__be32 *) mailbox->buf)[1] = dev->caps.ib_port_def_cap[port];
 	err = mlx4_cmd(dev, mailbox->dma, port, 0, MLX4_CMD_SET_PORT,
 		       MLX4_CMD_TIME_CLASS_B);