From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 696BAC433FE for ; Fri, 10 Dec 2021 15:00:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242452AbhLJPDe (ORCPT ); Fri, 10 Dec 2021 10:03:34 -0500 Received: from mga04.intel.com ([192.55.52.120]:14344 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242413AbhLJPDd (ORCPT ); Fri, 10 Dec 2021 10:03:33 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1639148398; x=1670684398; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=2PVjwIld2vBted4BmZnosMs2q3tQo3Bzi8yzQF2WFKg=; b=Uu0ro2SXSdTX0s5xrcmnUOXbPAIuj/18g8Os+Wgtc0k4ZFVBGJUHDe6Y EqKDoIg8YbEGNBBAfaYRFiKYPK/05XAg5zX9fTHqP0ruToKw2bAn0gVPb iEIX04sB6wYpxTD1TYlheOgJdH+bIOzg1nfetd0Qq4ujJ0AQgjxA2BVOf zCor6Hkx0iPxDdqd0ThaDGD88da88JnQsNadc5YDg0s+bU+KFxT7FRb3W /6ASFmWQ1zqLnXUbuNAbpIBss/MU3Auz9Jh18Ckbaa8qCbvtwJX79ZoWO Hb1Qa313m+yvr/WRO/mpHHvTn2YBAqECpM8PT/xMXQezpaqyQyu9cd4Gn g==; X-IronPort-AV: E=McAfee;i="6200,9189,10193"; a="237093270" X-IronPort-AV: E=Sophos;i="5.88,195,1635231600"; d="scan'208";a="237093270" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Dec 2021 06:59:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,195,1635231600"; d="scan'208";a="680763765" Received: from boxer.igk.intel.com ([10.102.20.173]) by orsmga005.jf.intel.com with ESMTP; 10 Dec 2021 06:59:56 -0800 From: Maciej Fijalkowski To: intel-wired-lan@lists.osuosl.org Cc: netdev@vger.kernel.org, bpf@vger.kernel.org, anthony.l.nguyen@intel.com, kuba@kernel.org, davem@davemloft.net, magnus.karlsson@intel.com, elza.mathew@intel.com, Maciej Fijalkowski Subject: [PATCH intel-net 4/5] ice: xsk: allow empty Rx descriptors on XSK ZC data path Date: Fri, 10 Dec 2021 15:59:40 +0100 Message-Id: <20211210145941.5865-5-maciej.fijalkowski@intel.com> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211210145941.5865-1-maciej.fijalkowski@intel.com> References: <20211210145941.5865-1-maciej.fijalkowski@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Commit ac6f733a7bd5 ("ice: allow empty Rx descriptors") stated that ice HW can produce empty descriptors that are valid and they should be processed. Add this support to xsk ZC path to avoid potential processing problems. Fixes: 2d4238f55697 ("ice: Add support for AF_XDP") Signed-off-by: Maciej Fijalkowski --- drivers/net/ethernet/intel/ice/ice_xsk.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/intel/ice/ice_xsk.c b/drivers/net/ethernet/intel/ice/ice_xsk.c index 874fce9fa1c3..80f5a6194a49 100644 --- a/drivers/net/ethernet/intel/ice/ice_xsk.c +++ b/drivers/net/ethernet/intel/ice/ice_xsk.c @@ -537,12 +537,18 @@ int ice_clean_rx_irq_zc(struct ice_rx_ring *rx_ring, int budget) */ dma_rmb(); + xdp = *ice_xdp_buf(rx_ring, rx_ring->next_to_clean); + size = le16_to_cpu(rx_desc->wb.pkt_len) & ICE_RX_FLX_DESC_PKT_LEN_M; - if (!size) - break; + if (!size) { + xdp->data = NULL; + xdp->data_end = NULL; + xdp->data_hard_start = NULL; + xdp->data_meta = NULL; + goto construct_skb; + } - xdp = *ice_xdp_buf(rx_ring, rx_ring->next_to_clean); xsk_buff_set_size(xdp, size); xsk_buff_dma_sync_for_cpu(xdp, rx_ring->xsk_pool); @@ -560,7 +566,7 @@ int ice_clean_rx_irq_zc(struct ice_rx_ring *rx_ring, int budget) ice_bump_ntc(rx_ring); continue; } - +construct_skb: /* XDP_PASS path */ skb = ice_construct_skb_zc(rx_ring, xdp); if (!skb) { -- 2.33.1