diff --git a/drivers/common/sfc_efx/base/ef10_nic.c b/drivers/common/sfc_efx/base/ef10_nic.c index 81cd436424..df7db6a803 100644 --- a/drivers/common/sfc_efx/base/ef10_nic.c +++ b/drivers/common/sfc_efx/base/ef10_nic.c @@ -1156,6 +1156,9 @@ ef10_get_datapath_caps( else encp->enc_rx_disable_scatter_supported = B_FALSE; + /* No limit on maximum number of Rx scatter elements per packet. */ + encp->enc_rx_scatter_max = -1; + /* Check if the firmware supports packed stream mode */ if (CAP_FLAGS1(req, RX_PACKED_STREAM)) encp->enc_rx_packed_stream_supported = B_TRUE; diff --git a/drivers/common/sfc_efx/base/efx.h b/drivers/common/sfc_efx/base/efx.h index a245acfe0f..4b7beb209d 100644 --- a/drivers/common/sfc_efx/base/efx.h +++ b/drivers/common/sfc_efx/base/efx.h @@ -1555,6 +1555,8 @@ typedef struct efx_nic_cfg_s { /* Datapath firmware vport reconfigure support */ boolean_t enc_vport_reconfigure_supported; boolean_t enc_rx_disable_scatter_supported; + /* Maximum number of Rx scatter segments supported by HW */ + uint32_t enc_rx_scatter_max; boolean_t enc_allow_set_mac_with_installed_filters; boolean_t enc_enhanced_set_mac_supported; boolean_t enc_init_evq_v2_supported; diff --git a/drivers/common/sfc_efx/base/rhead_nic.c b/drivers/common/sfc_efx/base/rhead_nic.c index 66db68b384..92bc6fdfae 100644 --- a/drivers/common/sfc_efx/base/rhead_nic.c +++ b/drivers/common/sfc_efx/base/rhead_nic.c @@ -158,6 +158,9 @@ rhead_board_cfg( } encp->enc_rx_buf_align_end = end_padding; + /* FIXME: It should be extracted from design parameters (Bug 86844) */ + encp->enc_rx_scatter_max = 7; + /* * Riverhead stores a single global copy of VPD, not per-PF as on * Huntington. diff --git a/drivers/common/sfc_efx/base/siena_nic.c b/drivers/common/sfc_efx/base/siena_nic.c index 9c30e27f59..4137c1e245 100644 --- a/drivers/common/sfc_efx/base/siena_nic.c +++ b/drivers/common/sfc_efx/base/siena_nic.c @@ -177,6 +177,7 @@ siena_board_cfg( encp->enc_fw_assisted_tso_v2_enabled = B_FALSE; encp->enc_fw_assisted_tso_v2_n_contexts = 0; encp->enc_tso_v3_enabled = B_FALSE; + encp->enc_rx_scatter_max = -1; encp->enc_allow_set_mac_with_installed_filters = B_TRUE; encp->enc_rx_packed_stream_supported = B_FALSE; encp->enc_rx_var_packed_stream_supported = B_FALSE;