Message ID | 20230419062018.286136-11-saikrishnag@marvell.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp150014vqo; Tue, 18 Apr 2023 23:29:36 -0700 (PDT) X-Google-Smtp-Source: AKy350b5OfYQRqyc3THkFRC5tI1+69Kt+644IfXDvb9nKzg1TD8XJQMe+DugIMrQHJJ1Sr4Xgs7h X-Received: by 2002:a05:6a20:7f83:b0:f0:f2d6:6dd with SMTP id d3-20020a056a207f8300b000f0f2d606ddmr2864641pzj.11.1681885776551; Tue, 18 Apr 2023 23:29:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1681885776; cv=none; d=google.com; s=arc-20160816; b=v11ejrws78kvpJEhkzX1idwI+B/PvF0JRtxzB5CFJq8plUR3KezJzvnvkfq6gx4Nh4 IMqe3PqayU9edRqKP8V4ZBXUAAbVSGAcZyZx4vDjZEjAt85J6UAdkgQLkkYwQfwEatGj bsdSdZyLNa1lJNusWXa8HyWVdPCSQRngl6BPjaDhQKer6Z/i/6BvcIWHZY6FZ6ffAzuG 8qzWKIrHAprwh1swWT7GqqjDLdD00rVgKofGICHjlbn3b+NUP8DwlXLbPCYfRLllUwL2 7GvSvvsWhhP/X/0JsVnyBr1RNspMXrNjd1/jNz+sEoz7iD/IOc/4mdJb+Z50rhhtTb8L aPbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=O8lzL1Lq/tPIhJSUbcUgX+MtiTah46PWgckuX8OkKz4=; b=uPsG2CmhbjCuRcSbRgxkLUzjQ5ZwUgeBp1bm2haEQ1jMn+PnZxt/K8cssy6lOw9GuD 5WItsAKdKpplCGvu59QEUm6845ibJeGfq8Oj+m7Qy4BMpfrPf8SYPhtZlPbQJiy3Tjo6 VD26pzrhL8/66Mq1TV86e2PRP+tpLCD7O1zuU+QX8eDyd/lE59TeYUKklxLRpLI5344J kr99ZI/tvk2cRdGAvbhAV/ljF5nm/QkfpeBRQTjvFYo/MSwUDCCTXjFU7AFBM6lQAte/ +oyrzRMFRzreqGN7+MHROidP+aPE5NZ0wAWcZiPnCZ2WgbJ5DNbzXNhPqownHpeexIt3 tZVQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@marvell.com header.s=pfpt0220 header.b=EVtYCJJf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=REJECT dis=NONE) header.from=marvell.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 125-20020a620583000000b00627f017391csi15339683pff.273.2023.04.18.23.29.24; Tue, 18 Apr 2023 23:29:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@marvell.com header.s=pfpt0220 header.b=EVtYCJJf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=REJECT dis=NONE) header.from=marvell.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232265AbjDSGWU (ORCPT <rfc822;leviz.kernel.dev@gmail.com> + 99 others); Wed, 19 Apr 2023 02:22:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36432 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232081AbjDSGWE (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Wed, 19 Apr 2023 02:22:04 -0400 Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DB18EBBAA; Tue, 18 Apr 2023 23:21:32 -0700 (PDT) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 33J3qnRK021480; Tue, 18 Apr 2023 23:21:18 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=O8lzL1Lq/tPIhJSUbcUgX+MtiTah46PWgckuX8OkKz4=; b=EVtYCJJfZ8JuOLAqAAmH8f5i/Fs2skrMLEHuyJrYUlIY8SMS12xfDs2Di1mu60mPDvJf suBdvPFVikW7O88kBah4uvHJL3CYcrxJqc8ClSItiOERvjg4+uHcoc3CInBrXwVmpQWE E9bRYD8hA5KuAGa07fIxPZE+SOYpMV0sMexOyzao31huhyz+2ATHQU0NKDxHPgtWOH8T STqfjejMvGBnn5W2x0nGGIZamVabTL+JH0yWuPvK2GdZHhCnJ/FYXWACC8xZMK9GWDEo jMniCwx5zjMxGhYudUb9GNDOyg42h522ixbpMZ54rPuQIOmCMkB3l+CjnGf7Pa7Qihd+ vA== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3q28s0gmj7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 18 Apr 2023 23:21:17 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Tue, 18 Apr 2023 23:21:16 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.48 via Frontend Transport; Tue, 18 Apr 2023 23:21:16 -0700 Received: from hyd1425.marvell.com (unknown [10.29.37.83]) by maili.marvell.com (Postfix) with ESMTP id 8730F3F708C; Tue, 18 Apr 2023 23:21:11 -0700 (PDT) From: Sai Krishna <saikrishnag@marvell.com> To: <davem@davemloft.net>, <edumazet@google.com>, <kuba@kernel.org>, <pabeni@redhat.com>, <netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <simon.horman@corigine.com>, <leon@kernel.org>, <sgoutham@marvell.com>, <gakula@marvell.com>, <lcherian@marvell.com>, <jerinj@marvell.com>, <hkelam@marvell.com>, <sbhatta@marvell.com> CC: Sai Krishna <saikrishnag@marvell.com> Subject: [net PATCH v3 10/10] octeontx2-pf: Disable packet I/O for graceful exit Date: Wed, 19 Apr 2023 11:50:18 +0530 Message-ID: <20230419062018.286136-11-saikrishnag@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230419062018.286136-1-saikrishnag@marvell.com> References: <20230419062018.286136-1-saikrishnag@marvell.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-GUID: gInKFVf28W5q2XvoieqKgpPgVQaYqmh8 X-Proofpoint-ORIG-GUID: gInKFVf28W5q2XvoieqKgpPgVQaYqmh8 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-04-19_02,2023-04-18_01,2023-02-09_01 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1763585060390689910?= X-GMAIL-MSGID: =?utf-8?q?1763585060390689910?= |
Series |
octeontx2: Miscellaneous fixes
|
|
Commit Message
Sai Krishna Gajula
April 19, 2023, 6:20 a.m. UTC
From: Subbaraya Sundeep <sbhatta@marvell.com> At the stage of enabling packet I/O in otx2_open, If mailbox timeout occurs then interface ends up in down state where as hardware packet I/O is enabled. Hence disable packet I/O also before bailing out. Fixes: 1ea0166da050 ("octeontx2-pf: Fix the device state on error") Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com> Signed-off-by: Sai Krishna <saikrishnag@marvell.com> --- drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 11 ++++++++++- drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-)
Comments
On Wed, Apr 19, 2023 at 11:50:18AM +0530, Sai Krishna wrote: > From: Subbaraya Sundeep <sbhatta@marvell.com> > > At the stage of enabling packet I/O in otx2_open, If mailbox > timeout occurs then interface ends up in down state where as > hardware packet I/O is enabled. Hence disable packet I/O also > before bailing out. > > Fixes: 1ea0166da050 ("octeontx2-pf: Fix the device state on error") > Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> > Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com> > Signed-off-by: Sai Krishna <saikrishnag@marvell.com> > --- > drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 11 ++++++++++- > drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c | 2 +- > 2 files changed, 11 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c > index 179433d0a54a..52a57d2493dc 100644 > --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c > +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c > @@ -1835,13 +1835,22 @@ int otx2_open(struct net_device *netdev) > otx2_dmacflt_reinstall_flows(pf); > > err = otx2_rxtx_enable(pf, true); > - if (err) > + /* If a mbox communication error happens at this point then interface > + * will end up in a state such that it is in down state but hardware > + * mcam entries are enabled to receive the packets. Hence disable the > + * packet I/O. > + */ > + if (err == EIO) > + goto err_disable_rxtx; > + else if (err) > goto err_tx_stop_queues; > > otx2_do_set_rx_mode(pf); > > return 0; > > +err_disable_rxtx: > + otx2_rxtx_enable(pf, false); > err_tx_stop_queues: > netif_tx_stop_all_queues(netdev); > netif_carrier_off(netdev); > diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c > index ab126f8706c7..53366dbfbf27 100644 > --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c > +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c > @@ -621,7 +621,7 @@ static int otx2vf_probe(struct pci_dev *pdev, const struct pci_device_id *id) > > err = otx2vf_realloc_msix_vectors(vf); > if (err) > - goto err_mbox_destroy; > + goto err_detach_rsrc; I think it would be worth expanding on this part of the change in the commit message. Because it's not obvious to me. And I do wonder if it is a separate fix. r > > err = otx2_set_real_num_queues(netdev, qcount, qcount); > if (err) > -- > 2.25.1 >
> -----Original Message----- > From: Simon Horman <simon.horman@corigine.com> > Sent: Wednesday, April 19, 2023 4:34 PM > To: Sai Krishna Gajula <saikrishnag@marvell.com> > Cc: davem@davemloft.net; edumazet@google.com; kuba@kernel.org; > pabeni@redhat.com; netdev@vger.kernel.org; linux- > kernel@vger.kernel.org; leon@kernel.org; Sunil Kovvuri Goutham > <sgoutham@marvell.com>; Geethasowjanya Akula <gakula@marvell.com>; > Linu Cherian <lcherian@marvell.com>; Jerin Jacob Kollanukkaran > <jerinj@marvell.com>; Hariprasad Kelam <hkelam@marvell.com>; > Subbaraya Sundeep Bhatta <sbhatta@marvell.com> > Subject: Re: [net PATCH v3 10/10] octeontx2-pf: Disable packet I/O for > graceful exit > > On Wed, Apr 19, 2023 at 11:50:18AM +0530, Sai Krishna wrote: > > From: Subbaraya Sundeep <sbhatta@marvell.com> > > > > At the stage of enabling packet I/O in otx2_open, If mailbox timeout > > occurs then interface ends up in down state where as hardware packet > > I/O is enabled. Hence disable packet I/O also before bailing out. > > > > Fixes: 1ea0166da050 ("octeontx2-pf: Fix the device state on error") > > Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> > > Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com> > > Signed-off-by: Sai Krishna <saikrishnag@marvell.com> > > --- > > drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 11 ++++++++++- > > drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c | 2 +- > > 2 files changed, 11 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c > > b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c > > index 179433d0a54a..52a57d2493dc 100644 > > --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c > > +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c > > @@ -1835,13 +1835,22 @@ int otx2_open(struct net_device *netdev) > > otx2_dmacflt_reinstall_flows(pf); > > > > err = otx2_rxtx_enable(pf, true); > > - if (err) > > + /* If a mbox communication error happens at this point then > interface > > + * will end up in a state such that it is in down state but hardware > > + * mcam entries are enabled to receive the packets. Hence disable > the > > + * packet I/O. > > + */ > > + if (err == EIO) > > + goto err_disable_rxtx; > > + else if (err) > > goto err_tx_stop_queues; > > > > otx2_do_set_rx_mode(pf); > > > > return 0; > > > > +err_disable_rxtx: > > + otx2_rxtx_enable(pf, false); > > err_tx_stop_queues: > > netif_tx_stop_all_queues(netdev); > > netif_carrier_off(netdev); > > diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c > > b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c > > index ab126f8706c7..53366dbfbf27 100644 > > --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c > > +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c > > @@ -621,7 +621,7 @@ static int otx2vf_probe(struct pci_dev *pdev, > > const struct pci_device_id *id) > > > > err = otx2vf_realloc_msix_vectors(vf); > > if (err) > > - goto err_mbox_destroy; > > + goto err_detach_rsrc; > > I think it would be worth expanding on this part of the change in the commit > message. Because it's not obvious to me. > And I do wonder if it is a separate fix. > We will expand on the commit message and explain about this in v4 patch. Thanks, Sai > r > > > > err = otx2_set_real_num_queues(netdev, qcount, qcount); > > if (err) > > -- > > 2.25.1 > >
diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c index 179433d0a54a..52a57d2493dc 100644 --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c @@ -1835,13 +1835,22 @@ int otx2_open(struct net_device *netdev) otx2_dmacflt_reinstall_flows(pf); err = otx2_rxtx_enable(pf, true); - if (err) + /* If a mbox communication error happens at this point then interface + * will end up in a state such that it is in down state but hardware + * mcam entries are enabled to receive the packets. Hence disable the + * packet I/O. + */ + if (err == EIO) + goto err_disable_rxtx; + else if (err) goto err_tx_stop_queues; otx2_do_set_rx_mode(pf); return 0; +err_disable_rxtx: + otx2_rxtx_enable(pf, false); err_tx_stop_queues: netif_tx_stop_all_queues(netdev); netif_carrier_off(netdev); diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c index ab126f8706c7..53366dbfbf27 100644 --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c @@ -621,7 +621,7 @@ static int otx2vf_probe(struct pci_dev *pdev, const struct pci_device_id *id) err = otx2vf_realloc_msix_vectors(vf); if (err) - goto err_mbox_destroy; + goto err_detach_rsrc; err = otx2_set_real_num_queues(netdev, qcount, qcount); if (err)