From patchwork Thu Dec 7 00:05:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 13482499 X-Patchwork-Delegate: kuba@kernel.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="atDcRKWr" Received: from mail-qv1-xf29.google.com (mail-qv1-xf29.google.com [IPv6:2607:f8b0:4864:20::f29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5249B10DB for ; Wed, 6 Dec 2023 16:06:08 -0800 (PST) Received: by mail-qv1-xf29.google.com with SMTP id 6a1803df08f44-67adea83ea6so2632596d6.0 for ; Wed, 06 Dec 2023 16:06:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1701907567; x=1702512367; darn=vger.kernel.org; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=mnMYZMcQROc+cWcyaE5YvSy7ZKUmcJvq8PCnBZAB0SY=; b=atDcRKWrKSmDZgXUSPQS4u+aRzkrIn1yILhgQyGm+GPqfL4yK5x2qGXctz3qXTxMPQ iUNilTQTPuzUphx8bUk2CGhEjapcOxx7hZ8Z1TNzc3MQGTB2eiWOR+egVccR6S9kQEXj j5ONUFjUmbJUVXTf/30XYrdQm+ZzS7s5wC1Zs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701907567; x=1702512367; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=mnMYZMcQROc+cWcyaE5YvSy7ZKUmcJvq8PCnBZAB0SY=; b=rjS0M0wteSRpij1R71NeWotfjIbyHhoU4v6JOJfX0iyXiva0A/wGof+K7w60nsk17g nNlAK5rEmA2wFeC9sfDQ8HezOapun9cNn8uaBfwtOo6zpxSFlINqsphFAx2Q+TlnZbvM LuohNkpRaewkJISl7imQSFdkn4eULG32hi3wE8QgRltuKkvBEgpMdZ7B61SEcODPVp05 4/r8f6z75JmTqSytd8Vl1KpX6dSsRS28FSsVhg0mbhjw7vWcZzbDlJVMbvA3S7L8aPMW CZ+rk+ntiXCy2I0O3ySo4mmQnRWS66WxeqbvKjVs/Vr4hcW/pnIQELWYQ3kOEyqulwvV ptYg== X-Gm-Message-State: AOJu0YxiVMsh59K121vG6P7unTbEOX/7lasG6aU09WP/KlkyboXhw2C3 4cjSKnICxqUCHeRl3nLrbyut2A== X-Google-Smtp-Source: AGHT+IHx8312fBcEIgwNclW3G3GFd3d287gsf/6yJVkLPEQSO+gOLbsiavCsIwjE7jUvPFKoPzIExQ== X-Received: by 2002:a05:6214:8ef:b0:67a:bfed:aaab with SMTP id dr15-20020a05621408ef00b0067abfedaaabmr1972562qvb.88.1701907566883; Wed, 06 Dec 2023 16:06:06 -0800 (PST) Received: from lvnvda5233.lvn.broadcom.net ([192.19.161.250]) by smtp.gmail.com with ESMTPSA id a11-20020a05620a102b00b0077d78afc513sm23091qkk.110.2023.12.06.16.06.05 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 06 Dec 2023 16:06:06 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, gospo@broadcom.com, Somnath Kotur , Kalesh AP , Ajit Khaparde , Andy Gospodarek Subject: [PATCH net v2 1/4] bnxt_en: Clear resource reservation during resume Date: Wed, 6 Dec 2023 16:05:48 -0800 Message-Id: <20231207000551.138584-2-michael.chan@broadcom.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20231207000551.138584-1-michael.chan@broadcom.com> References: <20231207000551.138584-1-michael.chan@broadcom.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org From: Somnath Kotur We are issuing HWRM_FUNC_RESET cmd to reset the device including all reserved resources, but not clearing the reservations within the driver struct. As a result, when the driver re-initializes as part of resume, it believes that there is no need to do any resource reservation and goes ahead and tries to allocate rings which will eventually fail beyond a certain number pre-reserved by the firmware. Fixes: b4c66425771d ("bnxt_en: refactor bnxt_cancel_reservations()") Reviewed-by: Kalesh AP Reviewed-by: Ajit Khaparde Reviewed-by: Andy Gospodarek Signed-off-by: Somnath Kotur Signed-off-by: Michael Chan --- v2: Fix typo in SOB tag. --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index d0359b569afe..72f2fc983940 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -13940,6 +13940,8 @@ static int bnxt_resume(struct device *device) if (rc) goto resume_exit; + bnxt_clear_reservations(bp, true); + if (bnxt_hwrm_func_drv_rgtr(bp, NULL, 0, false)) { rc = -ENODEV; goto resume_exit; From patchwork Thu Dec 7 00:05:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 13482500 X-Patchwork-Delegate: kuba@kernel.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="GiFhWmG6" Received: from mail-qk1-x72d.google.com (mail-qk1-x72d.google.com [IPv6:2607:f8b0:4864:20::72d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CD4B310E9 for ; Wed, 6 Dec 2023 16:06:09 -0800 (PST) Received: by mail-qk1-x72d.google.com with SMTP id af79cd13be357-77dd08f75afso4641585a.3 for ; Wed, 06 Dec 2023 16:06:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1701907569; x=1702512369; darn=vger.kernel.org; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=+mB9gUa23RohakNlMFBITu+1FaqVvCzODMcmo2iBtTA=; b=GiFhWmG6oojvGx0+tH09ogKNxL4jyvCnTJOLKYvxRyf6sPCIgWWgkCU6ixOPo1fl4U 1bZNoW0mywZ8dQoN6+8H0iDA3DJiqeL7dLw7sXKNJfuo5QTUugQ3L8S3jRpR4LMLMdKH BZ5H+6QUL4XvDEKOi/6qa5LEeUZsmJ+ZrMeTk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701907569; x=1702512369; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=+mB9gUa23RohakNlMFBITu+1FaqVvCzODMcmo2iBtTA=; b=elV+NVi8Rh9d+PiEnT3tJRlKrpZjTm5cmI3tQ3Zt+s4kwreDwXH0u2ef5kosCIMU5L +pMpfLoEMTMyLSL4gfAwANZWYbSoMZLgxS/NTP+UUQO/0LERJJlij57LhOvFM0Hhl5Ec hw5WDLu2KMZ5r7FvKnTnoapILlfsseJ556ElhlOYpU9N85vE3OnZVOC09rJu+Su77g9I +LNy6+gq8V/7avFaPnPB2mHm+Ye5bFM8Mud0gf7W9JcbShpgbW4wkdAg9ZvDQSO6MG2n 7MY0NajhGudA0x+fG2SieRSplTXptTPZ2KCtVRa8GOj8fKqD8RYUgyIa7QUFnmMhh3rT JK5g== X-Gm-Message-State: AOJu0YzYc5HyN1L6bLuLVQRD2mhpQ1V3qvJGC4DQaVuRG3aN1pTlD52I 9UnSYi6DC7+eqVx8sxdF3ykGBA== X-Google-Smtp-Source: AGHT+IHyVHZOHrAl0SSERf9qI+0tT6m+tC5vw1YAT97HVRu+dd77WffLBA8GygYskM//NAQKJjlP2w== X-Received: by 2002:a05:6214:2ad:b0:67a:afde:81d with SMTP id m13-20020a05621402ad00b0067aafde081dmr1536219qvv.32.1701907568636; Wed, 06 Dec 2023 16:06:08 -0800 (PST) Received: from lvnvda5233.lvn.broadcom.net ([192.19.161.250]) by smtp.gmail.com with ESMTPSA id a11-20020a05620a102b00b0077d78afc513sm23091qkk.110.2023.12.06.16.06.07 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 06 Dec 2023 16:06:08 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, gospo@broadcom.com, Sreekanth Reddy , Somnath Kotur , Andy Gospodarek , Vikas Gupta Subject: [PATCH net v2 2/4] bnxt_en: Fix skb recycling logic in bnxt_deliver_skb() Date: Wed, 6 Dec 2023 16:05:49 -0800 Message-Id: <20231207000551.138584-3-michael.chan@broadcom.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20231207000551.138584-1-michael.chan@broadcom.com> References: <20231207000551.138584-1-michael.chan@broadcom.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org From: Sreekanth Reddy Receive SKBs can go through the VF-rep path or the normal path. skb_mark_for_recycle() is only called for the normal path. Fix it to do it for both paths to fix possible stalled page pool shutdown errors. Fixes: 86b05508f775 ("bnxt_en: Use the unified RX page pool buffers for XDP and non-XDP") Reviewed-by: Somnath Kotur Reviewed-by: Andy Gospodarek Reviewed-by: Vikas Gupta Signed-off-by: Sreekanth Reddy Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 72f2fc983940..b4a5311bdeb5 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -1748,13 +1748,14 @@ static void bnxt_tpa_agg(struct bnxt *bp, struct bnxt_rx_ring_info *rxr, static void bnxt_deliver_skb(struct bnxt *bp, struct bnxt_napi *bnapi, struct sk_buff *skb) { + skb_mark_for_recycle(skb); + if (skb->dev != bp->dev) { /* this packet belongs to a vf-rep */ bnxt_vf_rep_rx(bp, skb); return; } skb_record_rx_queue(skb, bnapi->index); - skb_mark_for_recycle(skb); napi_gro_receive(&bnapi->napi, skb); } From patchwork Thu Dec 7 00:05:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 13482501 X-Patchwork-Delegate: kuba@kernel.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="TC5biusA" Received: from mail-qv1-xf33.google.com (mail-qv1-xf33.google.com [IPv6:2607:f8b0:4864:20::f33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6793E10D9 for ; Wed, 6 Dec 2023 16:06:11 -0800 (PST) Received: by mail-qv1-xf33.google.com with SMTP id 6a1803df08f44-67aa3b62c35so2104176d6.0 for ; Wed, 06 Dec 2023 16:06:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1701907570; x=1702512370; darn=vger.kernel.org; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=Bw5sNGv3VbIRSF4MrQ2S3JRjWP8i2DBnkqSzM3oAGUc=; b=TC5biusATDaHkvSbxdCzidGksyA7hK42aDZIsTar/4GLNr9tCwBHKABSGpS+OeqK0i /DI3pjXjSTvK4bdQpzf1x0iOAif4Gg1q0vZeanfUcGCNvT9GPu1ZNHciaEHTrpUGJmvJ JGNhL6ZlW9xoVw1JdGqUO8bFAYGtISOeOYUDM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701907570; x=1702512370; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Bw5sNGv3VbIRSF4MrQ2S3JRjWP8i2DBnkqSzM3oAGUc=; b=VLOj9rRH0VMwxpqhlWTDNt0nji2GDiLy+H2CgPFga19RcK5QFVk6p3Qo470uANS+b7 IPtveGpH8ES91uPjZ246n2e9YAOpyxytEeNdcEzfFur29FKCg8taH+qP8JhSb181xTAS 7ljEHXhdFKZrEGw8WrQTND1DNgNwmEv7uyyugOY6aPbnY2taiCMshFKqWo5angZYVP91 CMCN+VVC8b++//uT5+y/kpA+3pTkYJsxtpHR3GHjBxdxm890wnSmDMx3WCn27XLWQOzg 3t4LXxPTUEW7+FnCiI9JvVge6DAwC0C8YbswFawtpN7gpEt/CDFp4CzTD1+zSygPU4dN dTCw== X-Gm-Message-State: AOJu0YwKar0Gq9kYS3EIG1xw+MOR+ClMjy83iVoa7PvdRSeiGU5bNEO+ YaI3507LrJ/IKbObvnCso3Sreg== X-Google-Smtp-Source: AGHT+IEmQOhR8Z//m+RP0oiDKtzlOh6/5l3+mAj5iq3Ka7jeqdRX7vQgkioDxcWJpej8fuIVgc3SWA== X-Received: by 2002:ad4:4212:0:b0:67a:a721:e121 with SMTP id k18-20020ad44212000000b0067aa721e121mr2001811qvp.78.1701907570345; Wed, 06 Dec 2023 16:06:10 -0800 (PST) Received: from lvnvda5233.lvn.broadcom.net ([192.19.161.250]) by smtp.gmail.com with ESMTPSA id a11-20020a05620a102b00b0077d78afc513sm23091qkk.110.2023.12.06.16.06.08 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 06 Dec 2023 16:06:09 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, gospo@broadcom.com, Kalesh AP , Vikas Gupta , Somnath Kotur Subject: [PATCH net v2 3/4] bnxt_en: Fix wrong return value check in bnxt_close_nic() Date: Wed, 6 Dec 2023 16:05:50 -0800 Message-Id: <20231207000551.138584-4-michael.chan@broadcom.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20231207000551.138584-1-michael.chan@broadcom.com> References: <20231207000551.138584-1-michael.chan@broadcom.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org From: Kalesh AP The wait_event_interruptible_timeout() function returns 0 if the timeout elapsed, -ERESTARTSYS if it was interrupted by a signal, and the remaining jiffies otherwise if the condition evaluated to true before the timeout elapsed. Driver should have checked for zero return value instead of a positive value. Fixes: c0c050c58d84 ("bnxt_en: New Broadcom ethernet driver.") Reviewed-by: Vikas Gupta Reviewed-by: Somnath Kotur Signed-off-by: Kalesh AP Signed-off-by: Michael Chan --- v2: Add missing SoB tag. --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index b4a5311bdeb5..16b7cf6b01a4 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -10753,7 +10753,7 @@ int bnxt_close_nic(struct bnxt *bp, bool irq_re_init, bool link_re_init) rc = wait_event_interruptible_timeout(bp->sriov_cfg_wait, !bp->sriov_cfg, BNXT_SRIOV_CFG_WAIT_TMO); - if (rc) + if (!rc) netdev_warn(bp->dev, "timeout waiting for SRIOV config operation to complete!\n"); } #endif From patchwork Thu Dec 7 00:05:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Chan X-Patchwork-Id: 13482502 X-Patchwork-Delegate: kuba@kernel.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="OZ5MZJfz" Received: from mail-qk1-x730.google.com (mail-qk1-x730.google.com [IPv6:2607:f8b0:4864:20::730]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4AA3910EB for ; Wed, 6 Dec 2023 16:06:13 -0800 (PST) Received: by mail-qk1-x730.google.com with SMTP id af79cd13be357-77efc30eee3so4612285a.1 for ; Wed, 06 Dec 2023 16:06:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1701907572; x=1702512372; darn=vger.kernel.org; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=rSRA0bl+Ki/kDE4LOuZBWg84JCHB80sJd9yiCb0tzZ0=; b=OZ5MZJfznNsZ0yfvH+V0kYQ99PxT0i/5E6xn40eBF2wEsf2kYAFKQExlInWewJx19B t27cUJBMeF7yKkh12nZF4CKw3TrXAwbw0goHOE/Fwto1jl5WC3tkQDou2v/a0vRSmQsF I+Xei0OkIGswkgPaqkdLUQupKgNXmuLPL1tzQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701907572; x=1702512372; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=rSRA0bl+Ki/kDE4LOuZBWg84JCHB80sJd9yiCb0tzZ0=; b=Zij2X7X3+xaVQD3uVuZhNv0qeqGOjBekNdHQ5+WC+P0Oev02VItdQ1bPc0ZLFIAgNE BHEkqjoIUMXePIhYOC3s01X53bLkuANjaDbOkP0/zdqBDH5ulfOCpizzpPiY4zE/KKwn lvAOL1nxr70Zwl3MdFnYU0KTMNN2f5Ac/ZCAwu5K+7rLlXLa2pjKmHr142mMEyHc7twu JkRNFRV5Pqy6RQ/c5leEPC8K8zeGRO1t/R4ZB6hkwgI5c/uu8ozaTigZ47vvGU2luVa5 UKXdlb/q07SiMGxXgNbi0wadaiZE8Sm83a9SrlPnd0umeR3jV2GGVk4FPXt8+OCt2QHd YW1w== X-Gm-Message-State: AOJu0YzjeM+V8nNHJT0nrRITnajX6EhgqcUHLyXC0zLOVH0cG/TdFM9L Sb8bU/eSeP6v7c5jwIhLe+LRbA== X-Google-Smtp-Source: AGHT+IGK5AC5dnprcPH759G+zRQ6S8k2hhx0Tq/OgBbUjQSafI/Flmgi2hFl63T6DiLpHSytt2+ETQ== X-Received: by 2002:a05:620a:8f86:b0:77f:11e3:57c7 with SMTP id ri6-20020a05620a8f8600b0077f11e357c7mr244770qkn.55.1701907571917; Wed, 06 Dec 2023 16:06:11 -0800 (PST) Received: from lvnvda5233.lvn.broadcom.net ([192.19.161.250]) by smtp.gmail.com with ESMTPSA id a11-20020a05620a102b00b0077d78afc513sm23091qkk.110.2023.12.06.16.06.10 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 06 Dec 2023 16:06:11 -0800 (PST) From: Michael Chan To: davem@davemloft.net Cc: netdev@vger.kernel.org, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, gospo@broadcom.com, Andy Gospodarek , Pavan Chebbi Subject: [PATCH net v2 4/4] bnxt_en: Fix HWTSTAMP_FILTER_ALL packet timestamp logic Date: Wed, 6 Dec 2023 16:05:51 -0800 Message-Id: <20231207000551.138584-5-michael.chan@broadcom.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20231207000551.138584-1-michael.chan@broadcom.com> References: <20231207000551.138584-1-michael.chan@broadcom.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org When the chip is configured to timestamp all receive packets, the timestamp in the RX completion is only valid if the metadata present flag is not set for packets received on the wire. In addition, internal loopback packets will never have a valid timestamp and the timestamp field will always be zero. We must exclude any 0 value in the timestamp field because there is no way to determine if it is a loopback packet or not. Add a new function bnxt_rx_ts_valid() to check for all timestamp valid conditions. Fixes: 66ed81dcedc6 ("bnxt_en: Enable packet timestamping for all RX packets") Reviewed-by: Andy Gospodarek Reviewed-by: Pavan Chebbi Signed-off-by: Michael Chan --- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 20 +++++++++++++++++--- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 8 +++++++- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index 16b7cf6b01a4..55ac281a9b06 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -1759,6 +1759,21 @@ static void bnxt_deliver_skb(struct bnxt *bp, struct bnxt_napi *bnapi, napi_gro_receive(&bnapi->napi, skb); } +static bool bnxt_rx_ts_valid(struct bnxt *bp, u32 flags, + struct rx_cmp_ext *rxcmp1, u32 *cmpl_ts) +{ + u32 ts = le32_to_cpu(rxcmp1->rx_cmp_timestamp); + + if (BNXT_PTP_RX_TS_VALID(flags)) + goto ts_valid; + if (!bp->ptp_all_rx_tstamp || !ts || !BNXT_ALL_RX_TS_VALID(flags)) + return false; + +ts_valid: + *cmpl_ts = ts; + return true; +} + /* returns the following: * 1 - 1 packet successfully received * 0 - successful TPA_START, packet not completed yet @@ -1784,6 +1799,7 @@ static int bnxt_rx_pkt(struct bnxt *bp, struct bnxt_cp_ring_info *cpr, struct sk_buff *skb; struct xdp_buff xdp; u32 flags, misc; + u32 cmpl_ts; void *data; int rc = 0; @@ -2006,10 +2022,8 @@ static int bnxt_rx_pkt(struct bnxt *bp, struct bnxt_cp_ring_info *cpr, } } - if (unlikely((flags & RX_CMP_FLAGS_ITYPES_MASK) == - RX_CMP_FLAGS_ITYPE_PTP_W_TS) || bp->ptp_all_rx_tstamp) { + if (bnxt_rx_ts_valid(bp, flags, rxcmp1, &cmpl_ts)) { if (bp->flags & BNXT_FLAG_CHIP_P5) { - u32 cmpl_ts = le32_to_cpu(rxcmp1->rx_cmp_timestamp); u64 ns, ts; if (!bnxt_get_rx_ts_p5(bp, &ts, cmpl_ts)) { diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.h b/drivers/net/ethernet/broadcom/bnxt/bnxt.h index e702dbc3e6b1..5b570058e1c9 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h @@ -161,7 +161,7 @@ struct rx_cmp { #define RX_CMP_FLAGS_ERROR (1 << 6) #define RX_CMP_FLAGS_PLACEMENT (7 << 7) #define RX_CMP_FLAGS_RSS_VALID (1 << 10) - #define RX_CMP_FLAGS_UNUSED (1 << 11) + #define RX_CMP_FLAGS_PKT_METADATA_PRESENT (1 << 11) #define RX_CMP_FLAGS_ITYPES_SHIFT 12 #define RX_CMP_FLAGS_ITYPES_MASK 0xf000 #define RX_CMP_FLAGS_ITYPE_UNKNOWN (0 << 12) @@ -188,6 +188,12 @@ struct rx_cmp { __le32 rx_cmp_rss_hash; }; +#define BNXT_PTP_RX_TS_VALID(flags) \ + (((flags) & RX_CMP_FLAGS_ITYPES_MASK) == RX_CMP_FLAGS_ITYPE_PTP_W_TS) + +#define BNXT_ALL_RX_TS_VALID(flags) \ + !((flags) & RX_CMP_FLAGS_PKT_METADATA_PRESENT) + #define RX_CMP_HASH_VALID(rxcmp) \ ((rxcmp)->rx_cmp_len_flags_type & cpu_to_le32(RX_CMP_FLAGS_RSS_VALID))