On 3/23/2026 3:15 AM, Petr Oros wrote:
> The reproducer requires legacy Rx descriptors. On modern ice + iavf
> with full PTP support, flex descriptors are always negotiated and the
> buggy legacy path is never reached. Flex descriptors require all of:
> - CONFIG_PTP_1588_CLOCK enabled
> - VIRTCHNL_VF_OFFLOAD_RX_FLEX_DESC granted by PF
> - PTP capabilities negotiated (VIRTCHNL_VF_CAP_PTP)
> - VIRTCHNL_1588_PTP_CAP_RX_TSTAMP supported
> - VIRTCHNL_RXDID_2_FLEX_SQ_NIC present in DDP profile
>
> If any condition is not met, iavf_select_rx_desc_format() falls back
> to legacy descriptors (RXDID=1) and the wrong L2TAG2 mask is hit.
>
> Fixes: 2dc8e7c36d80 ("iavf: refactor iavf_clean_rx_irq to support legacy and
> flex descriptors")
Sure enough, this commit changed the legacy version to:
+/* Stripped S-TAG VLAN from the receive packet */
+#define IAVF_RXD_LEGACY_L2TAG2_M GENMASK_ULL(63, 32)
I guess since we basically always negotiated flexible descriptors after
this that we never caught it.
Thanks for the fix.
Reviewed-by: Jacob Keller <[email protected]>
Regards,
Jake