From patchwork Fri Feb 23 22:27:40 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Nelson, Shannon" X-Patchwork-Id: 13570125 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2043.outbound.protection.outlook.com [40.107.94.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 957DF14DFE7 for ; Fri, 23 Feb 2024 22:28:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.43 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708727283; cv=fail; b=AcHRqAE3YgSqUJr3ACE0aTX1lT3SQpuyVVUPXPlVxFVgCpAQ2nmGDqaW1CocYyGYo/pvUJ452rxWg45yl8XyhKgc1I32scAbfM3dTEZAVp6E2R6MPLvrEJiQSpA3UeLMfgEi+ZM8n1SITi81ni7jwff9ESwgRThJtt96hbaEKBo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708727283; c=relaxed/simple; bh=CVrEHhx3lSmqv1ZfHJeabiIH1L+kRqrzAhjXKBVyc9Y=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Xxog63OhnqRXRXiJvJgE9w3pBsND9TPWnag5aBcazd6ewGmA7JzK9G4WgmyPsOvXPYI/AEjvT5opSOralu03pQyg9KmxWREeVdpVpxpFnz0iiIYOPE5um4ro6bYUfMR3TbTk7xjVprghlmcG8Is94iuh5Y7HCkuPTnslAiWtyy8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=AMzzU6/X; arc=fail smtp.client-ip=40.107.94.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="AMzzU6/X" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PNa0tZWqoK8ehSEKgnlGeNTSyFpLpeh3pKKzeqSI6oZctlJ8ZSNbeD80vF2QX0g0au3x23jC+2Bc2M2JRZeNMWZLpWA20EgM8g6sQbd697QK+Vvra0zVmd+YaZ0JTUr065UDsYrGe5Vg44ZeUIglo1eX5ilbDLQ2gO1pM6Fsp9DrsSReObrhEOtBEJZhYZpizB26Y5MY0oBCngAVO0tw2/+QfXghmJnX8xtMH9FsT3QAzzgbwoepTeLdlUcpT4K2HIm1RF1LnG4lA0GJSPVhkmOz1PKSVN/pk3I2BSQpYwCPZPLc10fWKfRCjwcw93ggnJFnnjru5BbV7N1CilsDRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Bll4aW+fBw2Ym0KIqazHROb8fQGghRxO1IwY3xgFi+s=; b=ia2k3ZK0MlAgYJmPyLA8MMPkqUteP8G7Zey3XhTDRWlqgzewZTT/P6+oylcuTDn0lik31hGupXNbhIS1VZkV69i08wHMKS91nWwKye5Srj1P/7Osgl/V2NeEAU7gHZKFX51UeJoXFA+BSg//xKiaGKqTKMU248U9zznZkM7oya7py2FhOm5VOaiwAJFSk5bQbaEFVz2C4erXy0B5SjqUOf2jAaIDmqrylrTlEU6isGPttzPWsfXJambfxqZCvO5gteZkZJaKLZaxagDUBWsNP7VuryV+PadF5mMX4SSX9NHIf1uiiHsAB97kyut/fDvRV4sCh6QhsdmbB32FhB29sQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Bll4aW+fBw2Ym0KIqazHROb8fQGghRxO1IwY3xgFi+s=; b=AMzzU6/Xmb4G6/J7uPERlRJO+8INwut7emXWHp/lpsK0e4ZsrVVx5N0yENsu2iS8/EjEh9AJkmBUObY0W5L2f2MDoXwqEjM+ER1rMTIPO2+x8RnarNlp8bWZSCFwPQvw10qOyTU3zAuEFuo4amgimXBZ5+dNWZ0NEIpyUpe63hI= Received: from SA9PR03CA0017.namprd03.prod.outlook.com (2603:10b6:806:20::22) by SA0PR12MB4510.namprd12.prod.outlook.com (2603:10b6:806:94::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.24; Fri, 23 Feb 2024 22:27:59 +0000 Received: from SA2PEPF000015C8.namprd03.prod.outlook.com (2603:10b6:806:20:cafe::73) by SA9PR03CA0017.outlook.office365.com (2603:10b6:806:20::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.45 via Frontend Transport; Fri, 23 Feb 2024 22:27:58 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SA2PEPF000015C8.mail.protection.outlook.com (10.167.241.198) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7292.25 via Frontend Transport; Fri, 23 Feb 2024 22:27:58 +0000 Received: from driver-dev1.pensando.io (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Fri, 23 Feb 2024 16:27:57 -0600 From: Shannon Nelson To: , , , , CC: , , Shannon Nelson Subject: [PATCH net 1/3] ionic: check before releasing pci regions Date: Fri, 23 Feb 2024 14:27:40 -0800 Message-ID: <20240223222742.13923-2-shannon.nelson@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240223222742.13923-1-shannon.nelson@amd.com> References: <20240223222742.13923-1-shannon.nelson@amd.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF000015C8:EE_|SA0PR12MB4510:EE_ X-MS-Office365-Filtering-Correlation-Id: c1728060-0973-48f4-26a4-08dc34beb052 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9cUG/QtmJqT98XA61fK6xr5BnHspll1Fr/UhPm/b4wOjdPD9MBkXfI6ZMRD+Atf4WpUYnjAY2l89NH4HKuizQ/rU50YS5fJ4aJv8K5E4OCsd1TM+f4goKWVrAgyklPo3f9ZoGilPoeuGtwqtkjVhFUNhAYxyeuwTOf2+RqCcCppIZlZBD8UEQGUtje3l5LVwtLaIGkplB8UbB4GA9/l2AYAev87Egy219ng84gATVwlxSQbb+RKPBHb/olEJjPVtE/woOBXDQPuysx3QEm9Mrbj0D0SpFXfcK48RSOpT4ISxBdxmAtdhQ8k9Y0c008lT+UA6n+KfG05XnmibZFyLP+bcXfj1ivvfckLhkXuWVG74tu7Yv0hJnaIOVzQDVQiuEK3B2PijdfmfQOAOr55og4xCoS4AVpvdToXbRpVpkTj/q9mU9NU97ziXoTk2xrag5Wg+DpEBh1TsuLGT4TO2YCb3ES/s/Ft/hEuVV3P9rcG5m6W6sw6yk37zlIlmpzqybw2PAjshZ6+cxK2H6dJq44LurgyWshf/lrhSPIr72N4+21myhCsNnpCfyLTXhJ12O6hHzLyCgGSq9cnaKFzJPfvKdsmVCPiyFGC4VoZuj3DYCGI+0UTsQcuuKGkRXOYfcSykzbCFbMNVOn8HgYTwgA== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(230273577357003)(36860700004)(46966006)(40470700004);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2024 22:27:58.5903 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c1728060-0973-48f4-26a4-08dc34beb052 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF000015C8.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4510 X-Patchwork-Delegate: kuba@kernel.org AER recovery handler can trigger a PCI Reset after tearing down the device setup in the error detection handler. The PCI Reset handler will also attempt to tear down the device setup, and this second tear down needs to know that it doesn't need to call pci_release_regions() a second time. We can clear num_bars on tear down and use that to decide later if we need to clear the resources. This prevents a harmless but disturbing warning message resource: Trying to free nonexistent resource <0xXXXXXXXXXX-0xXXXXXXXXXX> Fixes: c3a910e1c47a ("ionic: fill out pci error handlers") Reviewed-by: Brett Creeley Signed-off-by: Shannon Nelson --- .../net/ethernet/pensando/ionic/ionic_bus_pci.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c b/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c index 10a9d80db32c..6ba8d4aca0a0 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_bus_pci.c @@ -93,6 +93,7 @@ static void ionic_unmap_bars(struct ionic *ionic) bars[i].len = 0; } } + ionic->num_bars = 0; } void __iomem *ionic_bus_map_dbpage(struct ionic *ionic, int page_num) @@ -215,13 +216,15 @@ static int ionic_sriov_configure(struct pci_dev *pdev, int num_vfs) static void ionic_clear_pci(struct ionic *ionic) { - ionic->idev.dev_info_regs = NULL; - ionic->idev.dev_cmd_regs = NULL; - ionic->idev.intr_status = NULL; - ionic->idev.intr_ctrl = NULL; - - ionic_unmap_bars(ionic); - pci_release_regions(ionic->pdev); + if (ionic->num_bars) { + ionic->idev.dev_info_regs = NULL; + ionic->idev.dev_cmd_regs = NULL; + ionic->idev.intr_status = NULL; + ionic->idev.intr_ctrl = NULL; + + ionic_unmap_bars(ionic); + pci_release_regions(ionic->pdev); + } if (pci_is_enabled(ionic->pdev)) pci_disable_device(ionic->pdev); From patchwork Fri Feb 23 22:27:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Nelson, Shannon" X-Patchwork-Id: 13570126 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2064.outbound.protection.outlook.com [40.107.220.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3B60B14DFEC for ; Fri, 23 Feb 2024 22:28:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.64 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708727283; cv=fail; b=ZCgKFd0NG3MKBRhROEdgjx0ZPIYmcCDiEMUeToUzgvk5/dFPHTKNuMR1fP71A51Y/cABsflNbAeIo8SMh5Yf55MEbsmwVlgCYD4A2jeuJqzuldHf6YRnBnPqXuxbW5tc0r/T7iG3VIBDpHn4Pr3yklZuvITppdl5QJaY1qv1kwU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708727283; c=relaxed/simple; bh=Qnqb1eBB29l4t9zPr43pNKPfmnLZ3sU7DLXEuMg+ZFU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=VlkYJ1Jy+S1L+ahpBY82iGRcLW20RpMCjQYnMbfA98pnYo458R7uBEpQq/s/A+P7Fo9uT+OaqesR01g0WCDOluuKIbvo/npYMwGfffPzsmnI2Zf2MAAmffOX50vynXHVSiKSn+cGnPt9m/ibaNRWgqXe+uuy5rnZs51SHAZK9xQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=RVEWYgqw; arc=fail smtp.client-ip=40.107.220.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="RVEWYgqw" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mHHssc2rQJ6HpciTbtIMCFEsW0E03/4Qe0rRZo6KTSOxtkw1/fkjpxUEeMlpN48CKIE9vh0OoXeRs03z/8aOEZ65zkt01O5CWUlHA62lJAidU4NMJ+URg/9GpxRyFFAl+ePyGU64VCHShGIjVoQB9xlnvn7569SFLTExpILtYhbDFszzcQLeeYtwKrb6zapmh3le4YVE3pJ9SPRBgRhTXdmXNhhxNYZ508wGoUKhofIa3o7plVkH2VtDx2/1nNbUbWGDBFEg/s/34x/wXg0nFF20hpE27K9Vkbj+z4EsdZR2bLF2OH0BQbUvnfbRRTk9NNjoSVOZmReC33BU18Hjpg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=FfOayPHFQ+al/6slIZzHwz1d+6H0z3DlaPE6J9y4+t0=; b=Sza4jk3WsSadOQalo9ivAv+LrOLcOQu/1w1I//cVxsyrtA3giyA39BhpYC7jlrTZ9tdAvwgF5jw+njkA/KN48rhJpu4moZwSlkzZA4O9lX+ytkNqj786cPuhBRdxaGFK/BG6/FAlijdrmsomSMFNGHALbs8KIuZJcpS8y4quH6nLkzuI41/ylkUjYSfVP8iaiWrlwpoC3Y/quFE6VfTfH+nd8gdKharZ+IS7RfBlpGop1IhqYkAnHKNExN0cvbt+DEAin9LF9BsYx4bhJX/9Iro8JOFT4OsBOjjGsobtlT9MAp1u8OERwwsVbcNBRpGMClDsPImXECmxE3pGO1nwlg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FfOayPHFQ+al/6slIZzHwz1d+6H0z3DlaPE6J9y4+t0=; b=RVEWYgqwqPCdF33NQkyig4yA+84yodr72KNsDT0PLVw5PAGR/OT5DWJkHgw63uZiHoU8WI/qyZkbPUeA66guO9ccInywGHPlfKoV2/CTUh/wxjD3p/DCQUqO0yFaFoTrigSCiE+SwPOQMZBj53kB2daJ70WVDm2rQfm9getSI1U= Received: from SA9PR03CA0025.namprd03.prod.outlook.com (2603:10b6:806:20::30) by MW4PR12MB7015.namprd12.prod.outlook.com (2603:10b6:303:218::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.24; Fri, 23 Feb 2024 22:28:00 +0000 Received: from SA2PEPF000015C8.namprd03.prod.outlook.com (2603:10b6:806:20:cafe::9f) by SA9PR03CA0025.outlook.office365.com (2603:10b6:806:20::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.45 via Frontend Transport; Fri, 23 Feb 2024 22:27:59 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SA2PEPF000015C8.mail.protection.outlook.com (10.167.241.198) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7292.25 via Frontend Transport; Fri, 23 Feb 2024 22:27:59 +0000 Received: from driver-dev1.pensando.io (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Fri, 23 Feb 2024 16:27:58 -0600 From: Shannon Nelson To: , , , , CC: , , Shannon Nelson Subject: [PATCH net 2/3] ionic: check cmd_regs before copying in or out Date: Fri, 23 Feb 2024 14:27:41 -0800 Message-ID: <20240223222742.13923-3-shannon.nelson@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240223222742.13923-1-shannon.nelson@amd.com> References: <20240223222742.13923-1-shannon.nelson@amd.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF000015C8:EE_|MW4PR12MB7015:EE_ X-MS-Office365-Filtering-Correlation-Id: 2342e92b-7e73-41fd-bd52-08dc34beb109 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fl/s/H65kMcKxtUsdtsHlxajDa5r9W5o4oJ1I9/A54pKH/QuV0BeD2YsYc9uz09xnjkNMLpDoRVQcml7ZNqsVOnx3VRg6aeMzoYdZXoLQXrFaAKAp+4ZGxaz34+fMQBsrZEAzrEpcIdnfBnoQoCyLd/VAlMEax9bWCNkFxEqpE5ThrSwBENuyt8SiwDNNVNU05V8p6t1fYbgf6TOrWU2crGKFhFSfejFnEwbiwg0YhycdEd9Y7QQ1dVdVGctIZ5KhD19pVbpDohPQ1R6sQo7zMw0jTNh4vKk1k0A6VsbgOnrD7PoTCzbf39J3RkC+D/k5YWcwRujFsRDat9/hBR1/BQ2OAwThdNQjhGB1uf4uOY34eUi6fRQ/2Z54+WiRUW4nPYCVdsPaYxY9ApKU8uLzyuKicUVOcIXiaehNnWVCuGtR4UyP50qRXPLLpMVAoU6z+EEIt4ruBF2E6tAAlsUlLk5NraZiF8Uv3l/0lLgzfku0+gWzB4md3tXN6TpB2TW8XyL2fXSMW4mAbemtt5DzPj0EZmPhz9drpbhGaIPSQDQR9DB4c8rWIyERZ+FiZuEIU5zf2GQ2QS/9ZO8Z1RPPWpClJB4EcmeoIkiR8V82vhcwONbE5tjbxPLb2ghZi87M10OVLSF0Xi8BtQLKVRN8y2pnWdfLMvCCeM93VZJ3uw= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(36860700004)(46966006)(40470700004);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2024 22:27:59.7778 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2342e92b-7e73-41fd-bd52-08dc34beb109 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF000015C8.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7015 X-Patchwork-Delegate: kuba@kernel.org Since we now have potential cases of NULL cmd_regs and info_regs during a reset recovery, and left NULL if a reset recovery has failed, we need to check that they exist before we use them. Most of the cases were covered in the original patch where we verify before doing the ioreadb() for health or cmd status. However, we need to protect a few uses of io mem that could be hit in error recovery or asynchronous threads calls as well (e.g. ethtool or devlink handlers). Fixes: 219e183272b4 ("ionic: no fw read when PCI reset failed") Reviewed-by: Brett Creeley Signed-off-by: Shannon Nelson --- drivers/net/ethernet/pensando/ionic/ionic_dev.c | 10 ++++++++++ drivers/net/ethernet/pensando/ionic/ionic_ethtool.c | 7 ++++++- drivers/net/ethernet/pensando/ionic/ionic_fw.c | 5 +++++ drivers/net/ethernet/pensando/ionic/ionic_main.c | 3 +++ 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/pensando/ionic/ionic_dev.c b/drivers/net/ethernet/pensando/ionic/ionic_dev.c index 1e7c71f7f081..746072b4dbd0 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_dev.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_dev.c @@ -319,22 +319,32 @@ int ionic_heartbeat_check(struct ionic *ionic) u8 ionic_dev_cmd_status(struct ionic_dev *idev) { + if (!idev->dev_cmd_regs) + return (u8)PCI_ERROR_RESPONSE; return ioread8(&idev->dev_cmd_regs->comp.comp.status); } bool ionic_dev_cmd_done(struct ionic_dev *idev) { + if (!idev->dev_cmd_regs) + return false; return ioread32(&idev->dev_cmd_regs->done) & IONIC_DEV_CMD_DONE; } void ionic_dev_cmd_comp(struct ionic_dev *idev, union ionic_dev_cmd_comp *comp) { + if (!idev->dev_cmd_regs) + return; memcpy_fromio(comp, &idev->dev_cmd_regs->comp, sizeof(*comp)); } void ionic_dev_cmd_go(struct ionic_dev *idev, union ionic_dev_cmd *cmd) { idev->opcode = cmd->cmd.opcode; + + if (!idev->dev_cmd_regs) + return; + memcpy_toio(&idev->dev_cmd_regs->cmd, cmd, sizeof(*cmd)); iowrite32(0, &idev->dev_cmd_regs->done); iowrite32(1, &idev->dev_cmd_regs->doorbell); diff --git a/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c b/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c index cd3c0b01402e..0ffc9c4904ac 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_ethtool.c @@ -90,18 +90,23 @@ static void ionic_get_regs(struct net_device *netdev, struct ethtool_regs *regs, void *p) { struct ionic_lif *lif = netdev_priv(netdev); + struct ionic_dev *idev; unsigned int offset; unsigned int size; regs->version = IONIC_DEV_CMD_REG_VERSION; + idev = &lif->ionic->idev; + if (!idev->dev_info_regs) + return; + offset = 0; size = IONIC_DEV_INFO_REG_COUNT * sizeof(u32); memcpy_fromio(p + offset, lif->ionic->idev.dev_info_regs->words, size); offset += size; size = IONIC_DEV_CMD_REG_COUNT * sizeof(u32); - memcpy_fromio(p + offset, lif->ionic->idev.dev_cmd_regs->words, size); + memcpy_fromio(p + offset, idev->dev_cmd_regs->words, size); } static void ionic_get_link_ext_stats(struct net_device *netdev, diff --git a/drivers/net/ethernet/pensando/ionic/ionic_fw.c b/drivers/net/ethernet/pensando/ionic/ionic_fw.c index 5f40324cd243..3c209c1a2337 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_fw.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_fw.c @@ -109,6 +109,11 @@ int ionic_firmware_update(struct ionic_lif *lif, const struct firmware *fw, dl = priv_to_devlink(ionic); devlink_flash_update_status_notify(dl, "Preparing to flash", NULL, 0, 0); + if (!idev->dev_cmd_regs) { + err = -ENXIO; + goto err_out; + } + buf_sz = sizeof(idev->dev_cmd_regs->data); netdev_dbg(netdev, diff --git a/drivers/net/ethernet/pensando/ionic/ionic_main.c b/drivers/net/ethernet/pensando/ionic/ionic_main.c index 165ab08ad2dd..2f479de329fe 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_main.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_main.c @@ -416,6 +416,9 @@ static void ionic_dev_cmd_clean(struct ionic *ionic) { struct ionic_dev *idev = &ionic->idev; + if (!idev->dev_cmd_regs) + return; + iowrite32(0, &idev->dev_cmd_regs->doorbell); memset_io(&idev->dev_cmd_regs->cmd, 0, sizeof(idev->dev_cmd_regs->cmd)); } From patchwork Fri Feb 23 22:27:42 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Nelson, Shannon" X-Patchwork-Id: 13570127 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2066.outbound.protection.outlook.com [40.107.94.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F1F914DFEF for ; Fri, 23 Feb 2024 22:28:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.66 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708727284; cv=fail; b=qJGyqajiALAMxTeWRovfij499nLPFxVLhVIP2bM0ms4n09Wcl+kt6x26aA99uFtwxsRENmHHNk89iouxTpiUAmmU9qSTQCHaB+Wl5SvzWbTdhf1OccR78dHhm6Z2FkTBdAzulJCKpQrOFd2J8/bCFIFOQKajKS+5YfzY35nTrY0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708727284; c=relaxed/simple; bh=HRkurGl7oDRE5vfFtooEx7cX/eQ5I1Vphq1Txms/NEI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=WMehcrHqhJfNGhGTThnhYktCuFjgrOFTbqElq9UvixeD0j2+A46yZtmuDDREGZ19KB8+jO0T2dlqw2CVdFFZWSFUj1lDHIs39xAyLoSXMEh4vJpcq6hHO4bvv+ubHB8z//eHMJqT+aPDBkAIJKrgRnaVgL6fqLLr6gaFNS+y4Ic= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=vll6A42v; arc=fail smtp.client-ip=40.107.94.66 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="vll6A42v" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Eth9R5VNaVdGlLK0+/XF7nIOhtlaYhmDiIEqHawyiqv/HjX8ovfu91XXWLvHYoh86QoqLNdXNTLC6INmSSUkcg3P30Th2CoWMVtDZo2p3RJOnRYattyjaHRkNejhnZPLyofMYCCNdqiHUJMkEvaxCQ4ehlts8KEF01qBCt61uXqVMshIIczki8WhWyYSKF1c/xcmDqhz8B1mZ07phB0BSYOpGc4VoGe6VIXU6pS0SIQrEo4pdOzzVKiI2OnZxq8riw/3QHX4qi81z6Ojn42DWWo4dRPL+hkk235Y1bOOxsLdDIch66pQy0M3kI6fH4OAzTBqyHBvA3OyLJPi4HyXSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=D1C/+WeYEoxdqpLQHnwoCwvAdfW+XPY9SDI+Qkj/N/8=; b=KlWC4AUMU9uEeysHeXaPVKB2zKMY4qUukWT5rgbfrC+LzYRw+jb0DwPZfsa2XkRIDRUWr21ELyPig3Dgp73FqGVbllEi7ijryzN3UnoCQkUAQMqVzoMo/hXyhzuA7S/IPnEhj7pANuHX3j0Xm6jNffztXa/N/8AHHlieRaEkI3LLPqe4Y6Lnfo85ILnaOWm/H7rmTAsOeHL6Kheu2OVoD3jPapW2+LLnGkyVYcqWgw/RIUcXKspByHkMe1f9fiSqBOkXsZ30PFqDup/OwCH7e+7Xqy4A2iUqXQizy5v7G7w8FRJB0iFXIZbDjgYQG8otM4vThELr1Cch/H7tiLdUCg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=D1C/+WeYEoxdqpLQHnwoCwvAdfW+XPY9SDI+Qkj/N/8=; b=vll6A42veZBx8UGPqJOa1YVfB5NqR8+XgnPprvY9wObi6OnUTWUbHj6Pok3n1mgf4lKbjJlreBQNet5/iBNt14krh9wI1tIctBH75DJ8zxo0yziVHpy/hpbsL3lT7RQOTCHhcH0ffFlMW5VIUid4vVhB6JUwU3xthyg8XfxhKnM= Received: from SA9PR03CA0025.namprd03.prod.outlook.com (2603:10b6:806:20::30) by CY8PR12MB7193.namprd12.prod.outlook.com (2603:10b6:930:5b::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.20; Fri, 23 Feb 2024 22:28:00 +0000 Received: from SA2PEPF000015C8.namprd03.prod.outlook.com (2603:10b6:806:20:cafe::7c) by SA9PR03CA0025.outlook.office365.com (2603:10b6:806:20::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.45 via Frontend Transport; Fri, 23 Feb 2024 22:28:00 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by SA2PEPF000015C8.mail.protection.outlook.com (10.167.241.198) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7292.25 via Frontend Transport; Fri, 23 Feb 2024 22:28:00 +0000 Received: from driver-dev1.pensando.io (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Fri, 23 Feb 2024 16:27:59 -0600 From: Shannon Nelson To: , , , , CC: , , Shannon Nelson Subject: [PATCH net 3/3] ionic: restore netdev feature bits after reset Date: Fri, 23 Feb 2024 14:27:42 -0800 Message-ID: <20240223222742.13923-4-shannon.nelson@amd.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20240223222742.13923-1-shannon.nelson@amd.com> References: <20240223222742.13923-1-shannon.nelson@amd.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: SATLEXMB04.amd.com (10.181.40.145) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA2PEPF000015C8:EE_|CY8PR12MB7193:EE_ X-MS-Office365-Filtering-Correlation-Id: dcf5c19b-2262-4789-5590-08dc34beb164 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +P9E4bNUNw9Bbj6mdGjnDwE1izAJ0tbs4HOWjVbxvQvPQSvpcOLE18AOUXii/slFxt6BO3OYbZUQRRJNzcwwVGRlw7rJzO9QZB/TFNaYLA3uXXnHUnyY4bjTrOXsVnk7XlE5D4SLPQtYMZkgGr1mQsZBjDe9MRXExwT9/tDSjPanmN/LgxqYsTdxkdGuUdzeY34RYhlOfq/4angbWF7B5IZgPXf4Xfr8MiOCDpnSnzUEj8vdysDVpG3qv7kNYr41pqkttApe4u+Oi7AirDZVAFAsuWaa/XUQspSVymYTrop8XRDJ9pbJAW7Nsdf8+CWYnCXLeQdiQGrJIP2sh+2roBT9xzf6T7xgeSBfEAhddRLjXI50adUfrLvdatG9g4CXr64nhpuAr4thIpwBwdWukKFZnbXPwWMz7ljxTOt4nWbDW6gzgxrOw7iyxUOklL1vD+kkN+dg7juk+/vjkb8DmWnVj3sqdH10Awz7gD+8KVX5hP/lWAgXFZzNO1nII2iW0yZPozKPQn1l5DwTN+ai24Jel+nUNPuWA6vU/kD6jzHZ0XTkKi8xP9mFhIp6a36pINbf3TongUGGnIe7egLaC3Zxj5VExPUiz4IkE1XU75XlN7JoBh3LFKWj1bQuZAKze4/XQaYKQ93LDpZ3ePMt/Vm619tX4pdHau2jrE0bD/0= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(36860700004)(40470700004)(46966006);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Feb 2024 22:28:00.3716 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: dcf5c19b-2262-4789-5590-08dc34beb164 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: SA2PEPF000015C8.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7193 X-Patchwork-Delegate: kuba@kernel.org When rebuilding the lif after an FLR, be sure to restore the current netdev features, not do the usual first time feature init. This prevents losing user changes to things like TSO or vlan tagging states. Fixes: 45b84188a0a4 ("ionic: keep filters across FLR") Reviewed-by: Brett Creeley Signed-off-by: Shannon Nelson --- drivers/net/ethernet/pensando/ionic/ionic_lif.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c b/drivers/net/ethernet/pensando/ionic/ionic_lif.c index cf2d5ad7b68c..fcb44ceeb6aa 100644 --- a/drivers/net/ethernet/pensando/ionic/ionic_lif.c +++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.c @@ -3559,7 +3559,10 @@ int ionic_lif_init(struct ionic_lif *lif) goto err_out_notifyq_deinit; } - err = ionic_init_nic_features(lif); + if (test_bit(IONIC_LIF_F_FW_RESET, lif->state)) + err = ionic_set_nic_features(lif, lif->netdev->features); + else + err = ionic_init_nic_features(lif); if (err) goto err_out_notifyq_deinit;