Skip to content

Commit 9e50727

Browse files
committed
Merge tag 'mlx5-updates-2018-10-03' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux
Saeed Mahameed says: ==================== mlx5-updates-2018-10-03 mlx5 core driver and ethernet netdev updates, please note there is a small devlink releated update to allow extack argument to eswitch operations. From Eli Britstein, 1) devlink: Add extack argument to the eswitch related operations 2) net/mlx5e: E-Switch, return extack messages for failures in the e-switch devlink callbacks 3) net/mlx5e: Add extack messages for TC offload failures From Eran Ben Elisha, 4) mlx5e: Add counter for aRFS rule insertion failures From Feras Daoud 5) Fast teardown support for mlx5 device This change introduces the enhanced version of the "Force teardown" that allows SW to perform teardown in a faster way without the need to reclaim all the FW pages. Fast teardown provides the following advantages: 1- Fix a FW race condition that could cause command timeout 2- Avoid moving to polling mode 3- Close the vport to prevent PCI ACK to be sent without been scatter to memory ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents f0e834e + fcd29ad commit 9e50727

File tree

18 files changed

+292
-97
lines changed

18 files changed

+292
-97
lines changed

drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -521,7 +521,8 @@ int bnxt_dl_eswitch_mode_get(struct devlink *devlink, u16 *mode)
521521
return 0;
522522
}
523523

524-
int bnxt_dl_eswitch_mode_set(struct devlink *devlink, u16 mode)
524+
int bnxt_dl_eswitch_mode_set(struct devlink *devlink, u16 mode,
525+
struct netlink_ext_ack *extack)
525526
{
526527
struct bnxt *bp = bnxt_get_bp_from_dl(devlink);
527528
int rc = 0;

drivers/net/ethernet/broadcom/bnxt/bnxt_vfr.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ static inline u16 bnxt_vf_rep_get_fid(struct net_device *dev)
3030

3131
bool bnxt_dev_is_vf_rep(struct net_device *dev);
3232
int bnxt_dl_eswitch_mode_get(struct devlink *devlink, u16 *mode);
33-
int bnxt_dl_eswitch_mode_set(struct devlink *devlink, u16 mode);
33+
int bnxt_dl_eswitch_mode_set(struct devlink *devlink, u16 mode,
34+
struct netlink_ext_ack *extack);
3435

3536
#else
3637

drivers/net/ethernet/cavium/liquidio/lio_main.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3144,7 +3144,8 @@ liquidio_eswitch_mode_get(struct devlink *devlink, u16 *mode)
31443144
}
31453145

31463146
static int
3147-
liquidio_eswitch_mode_set(struct devlink *devlink, u16 mode)
3147+
liquidio_eswitch_mode_set(struct devlink *devlink, u16 mode,
3148+
struct netlink_ext_ack *extack)
31483149
{
31493150
struct lio_devlink_priv *priv;
31503151
struct octeon_device *oct;

drivers/net/ethernet/mellanox/mlx5/core/en_arfs.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -543,8 +543,11 @@ static struct mlx5_flow_handle *arfs_add_rule(struct mlx5e_priv *priv,
543543
rule = mlx5_add_flow_rules(ft, spec, &flow_act, &dest, 1);
544544
if (IS_ERR(rule)) {
545545
err = PTR_ERR(rule);
546-
netdev_err(priv->netdev, "%s: add rule(filter id=%d, rq idx=%d) failed, err=%d\n",
547-
__func__, arfs_rule->filter_id, arfs_rule->rxq, err);
546+
priv->channel_stats[arfs_rule->rxq].rq.arfs_err++;
547+
mlx5e_dbg(HW, priv,
548+
"%s: add rule(filter id=%d, rq idx=%d, ip proto=0x%x) failed,err=%d\n",
549+
__func__, arfs_rule->filter_id, arfs_rule->rxq,
550+
tuple->ip_proto, err);
548551
}
549552

550553
out:

drivers/net/ethernet/mellanox/mlx5/core/en_stats.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ static const struct counter_desc sw_stats_desc[] = {
9393
{ MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, rx_cache_busy) },
9494
{ MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, rx_cache_waive) },
9595
{ MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, rx_congst_umr) },
96+
{ MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, rx_arfs_err) },
9697
{ MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, ch_events) },
9798
{ MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, ch_poll) },
9899
{ MLX5E_DECLARE_STAT(struct mlx5e_sw_stats, ch_arm) },
@@ -170,6 +171,7 @@ void mlx5e_grp_sw_update_stats(struct mlx5e_priv *priv)
170171
s->rx_cache_busy += rq_stats->cache_busy;
171172
s->rx_cache_waive += rq_stats->cache_waive;
172173
s->rx_congst_umr += rq_stats->congst_umr;
174+
s->rx_arfs_err += rq_stats->arfs_err;
173175
s->ch_events += ch_stats->events;
174176
s->ch_poll += ch_stats->poll;
175177
s->ch_arm += ch_stats->arm;
@@ -1161,6 +1163,7 @@ static const struct counter_desc rq_stats_desc[] = {
11611163
{ MLX5E_DECLARE_RX_STAT(struct mlx5e_rq_stats, cache_busy) },
11621164
{ MLX5E_DECLARE_RX_STAT(struct mlx5e_rq_stats, cache_waive) },
11631165
{ MLX5E_DECLARE_RX_STAT(struct mlx5e_rq_stats, congst_umr) },
1166+
{ MLX5E_DECLARE_RX_STAT(struct mlx5e_rq_stats, arfs_err) },
11641167
};
11651168

11661169
static const struct counter_desc sq_stats_desc[] = {

drivers/net/ethernet/mellanox/mlx5/core/en_stats.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ struct mlx5e_sw_stats {
106106
u64 rx_cache_busy;
107107
u64 rx_cache_waive;
108108
u64 rx_congst_umr;
109+
u64 rx_arfs_err;
109110
u64 ch_events;
110111
u64 ch_poll;
111112
u64 ch_arm;
@@ -202,6 +203,7 @@ struct mlx5e_rq_stats {
202203
u64 cache_busy;
203204
u64 cache_waive;
204205
u64 congst_umr;
206+
u64 arfs_err;
205207
};
206208

207209
struct mlx5e_sq_stats {

0 commit comments

Comments
 (0)