diff options
author | Achiad Shochat <achiad@mellanox.com> | 2015-08-04 14:05:43 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-08-06 22:00:58 -0700 |
commit | 5c50368f38317627421bf24a0b66b1af0d44eddc (patch) | |
tree | b066b3552df1f07b18cad92e89a0462eec60f5bb /drivers/net/ethernet/mellanox/mlx5/core/transobj.c | |
parent | d9eea403ca81f60cd535d354c77ada4c2bee8d66 (diff) | |
download | linux-stable-5c50368f38317627421bf24a0b66b1af0d44eddc.tar.gz linux-stable-5c50368f38317627421bf24a0b66b1af0d44eddc.tar.bz2 linux-stable-5c50368f38317627421bf24a0b66b1af0d44eddc.zip |
net/mlx5e: Light-weight netdev open/stop
Create/destroy TIRs, TISs and flow tables upon PCI probe/remove rather
than upon the netdev ndo_open/stop.
Upon ndo_stop(), redirect all RX traffic to the (lately introduced)
"Drop RQ" and then close only the RX/TX rings, leaving the TIRs,
TISs and flow tables alive.
Signed-off-by: Achiad Shochat <achiad@mellanox.com>
Signed-off-by: Amir Vadai <amirv@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/transobj.c')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/transobj.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/transobj.c b/drivers/net/ethernet/mellanox/mlx5/core/transobj.c index e6453f61141e..b4c87c7b0cf0 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/transobj.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/transobj.c @@ -387,6 +387,18 @@ int mlx5_core_create_rqt(struct mlx5_core_dev *dev, u32 *in, int inlen, return err; } +int mlx5_core_modify_rqt(struct mlx5_core_dev *dev, u32 rqtn, u32 *in, + int inlen) +{ + u32 out[MLX5_ST_SZ_DW(modify_rqt_out)]; + + MLX5_SET(modify_rqt_in, in, rqtn, rqtn); + MLX5_SET(modify_rqt_in, in, opcode, MLX5_CMD_OP_MODIFY_RQT); + + memset(out, 0, sizeof(out)); + return mlx5_cmd_exec_check_status(dev, in, inlen, out, sizeof(out)); +} + void mlx5_core_destroy_rqt(struct mlx5_core_dev *dev, u32 rqtn) { u32 in[MLX5_ST_SZ_DW(destroy_rqt_in)]; |