Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp929211rwl; Wed, 29 Mar 2023 10:11:36 -0700 (PDT) X-Google-Smtp-Source: AKy350ZYlIOnYanA81H2CUxk13mZRsFH39O4p1itfZe+SLsaOC42wJRO4yUQRQ59vW7SlDEpB08I X-Received: by 2002:a17:90a:b88e:b0:23e:cea5:d37e with SMTP id o14-20020a17090ab88e00b0023ecea5d37emr19975429pjr.46.1680109896039; Wed, 29 Mar 2023 10:11:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680109896; cv=none; d=google.com; s=arc-20160816; b=rONzbn4HeP1QCdr0nOByHece1UXObgejNd9hDkK/XArMeGR3pTXjsdAfRNmJCCEsL9 RGJdIpRSQBT6NPKhhSFLg7k650MjQm9cKreyeeR5gvFqmhDEDDZtLhvWbpiZB7UvP4Rj PcwHvxC+mu79JHUNfkXTSGC7j5wCtq69Cp7FcOi7G/ETQ0JEd+9odMOfJpTPU/UX77Gj YAHvFNCacXS+Kz24vpGcMjct950/xPy7SF5Pe2p+C7Ue2iSmVZYKR0VvQ1ljI3bCaTxU R0USLZc1fOR3lW06THSl2M/PFV3uH72uDZGBid0545IYJxj6Oo+B3wtbmOe363Iw1/5v 4Ogw== 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=BlWiti7aiJ9pMybHjerR+p6XbcoliBYcRK+PVTNGv5s=; b=Bi78bax3CiUlaU2qKnNV5zKjWbOQnLflu9HwXIjMXIoOYYJ1/io4N0EfE65b/6r0BP o1eqW3caOMNJVD3ScEegJ0RbahPMgj0vwWhLgOttndnhWLonGHagB6Oo9g6xQe0PKoC+ WyIWSRsOh7QTNYQ3icaZe873MQIPGJXm8coXfz40FSxWiErhD/nkOfF6lSlf1UtTXKer XU11ZB6B2QHRQs0Fk2bivOImG7jQVJ2HGyN2yMCj2b+0rM0PKyFb4jPtZIO3r1OV07Ut o0AriMT0VXm0HBHX6LA3IUQwrLJVt4VsTIJhYC0jZZ2TTtKn+gF1Cu2D0GuiaaeBHVbk vR7Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@marvell.com header.s=pfpt0220 header.b=ATnMGW4C; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d13-20020a656b8d000000b0050bf225ba32si31364948pgw.706.2023.03.29.10.11.21; Wed, 29 Mar 2023 10:11: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=ATnMGW4C; 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 S231591AbjC2RKf (ORCPT + 99 others); Wed, 29 Mar 2023 13:10:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54740 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231454AbjC2RKP (ORCPT ); Wed, 29 Mar 2023 13:10:15 -0400 Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 49A8165AF; Wed, 29 Mar 2023 10:09:30 -0700 (PDT) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 32TFobCb032164; Wed, 29 Mar 2023 10:09:23 -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=BlWiti7aiJ9pMybHjerR+p6XbcoliBYcRK+PVTNGv5s=; b=ATnMGW4C628CKzUGKGwnLUPdcmkBCWSVeKcKZ1JxEwwroVoKxjDfzO/yjNDY22khH+2v B6T74NVptB1sUdl9DH1GwIRMXNerywTF6FBc79Y5VysX4huv0paveGi6rTd2Au3wnS8O 3xBkPS7zpQRvttBu9lVL7zNos+p7HFEiq+F4Q/uE673a5SsmXvqCHSfcXrUyy0CBaZXx +HjTA4N7E2BkPJ+iBTFOLidGortls55kJYIZAODs1ejrjZsCLWlKUawTqwpTEDq39E/7 6l8CZulbjEMjb2UL1cCzy2ITq+aJwc7hpmiDXspZcQlZdK3WUV+fHwbzwCa8bobsD46A bA== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3pmhc4a0jv-13 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 29 Mar 2023 10:09:23 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Wed, 29 Mar 2023 10:07:08 -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; Wed, 29 Mar 2023 10:07:08 -0700 Received: from hyd1425.marvell.com (unknown [10.29.37.83]) by maili.marvell.com (Postfix) with ESMTP id 73EEA3F704C; Wed, 29 Mar 2023 10:07:05 -0700 (PDT) From: Sai Krishna To: , , , , , , , CC: Subbaraya Sundeep , Sai Krishna Subject: [net PATCH 7/7] octeontx2-pf: Disable packet I/O for graceful exit Date: Wed, 29 Mar 2023 22:36:19 +0530 Message-ID: <20230329170619.183064-8-saikrishnag@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230329170619.183064-1-saikrishnag@marvell.com> References: <20230329170619.183064-1-saikrishnag@marvell.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-ORIG-GUID: wSBnIlf5MciGRqLFY8xDQsziAqetcQ6P X-Proofpoint-GUID: wSBnIlf5MciGRqLFY8xDQsziAqetcQ6P 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-03-29_10,2023-03-28_02,2023-02-09_01 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_NONE autolearn=unavailable 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: X-Mailing-List: linux-kernel@vger.kernel.org From: Subbaraya Sundeep 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. This patch also free the LMTST per cpu structure on teardown, if the lmt_info pointer is not NULL. Fixes: 1ea0166da050 ("octeontx2-pf: Fix the device state on error") Signed-off-by: Subbaraya Sundeep Signed-off-by: Sunil Kovvuri Goutham Signed-off-by: Sai Krishna --- drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 11 ++++++++++- drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c | 8 +++++--- 2 files changed, 15 insertions(+), 4 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..6ab4780f12fd 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) @@ -709,7 +709,8 @@ static int otx2vf_probe(struct pci_dev *pdev, const struct pci_device_id *id) err_ptp_destroy: otx2_ptp_destroy(vf); err_detach_rsrc: - free_percpu(vf->hw.lmt_info); + if (vf->hw.lmt_info) + free_percpu(vf->hw.lmt_info); if (test_bit(CN10K_LMTST, &vf->hw.cap_flag)) qmem_free(vf->dev, vf->dync_lmt); otx2_detach_resources(&vf->mbox); @@ -763,7 +764,8 @@ static void otx2vf_remove(struct pci_dev *pdev) otx2_shutdown_tc(vf); otx2vf_disable_mbox_intr(vf); otx2_detach_resources(&vf->mbox); - free_percpu(vf->hw.lmt_info); + if (vf->hw.lmt_info) + free_percpu(vf->hw.lmt_info); if (test_bit(CN10K_LMTST, &vf->hw.cap_flag)) qmem_free(vf->dev, vf->dync_lmt); otx2vf_vfaf_mbox_destroy(vf); -- 2.25.1