Netdev List
 help / color / mirror / Atom feed
* [net PATCH 00/13] fbnic: Fix BMC filter, FW crash restore, teardown and Tx flush bugs
@ 2026-10-28 21:35 Alexander Duyck
  2026-10-28 21:36 ` [net PATCH 01/13] fbnic: Reject a short MAC address attribute from firmware Alexander Duyck
                   ` (13 more replies)
  0 siblings, 14 replies; 16+ messages in thread
From: Alexander Duyck @ 2026-10-28 21:35 UTC (permalink / raw)
  To: netdev; +Cc: andrew+netdev, davem, edumazet, horms, kernel-team, kuba, pabeni

Review of the "Rework the BMC state pulled from the capabilities
message" and "Remove BMC routing rules when the BMC channel is disabled"
pair, d261a371e3b7 and db99b6fae21c, turned up a number of bugs in the
surrounding code that the pair did not introduce. This series fixes
them, along with the order of the ndo_stop path, the mailbox teardown
and the Tx force-flush.

Patch 1 rejects a MAC address attribute shorter than ETH_ALEN from
firmware, which was read past the end of the attribute.

Patches 2-3 and 7 fix MACDA allocation: a missing break in the
fbnic_sift_macda function, the all-multi wildcard entry being handed out
to the unicast and multicast lists, and the multicast sync ignoring
entries waiting for deletion.

Patch 4 retries a failed MACDA sync to firmware instead of dropping it.

Patches 5-6 close the races between the service task and ndo_stop and
the rx mode work: a service task pass that runs after ndo_stop no longer
restores host filters for a FW crash or a BMC update, and the crash
restore takes the instance lock.

Patch 8 rebuilds the BMC rules from scratch on every reinit so a changed
BMC MAC set, or a BMC that left while the interface was down, does not
leave stale rules behind.

Patch 9 drops the write-only active_slot field from the FW capabilities.

Patch 10 puts the BMC MAC address array under a seqcount so the service
task does not program a torn set while the mailbox replaces it.

Patch 11 suspends phylink after the datapath is taken down in ndo_stop
rather than before, so the Tx path drains with the link still up and the
stop path mirrors the open path.

Patch 12 waits for the outbound read and write flush armed on mailbox
teardown to complete before returning.

Patch 13 disables PTP completions along with the packet drop during the
Tx force-flush, so a dropped timestamped frame does not leave its
completion to be reported to the host without a matching packet.

---

Alexander Duyck (13):
      fbnic: Reject a short MAC address attribute from firmware
      fbnic: Stop sifting into a BMC slot once it has been filled
      fbnic: Keep the all-multi MACDA entry out of the address lists
      fbnic: Retry the MACDA sync to firmware if it fails
      fbnic: Don't touch host filters from a service task pass after ndo_stop
      fbnic: Take the instance lock to restore filters after a FW crash
      fbnic: Let the multicast sync reuse an entry waiting for deletion
      fbnic: Rebuild the BMC rules from scratch on every reinit
      fbnic: Drop the unused active_slot field from the FW capabilities
      fbnic: Keep the BMC MAC address set whole across a capabilities update
      fbnic: Suspend phylink after taking the datapath down in ndo_stop
      fbnic: Wait for the outbound flush to complete on mailbox teardown
      fbnic: Disable PTP completions during the Tx force-flush


 drivers/net/ethernet/meta/fbnic/fbnic_csr.h   |   5 +
 drivers/net/ethernet/meta/fbnic/fbnic_fw.c    |  53 +++--
 drivers/net/ethernet/meta/fbnic/fbnic_fw.h    |   4 +-
 .../net/ethernet/meta/fbnic/fbnic_netdev.c    |   6 +-
 drivers/net/ethernet/meta/fbnic/fbnic_pci.c   |  20 +-
 drivers/net/ethernet/meta/fbnic/fbnic_rpc.c   | 218 +++++++++++-------
 drivers/net/ethernet/meta/fbnic/fbnic_rpc.h   |   6 +-
 drivers/net/ethernet/meta/fbnic/fbnic_tlv.c   |  21 +-
 drivers/net/ethernet/meta/fbnic/fbnic_tlv.h   |   2 +-
 drivers/net/ethernet/meta/fbnic/fbnic_txrx.c  |  10 +-
 10 files changed, 225 insertions(+), 120 deletions(-)

--


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2026-10-29 15:33 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-28 21:35 [net PATCH 00/13] fbnic: Fix BMC filter, FW crash restore, teardown and Tx flush bugs Alexander Duyck
2026-10-28 21:36 ` [net PATCH 01/13] fbnic: Reject a short MAC address attribute from firmware Alexander Duyck
2026-10-28 21:36 ` [net PATCH 02/13] fbnic: Stop sifting into a BMC slot once it has been filled Alexander Duyck
2026-10-28 21:36 ` [net PATCH 03/13] fbnic: Keep the all-multi MACDA entry out of the address lists Alexander Duyck
2026-10-28 21:36 ` [net PATCH 04/13] fbnic: Retry the MACDA sync to firmware if it fails Alexander Duyck
2026-10-28 21:36 ` [net PATCH 05/13] fbnic: Don't touch host filters from a service task pass after ndo_stop Alexander Duyck
2026-10-28 21:36 ` [net PATCH 06/13] fbnic: Take the instance lock to restore filters after a FW crash Alexander Duyck
2026-10-28 21:36 ` [net PATCH 07/13] fbnic: Let the multicast sync reuse an entry waiting for deletion Alexander Duyck
2026-10-28 21:36 ` [net PATCH 08/13] fbnic: Rebuild the BMC rules from scratch on every reinit Alexander Duyck
2026-10-28 21:37 ` [net PATCH 09/13] fbnic: Drop the unused active_slot field from the FW capabilities Alexander Duyck
2026-10-28 21:37 ` [net PATCH 10/13] fbnic: Keep the BMC MAC address set whole across a capabilities update Alexander Duyck
2026-10-28 21:37 ` [net PATCH 11/13] fbnic: Suspend phylink after taking the datapath down in ndo_stop Alexander Duyck
2026-10-28 21:37 ` [net PATCH 12/13] fbnic: Wait for the outbound flush to complete on mailbox teardown Alexander Duyck
2026-10-28 21:37 ` [net PATCH 13/13] fbnic: Disable PTP completions during the Tx force-flush Alexander Duyck
2026-10-28 21:42 ` [net PATCH 00/13] fbnic: Fix BMC filter, FW crash restore, teardown and Tx flush bugs netdev-bot+sinfo
2026-10-29 15:33   ` Alexander Duyck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox