| From: |
| Stanislav Fomichev <sdf.kernel-AT-gmail.com> |
| To: |
| netdev-AT-vger.kernel.org |
| Subject: |
| [PATCH net-next 0/3] net: add retry mechanism to ndo_set_rx_mode_async |
| Date: |
| Tue, 26 May 2026 18:41:14 -0700 |
| Message-ID: |
| <20260527014117.1401809-1-sdf@fomichev.me> |
| Cc: |
| davem-AT-davemloft.net, edumazet-AT-google.com, kuba-AT-kernel.org, pabeni-AT-redhat.com, Zijing Yin <yzjaurora-AT-gmail.com> |
| Archive-link: |
| Article |
Original async ndo_set_rx_mode work left one place where we do netdev_WARN
in response to a ENOMEM. The intent was to see whether actual real
users can hit that (adding uc/mc under memory pressure seems like a
very unlikely thing to do). However, it was quickly triggered by
syzbot's failslab. Add a retry mechanism and downgrade netdev_WARN
to netdev_err. The retry logic is a typical exponential backoff:
1, 2, 4, 8 seconds, 15 in total, hopefully enough for a system to resolve
memory pressure.
Link: https://lore.kernel.org/netdev/20260416185712.2155425-1-s...
Link: https://lore.kernel.org/netdev/20260519095557.3749407-1-y...
Cc: Zijing Yin <yzjaurora@gmail.com>
Stanislav Fomichev (3):
net: change ndo_set_rx_mode_async return type to int
net: add retry mechanism to ndo_set_rx_mode_async
bnxt: convert to core rx_mode retry mechanism
drivers/infiniband/ulp/ipoib/ipoib_main.c | 9 +--
drivers/net/dummy.c | 7 ++-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 46 ++++++---------
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2 -
drivers/net/ethernet/intel/iavf/iavf_main.c | 10 +++-
.../net/ethernet/mellanox/mlx5/core/en_main.c | 8 ++-
.../net/ethernet/meta/fbnic/fbnic_netdev.c | 8 ++-
drivers/net/netdevsim/netdev.c | 7 ++-
drivers/net/netkit.c | 7 ++-
include/linux/netdevice.h | 16 ++++--
net/core/dev.c | 7 ++-
net/core/dev.h | 2 +
net/core/dev_addr_lists.c | 56 ++++++++++++++++++-
13 files changed, 124 insertions(+), 61 deletions(-)
--
2.53.0-Meta