(MCDI_OUT_DWORD((_req), GET_CAPABILITIES_V2_OUT_FLAGS2) & \
(1u << (MC_CMD_GET_CAPABILITIES_V2_OUT_ ## _flag ## _LBN))))
- /*
- * Huntington RXDP firmware inserts a 0 or 14 byte prefix.
- * We only support the 14 byte prefix here.
- */
- if (CAP_FLAGS1(req, RX_PREFIX_LEN_14) == 0) {
- rc = ENOTSUP;
- goto fail4;
- }
- encp->enc_rx_prefix_size = 14;
+ /* Check if RXDP firmware inserts 14 byte prefix */
+ if (CAP_FLAGS1(req, RX_PREFIX_LEN_14))
+ encp->enc_rx_prefix_size = 14;
+ else
+ encp->enc_rx_prefix_size = 0;
#if EFSYS_OPT_RX_SCALE
/* Check if the firmware supports additional RSS modes */
default:
rc = EINVAL;
- goto fail5;
+ goto fail4;
}
/* Port numbers cannot contribute to the hash value */
return (0);
#if EFSYS_OPT_RX_SCALE
-fail5:
- EFSYS_PROBE(fail5);
-#endif /* EFSYS_OPT_RX_SCALE */
fail4:
EFSYS_PROBE(fail4);
+#endif /* EFSYS_OPT_RX_SCALE */
fail3:
EFSYS_PROBE(fail3);
fail2:
if ((rc = ef10_get_datapath_caps(enp)) != 0)
goto fail8;
+ /*
+ * Huntington RXDP firmware inserts a 0 or 14 byte prefix.
+ * We only support the 14 byte prefix here.
+ */
+ if (encp->enc_rx_prefix_size != 14) {
+ rc = ENOTSUP;
+ goto fail9;
+ }
+
/* Alignment for WPTR updates */
encp->enc_rx_push_align = EF10_RX_WPTR_ALIGN;
/* Get interrupt vector limits */
if ((rc = efx_mcdi_get_vector_cfg(enp, &base, &nvec, NULL)) != 0) {
if (EFX_PCI_FUNCTION_IS_PF(encp))
- goto fail9;
+ goto fail10;
/* Ignore error (cannot query vector limits from a VF). */
base = 0;
* can result in time-of-check/time-of-use bugs.
*/
if ((rc = ef10_get_privilege_mask(enp, &mask)) != 0)
- goto fail10;
+ goto fail11;
encp->enc_privilege_mask = mask;
if ((rc = ef10_set_workaround_bug26807(enp)) != 0)