From patchwork Fri Aug 27 06:57:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Rybchenko X-Patchwork-Id: 97439 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C31A7A0C43; Fri, 27 Aug 2021 08:59:59 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 771AC412B5; Fri, 27 Aug 2021 08:58:47 +0200 (CEST) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113]) by mails.dpdk.org (Postfix) with ESMTP id 4D7524129B for ; Fri, 27 Aug 2021 08:58:42 +0200 (CEST) Received: by shelob.oktetlabs.ru (Postfix, from userid 122) id 25EF57F6E0; Fri, 27 Aug 2021 09:58:42 +0300 (MSK) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on shelob.oktetlabs.ru X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_DISCARD, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from aros.oktetlabs.ru (aros.oktetlabs.ru [192.168.38.17]) by shelob.oktetlabs.ru (Postfix) with ESMTP id 54A4D7F6E9; Fri, 27 Aug 2021 09:57:35 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru 54A4D7F6E9 Authentication-Results: shelob.oktetlabs.ru/54A4D7F6E9; dkim=none; dkim-atps=neutral From: Andrew Rybchenko To: dev@dpdk.org Cc: Igor Romanov , Andy Moreton , Ivan Malov Date: Fri, 27 Aug 2021 09:57:02 +0300 Message-Id: <20210827065717.1838258-24-andrew.rybchenko@oktetlabs.ru> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210827065717.1838258-1-andrew.rybchenko@oktetlabs.ru> References: <20210827065717.1838258-1-andrew.rybchenko@oktetlabs.ru> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH 23/38] net/sfc: use xword type for EF100 Rx prefix X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" From: Igor Romanov Layout of the EF100 Rx prefix is defined in terms of a 32 bytes long value type (xword). Replace oword with xword to avoid truncation. Signed-off-by: Igor Romanov Signed-off-by: Andrew Rybchenko Reviewed-by: Andy Moreton Reviewed-by: Ivan Malov --- drivers/net/sfc/sfc_ef100_rx.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/net/sfc/sfc_ef100_rx.c b/drivers/net/sfc/sfc_ef100_rx.c index d4cb96881c..15fce55361 100644 --- a/drivers/net/sfc/sfc_ef100_rx.c +++ b/drivers/net/sfc/sfc_ef100_rx.c @@ -379,7 +379,7 @@ static const efx_rx_prefix_layout_t sfc_ef100_rx_prefix_layout = { static bool sfc_ef100_rx_prefix_to_offloads(const struct sfc_ef100_rxq *rxq, - const efx_oword_t *rx_prefix, + const efx_xword_t *rx_prefix, struct rte_mbuf *m) { const efx_word_t *class; @@ -399,19 +399,19 @@ sfc_ef100_rx_prefix_to_offloads(const struct sfc_ef100_rxq *rxq, m->packet_type = sfc_ef100_rx_class_decode(*class, &ol_flags); if ((rxq->flags & SFC_EF100_RXQ_RSS_HASH) && - EFX_TEST_OWORD_BIT(rx_prefix[0], + EFX_TEST_XWORD_BIT(rx_prefix[0], ESF_GZ_RX_PREFIX_RSS_HASH_VALID_LBN)) { ol_flags |= PKT_RX_RSS_HASH; - /* EFX_OWORD_FIELD converts little-endian to CPU */ - m->hash.rss = EFX_OWORD_FIELD(rx_prefix[0], + /* EFX_XWORD_FIELD converts little-endian to CPU */ + m->hash.rss = EFX_XWORD_FIELD(rx_prefix[0], ESF_GZ_RX_PREFIX_RSS_HASH); } if (rxq->flags & SFC_EF100_RXQ_USER_MARK) { uint32_t user_mark; - /* EFX_OWORD_FIELD converts little-endian to CPU */ - user_mark = EFX_OWORD_FIELD(rx_prefix[0], + /* EFX_XWORD_FIELD converts little-endian to CPU */ + user_mark = EFX_XWORD_FIELD(rx_prefix[0], ESF_GZ_RX_PREFIX_USER_MARK); if (user_mark != SFC_EF100_USER_MARK_INVALID) { ol_flags |= PKT_RX_FDIR_ID; @@ -480,7 +480,7 @@ sfc_ef100_rx_process_ready_pkts(struct sfc_ef100_rxq *rxq, while (rxq->ready_pkts > 0 && rx_pkts != rx_pkts_end) { struct rte_mbuf *pkt; struct rte_mbuf *lastseg; - const efx_oword_t *rx_prefix; + const efx_xword_t *rx_prefix; uint16_t pkt_len; uint16_t seg_len; bool deliver; @@ -495,9 +495,9 @@ sfc_ef100_rx_process_ready_pkts(struct sfc_ef100_rxq *rxq, pkt->rearm_data[0] = rxq->rearm_data; /* data_off already moved past Rx prefix */ - rx_prefix = (const efx_oword_t *)sfc_ef100_rx_pkt_prefix(pkt); + rx_prefix = (const efx_xword_t *)sfc_ef100_rx_pkt_prefix(pkt); - pkt_len = EFX_OWORD_FIELD(rx_prefix[0], + pkt_len = EFX_XWORD_FIELD(rx_prefix[0], ESF_GZ_RX_PREFIX_LENGTH); SFC_ASSERT(pkt_len > 0); rte_pktmbuf_pkt_len(pkt) = pkt_len;