[PATCH net 0/4] net/mlx5e: Fix crashes in dynamic per-channel stats and HV VHCA agent

Tariq Toukan posted 4 patches 3 days, 17 hours ago
drivers/net/ethernet/mellanox/mlx5/core/en.h  | 12 ++++++
.../mellanox/mlx5/core/en/hv_vhca_stats.c     | 38 +++++++++++++------
.../net/ethernet/mellanox/mlx5/core/en_main.c | 15 +++++---
.../ethernet/mellanox/mlx5/core/en_stats.c    |  9 +++--
.../ethernet/mellanox/mlx5/core/ipoib/ipoib.c |  3 +-
.../ethernet/mellanox/mlx5/core/lib/hv_vhca.c |  8 +++-
.../ethernet/mellanox/mlx5/core/lib/hv_vhca.h |  6 ++-
7 files changed, 64 insertions(+), 27 deletions(-)
[PATCH net 0/4] net/mlx5e: Fix crashes in dynamic per-channel stats and HV VHCA agent
Posted by Tariq Toukan 3 days, 17 hours ago
Hi,

Since per-channel stats were converted to be allocated and published
lazily at first channel open in commit fa691d0c9c08 ("net/mlx5e: Allocate
per-channel stats dynamically at first usage"), priv->channel_stats[]
and priv->stats_nch are filled in incrementally during interface
bring-up. This opened a window in which the various stats readers - most
of them reachable from userspace via netlink/netdev stats queries - can
race with mlx5e_open_channel() on another CPU and observe partially
initialized state. The HV VHCA stats agent, which is created before the
channels are opened, hits related problems of its own.

This series by Feng collects the resulting crashes and fixes them.

Regards,
Tariq

Feng Liu (4):
  net/mlx5e: Fix HV VHCA stats zero-sized buffer allocation
  net/mlx5e: Fix HV VHCA stats agent registration race
  net/mlx5e: Bounds-check stats_nch in mlx5e_get_queue_stats_rx()
  net/mlx5e: Fix publication race for priv->channel_stats[]

 drivers/net/ethernet/mellanox/mlx5/core/en.h  | 12 ++++++
 .../mellanox/mlx5/core/en/hv_vhca_stats.c     | 38 +++++++++++++------
 .../net/ethernet/mellanox/mlx5/core/en_main.c | 15 +++++---
 .../ethernet/mellanox/mlx5/core/en_stats.c    |  9 +++--
 .../ethernet/mellanox/mlx5/core/ipoib/ipoib.c |  3 +-
 .../ethernet/mellanox/mlx5/core/lib/hv_vhca.c |  8 +++-
 .../ethernet/mellanox/mlx5/core/lib/hv_vhca.h |  6 ++-
 7 files changed, 64 insertions(+), 27 deletions(-)


base-commit: c05fa14db43ebef3bd862ca9d073981c0358b3f0
-- 
2.44.0