aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Bowling <kbowling@FreeBSD.org>2026-08-01 12:41:22 +0000
committerKevin Bowling <kbowling@FreeBSD.org>2026-08-03 12:44:47 +0000
commit0787b1f5b8bdfcaed97eeee7bfbd7f14ac162b0d (patch)
treefe296052e3bdc5197e49b98dd55994cb29be0787
parent8f779f159e2198c85b4fcb8685989879a9330104 (diff)
ixgbe: supply PF transmit contexts under SR-IOV
X550-family malicious-driver detection validates the transmit context selected by a data descriptor with Check Context set. ixgbe sets that bit on every transmit data descriptor, but ordinary PF packets without a VLAN or checksum offload do not create a context descriptor. The empty context then reports an invalid MAC-header length and blocks the PF queue as soon as MDD is enabled. Create the existing context descriptor for every PF packet while SR-IOV is active. This supplies the required MAC-header length and keeps MDD from mistaking normal PF traffic for a malicious-driver event. MFC after: 1 week
-rw-r--r--sys/dev/ixgbe/ix_txrx.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/ixgbe/ix_txrx.c b/sys/dev/ixgbe/ix_txrx.c
index 76c718e2c252..3dda3270a2de 100644
--- a/sys/dev/ixgbe/ix_txrx.c
+++ b/sys/dev/ixgbe/ix_txrx.c
@@ -197,6 +197,7 @@ ixgbe_isc_txd_encap(void *arg, if_pkt_info_t pi)
TXD = (struct ixgbe_adv_tx_context_desc *) &txr->tx_base[first];
if ((pi->ipi_csum_flags & CSUM_OFFLOAD) ||
(sc->feat_en & IXGBE_FEATURE_NEEDS_CTXD) ||
+ (sc->feat_en & IXGBE_FEATURE_SRIOV) ||
pi->ipi_vtag) {
/*********************************************
* Set up the appropriate offload context