From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 741B4A04E1; Tue, 22 Sep 2020 10:55:56 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 06A721DB65; Tue, 22 Sep 2020 10:51:07 +0200 (CEST) Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [67.231.154.164]) by dpdk.org (Postfix) with ESMTP id 0C9841D724 for ; Tue, 22 Sep 2020 10:50:21 +0200 (CEST) Received: from mx1-us1.ppe-hosted.com (unknown [10.110.50.150]) by dispatch1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTP id A759E2006D for ; Tue, 22 Sep 2020 08:50:20 +0000 (UTC) Received: from us4-mdac16-47.at1.mdlocal (unknown [10.110.50.130]) by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTP id A6F2B800A3 for ; Tue, 22 Sep 2020 08:50:20 +0000 (UTC) X-Virus-Scanned: Proofpoint Essentials engine Received: from mx1-us1.ppe-hosted.com (unknown [10.110.50.7]) by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id 4A608100070 for ; Tue, 22 Sep 2020 08:50:20 +0000 (UTC) Received: from webmail.solarflare.com (uk.solarflare.com [193.34.186.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id 14D4C4C005C for ; Tue, 22 Sep 2020 08:50:20 +0000 (UTC) Received: from ukex01.SolarFlarecom.com (10.17.10.4) by ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 22 Sep 2020 09:50:10 +0100 Received: from opal.uk.solarflarecom.com (10.17.10.1) by ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Tue, 22 Sep 2020 09:50:10 +0100 Received: from ukv-loginhost.uk.solarflarecom.com (ukv-loginhost.uk.solarflarecom.com [10.17.10.39]) by opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id 08M8oAxi004720 for ; Tue, 22 Sep 2020 09:50:10 +0100 Received: from ukv-loginhost.uk.solarflarecom.com (localhost [127.0.0.1]) by ukv-loginhost.uk.solarflarecom.com (Postfix) with ESMTP id ABAD41613A9 for ; Tue, 22 Sep 2020 09:50:10 +0100 (BST) From: Andrew Rybchenko To: Date: Tue, 22 Sep 2020 09:49:25 +0100 Message-ID: <1600764594-14752-32-git-send-email-arybchenko@solarflare.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1600764594-14752-1-git-send-email-arybchenko@solarflare.com> References: <1600764594-14752-1-git-send-email-arybchenko@solarflare.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.6.1012-25674.003 X-TM-AS-Result: No-2.231200-8.000000-10 X-TMASE-MatchedRID: TuwRzrPxPxaBQUeOBghpX2pvRxhlGy+njs/yyyVHGh4n7t9EiNpFYdiO xhBTfwbD2XHJ0L4jOIQs/31GzKkTsbf0EuHoGRzunFVnNmvv47tLXPA26IG0hN9RlPzeVuQQrIV tWePlRJEeJ0wmJxvV41SCmfT2v3te3qZ3A4FG8d0Pe5gzF3TVt/ngX/aL8PCN75lKyW2tHKQcdi Rl7mICUb7aCg+WDekTzSnARADUO4E5hou9z/6pqcebIMlISwjbZ/rAPfrtWC1IyDY579vwTPZYo 7afros8qgyzmJ7g5Yn7oAlJCBIVEm+sGcdbpdKcB8Lglj0iCAA62UeHb6mkT5soi2XrUn/Jn6Kd MrRsL14qtq5d3cxkNRG3Wvo6dLnKAp0+1fBJa7XOAWkguhdMXgaqEj2XS4S7IC1BmkfEf03Zfuc dhXi/szJz+ZpGve4c+9DWaBRT9txZTi9y8F542STAx8myLbWyI6KkAL2A5kcMtYrw9BuTwqSmSP RgKSZM0Hy8mOlvvF7vdCUIFuasqw== X-TM-AS-User-Approved-Sender: Yes X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10-2.231200-8.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.6.1012-25674.003 X-MDID: 1600764620-8U2dWk2sTXPA Subject: [dpdk-dev] [PATCH 31/60] common/sfc_efx/base: move Rx index check to generic code X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Make NIC family specific functions a bit shorter and reduce code duplication. Signed-off-by: Andrew Rybchenko Reviewed-by: Andy Moreton --- drivers/common/sfc_efx/base/ef10_rx.c | 45 +++++++++++---------------- drivers/common/sfc_efx/base/efx_rx.c | 31 +++++++++--------- 2 files changed, 35 insertions(+), 41 deletions(-) diff --git a/drivers/common/sfc_efx/base/ef10_rx.c b/drivers/common/sfc_efx/base/ef10_rx.c index 58152be768..48666be5b5 100644 --- a/drivers/common/sfc_efx/base/ef10_rx.c +++ b/drivers/common/sfc_efx/base/ef10_rx.c @@ -845,16 +845,11 @@ ef10_rx_qcreate( EFX_STATIC_ASSERT(EFX_EV_RX_NLABELS == (1 << ESF_DZ_RX_QLABEL_WIDTH)); EFSYS_ASSERT3U(label, <, EFX_EV_RX_NLABELS); - if (index >= encp->enc_rxq_limit) { - rc = EINVAL; - goto fail1; - } - switch (type) { case EFX_RXQ_TYPE_DEFAULT: if (type_data == NULL) { rc = EINVAL; - goto fail2; + goto fail1; } erp->er_buf_size = type_data->ertd_default.ed_buf_size; ps_buf_size = 0; @@ -863,7 +858,7 @@ ef10_rx_qcreate( case EFX_RXQ_TYPE_PACKED_STREAM: if (type_data == NULL) { rc = EINVAL; - goto fail3; + goto fail2; } switch (type_data->ertd_packed_stream.eps_buf_size) { case EFX_RXQ_PACKED_STREAM_BUF_SIZE_1M: @@ -883,7 +878,7 @@ ef10_rx_qcreate( break; default: rc = ENOTSUP; - goto fail4; + goto fail3; } erp->er_buf_size = type_data->ertd_packed_stream.eps_buf_size; break; @@ -892,7 +887,7 @@ ef10_rx_qcreate( case EFX_RXQ_TYPE_ES_SUPER_BUFFER: if (type_data == NULL) { rc = EINVAL; - goto fail5; + goto fail4; } ps_buf_size = 0; es_bufs_per_desc = @@ -907,7 +902,7 @@ ef10_rx_qcreate( #endif /* EFSYS_OPT_RX_ES_SUPER_BUFFER */ default: rc = ENOTSUP; - goto fail6; + goto fail5; } #if EFSYS_OPT_RX_PACKED_STREAM @@ -915,13 +910,13 @@ ef10_rx_qcreate( /* Check if datapath firmware supports packed stream mode */ if (encp->enc_rx_packed_stream_supported == B_FALSE) { rc = ENOTSUP; - goto fail7; + goto fail6; } /* Check if packed stream allows configurable buffer sizes */ if ((ps_buf_size != MC_CMD_INIT_RXQ_EXT_IN_PS_BUFF_1M) && (encp->enc_rx_var_packed_stream_supported == B_FALSE)) { rc = ENOTSUP; - goto fail8; + goto fail7; } } #else /* EFSYS_OPT_RX_PACKED_STREAM */ @@ -932,17 +927,17 @@ ef10_rx_qcreate( if (es_bufs_per_desc > 0) { if (encp->enc_rx_es_super_buffer_supported == B_FALSE) { rc = ENOTSUP; - goto fail9; + goto fail8; } if (!EFX_IS_P2ALIGNED(uint32_t, es_max_dma_len, EFX_RX_ES_SUPER_BUFFER_BUF_ALIGNMENT)) { rc = EINVAL; - goto fail10; + goto fail9; } if (!EFX_IS_P2ALIGNED(uint32_t, es_buf_stride, EFX_RX_ES_SUPER_BUFFER_BUF_ALIGNMENT)) { rc = EINVAL; - goto fail11; + goto fail10; } } #else /* EFSYS_OPT_RX_ES_SUPER_BUFFER */ @@ -964,7 +959,7 @@ ef10_rx_qcreate( esmp, disable_scatter, want_inner_classes, erp->er_buf_size, ps_buf_size, es_bufs_per_desc, es_max_dma_len, es_buf_stride, hol_block_timeout)) != 0) - goto fail12; + goto fail11; erp->er_eep = eep; erp->er_label = label; @@ -975,36 +970,34 @@ ef10_rx_qcreate( return (0); -fail12: - EFSYS_PROBE(fail12); -#if EFSYS_OPT_RX_ES_SUPER_BUFFER fail11: EFSYS_PROBE(fail11); +#if EFSYS_OPT_RX_ES_SUPER_BUFFER fail10: EFSYS_PROBE(fail10); fail9: EFSYS_PROBE(fail9); -#endif /* EFSYS_OPT_RX_ES_SUPER_BUFFER */ -#if EFSYS_OPT_RX_PACKED_STREAM fail8: EFSYS_PROBE(fail8); +#endif /* EFSYS_OPT_RX_ES_SUPER_BUFFER */ +#if EFSYS_OPT_RX_PACKED_STREAM fail7: EFSYS_PROBE(fail7); -#endif /* EFSYS_OPT_RX_PACKED_STREAM */ fail6: EFSYS_PROBE(fail6); -#if EFSYS_OPT_RX_ES_SUPER_BUFFER +#endif /* EFSYS_OPT_RX_PACKED_STREAM */ fail5: EFSYS_PROBE(fail5); -#endif /* EFSYS_OPT_RX_ES_SUPER_BUFFER */ -#if EFSYS_OPT_RX_PACKED_STREAM +#if EFSYS_OPT_RX_ES_SUPER_BUFFER fail4: EFSYS_PROBE(fail4); +#endif /* EFSYS_OPT_RX_ES_SUPER_BUFFER */ +#if EFSYS_OPT_RX_PACKED_STREAM fail3: EFSYS_PROBE(fail3); -#endif /* EFSYS_OPT_RX_PACKED_STREAM */ fail2: EFSYS_PROBE(fail2); +#endif /* EFSYS_OPT_RX_PACKED_STREAM */ fail1: EFSYS_PROBE1(fail1, efx_rc_t, rc); diff --git a/drivers/common/sfc_efx/base/efx_rx.c b/drivers/common/sfc_efx/base/efx_rx.c index d208c2292e..bacab5ec67 100644 --- a/drivers/common/sfc_efx/base/efx_rx.c +++ b/drivers/common/sfc_efx/base/efx_rx.c @@ -824,11 +824,16 @@ efx_rx_qcreate_internal( EFSYS_ASSERT(ISP2(encp->enc_rxq_max_ndescs)); EFSYS_ASSERT(ISP2(encp->enc_rxq_min_ndescs)); + if (index >= encp->enc_rxq_limit) { + rc = EINVAL; + goto fail1; + } + if (!ISP2(ndescs) || ndescs < encp->enc_rxq_min_ndescs || ndescs > encp->enc_rxq_max_ndescs) { rc = EINVAL; - goto fail1; + goto fail2; } /* Allocate an RXQ object */ @@ -836,7 +841,7 @@ efx_rx_qcreate_internal( if (erp == NULL) { rc = ENOMEM; - goto fail2; + goto fail3; } erp->er_magic = EFX_RXQ_MAGIC; @@ -847,17 +852,19 @@ efx_rx_qcreate_internal( if ((rc = erxop->erxo_qcreate(enp, index, label, type, type_data, esmp, ndescs, id, flags, eep, erp)) != 0) - goto fail3; + goto fail4; enp->en_rx_qcount++; *erpp = erp; return (0); -fail3: - EFSYS_PROBE(fail3); +fail4: + EFSYS_PROBE(fail4); EFSYS_KMEM_FREE(enp->en_esip, sizeof (efx_rxq_t), erp); +fail3: + EFSYS_PROBE(fail3); fail2: EFSYS_PROBE(fail2); fail1: @@ -1635,10 +1642,6 @@ siena_rx_qcreate( (1 << FRF_AZ_RX_DESCQ_LABEL_WIDTH)); EFSYS_ASSERT3U(label, <, EFX_EV_RX_NLABELS); - if (index >= encp->enc_rxq_limit) { - rc = EINVAL; - goto fail1; - } for (size = 0; (1U << size) <= encp->enc_rxq_max_ndescs / encp->enc_rxq_min_ndescs; size++) @@ -1646,7 +1649,7 @@ siena_rx_qcreate( break; if (id + (1 << size) >= encp->enc_buftbl_limit) { rc = EINVAL; - goto fail2; + goto fail1; } switch (type) { @@ -1656,7 +1659,7 @@ siena_rx_qcreate( default: rc = EINVAL; - goto fail3; + goto fail2; } if (flags & EFX_RXQ_FLAG_SCATTER) { @@ -1664,7 +1667,7 @@ siena_rx_qcreate( jumbo = B_TRUE; #else rc = EINVAL; - goto fail4; + goto fail3; #endif /* EFSYS_OPT_RX_SCATTER */ } @@ -1684,11 +1687,9 @@ siena_rx_qcreate( return (0); #if !EFSYS_OPT_RX_SCATTER -fail4: - EFSYS_PROBE(fail4); -#endif fail3: EFSYS_PROBE(fail3); +#endif fail2: EFSYS_PROBE(fail2); fail1: -- 2.17.1