Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp987899imm; Sun, 2 Sep 2018 06:06:21 -0700 (PDT) X-Google-Smtp-Source: ANB0VdbzLCQqpRMG29nP6wAmL5v+PiOA5OlwaEUSzeZb67LgJeo9ptqE4BnoggIAqdA+bGUG++Uu X-Received: by 2002:a17:902:1c5:: with SMTP id b63-v6mr24286287plb.82.1535893581754; Sun, 02 Sep 2018 06:06:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1535893581; cv=none; d=google.com; s=arc-20160816; b=R+nfXyCP2JUsjfZpct2dRCuAZaP7OU65Ce4PcGVva5jagTZqrFYxAQxBeYwH2pRR2/ UesYwi47niPGxVm3W0DrARhq/pRLBVE7yH2yedE9nuGJFLv5jqafBh6hwr6W2fp0zugX KALlI5a9nvpxFZrr2NI/nKmSwEeQGSt5vATy7gNdk/ZGIuh8a4au7/BTU18LQRdzntnD Y9W06Ge6PjmXx5Zcp1lsAp6C3LmC5MS460H8z8VFqZ+XXKZC4BH+33+PCgUaex4aERFP pROFjVskpcWoCt/M3x6SG+PrQAL2a05JpDx8huCSVfaIhTbs1gq16Xt8o7Oldrn16dYX 5cJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=Sk9CIC8zbcoOCYKyduy1hybqMQY82zT8Aii1Se3QIvU=; b=r1ZwT0qY8wJaRvJIYMWd2/C3PlgwqtPfsyhCPo9GqS6sC+YjaICTiMA1FcTdMXMYra L2XhWxn059ISeBuDri+KDVd8Ka6MY0gbHTY8NwZCaIBtC3mtuAlf05h7uEW5/hRtFaRM +UQp6alNZztBcWgNHCqesDVo1etTR/LgeTccSYRl3BmqDvK2rcTVHpzYANffzeRkqgRb +d9yvqq2djHvdsMZCnVB+c55jvL7gEy4H7s86o0KLVUgvE9gC1SbE82ZLjxxScV0szcl ZdlYJNVaOJj4p6X4mLK9AC1680Q8PywiEOiCZk6pdLkpDPlH0BC2Vs4Z152+DOEdfsVH lEDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=LljbHKSg; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j24-v6si15137223pfn.363.2018.09.02.06.06.07; Sun, 02 Sep 2018 06:06:21 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=LljbHKSg; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728132AbeIBRUK (ORCPT + 99 others); Sun, 2 Sep 2018 13:20:10 -0400 Received: from mail-dm3nam03on0090.outbound.protection.outlook.com ([104.47.41.90]:39552 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728020AbeIBRUI (ORCPT ); Sun, 2 Sep 2018 13:20:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Sk9CIC8zbcoOCYKyduy1hybqMQY82zT8Aii1Se3QIvU=; b=LljbHKSg/dSoWMtBlre+E2jnvw89QQ16DuyPGZRbd/jNtOlvpHit0Y/0M6kJUEetEcloU3JIA7aXUIDiWP+PvLNeaYRrzSXyRXL5d46P3Je104uYZSYebf/oMLQPegQmdon0reZ+rWu/pSS+YIiLdv9TO56J7vvecX9e6NfblsU= Received: from CY4PR21MB0776.namprd21.prod.outlook.com (10.173.192.22) by CY4PR21MB0135.namprd21.prod.outlook.com (10.173.189.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1122.2; Sun, 2 Sep 2018 13:04:14 +0000 Received: from CY4PR21MB0776.namprd21.prod.outlook.com ([fe80::7c3a:eea8:1391:1611]) by CY4PR21MB0776.namprd21.prod.outlook.com ([fe80::7c3a:eea8:1391:1611%7]) with mapi id 15.20.1143.000; Sun, 2 Sep 2018 13:04:14 +0000 From: Sasha Levin To: "stable@vger.kernel.org" , "linux-kernel@vger.kernel.org" CC: Sam Bobroff , Michael Ellerman , Sasha Levin Subject: [PATCH AUTOSEL 4.18 050/131] powerpc/pseries: fix EEH recovery of some IOV devices Thread-Topic: [PATCH AUTOSEL 4.18 050/131] powerpc/pseries: fix EEH recovery of some IOV devices Thread-Index: AQHUQr1svtGsF+WsOE2oRdLXwT4iHQ== Date: Sun, 2 Sep 2018 13:04:04 +0000 Message-ID: <20180902064601.183036-50-alexander.levin@microsoft.com> References: <20180902064601.183036-1-alexander.levin@microsoft.com> In-Reply-To: <20180902064601.183036-1-alexander.levin@microsoft.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [52.168.54.252] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;CY4PR21MB0135;6:RYCZFZy7intP0Cifi9WbGa75q0bSQwmDXtcrQwU6nixeOVO2+3QZ6yY9TLwY2sTvvzdKMd0zJ+HDBMyNB3VmU1NNXDBgxTFRnFnbrvliWpwW0qor8qogpBOKJmX+lmKUksqzX7yW3VsI6/ol+lRAE+fJjr9wHKTh2pKpCGfcOt/vggKkarkVlGGWtUsMCEW/Agg8lx9E5hQLRx7Bo0yzWlR8o+EAxkQ3JTxj3Zg12sgzSVPAuwLSny74N2PkYGdxyT14dKP1ooGTOnjOsooqAiYEERA/XoR2dB+UoTcFNLyQXmA8jNwvNOIjigC+wDRuo+qf79JQjbAWlaJVTZ6nMZELA87gKDh1l2/rTst7ei8uRo244nZP4N1sUj2bmM9uERWDVNOpnzuokc+BC7FXAmtuke9YQTcxD1ai5GcaQAiUAAtiYwOrl1WeZZGQ/RGVPd2KtfOS3aYUfh25ZiX5hw==;5:W+gD1EDa10ho7anwnXfQ9ef81wjOrxKkZxyZvMO3l5pR3G1lMq+CA19At78N9Q3Fdw9Mc72LCAyjlkNhDxzKkBzNMyI3hlyygZG/RdKhf3wXu/F+Gp/ViKBYUKoYdBQjtZmw8wASt+BN7unbr0gPBl2kclOgDiuWnPoHOnnNgGY=;7:ssDIqrvU/eqDXdb1+YllAQwZ+E7V1wYACE2egwLctHpC1bvot8oHy7kt3TvucpeX7D4HTZxoF1cIdsFVvMMsMjsMwWH3vIfBIzrDhNw1vijnS9L/WXYq9NyKVXgJHAzT2n5V6ol23oN1KWFK9vieEjq3M5MaA0CxTmO6F02Xi5Se0I8pt2/YxBW17LtnQydpWrnS9C+GBnnV+ivXna6kL6zvVVmu1oquEg6f2LIU9WdDHocQS+e6GcA5v9Zx9otu x-ms-office365-filtering-correlation-id: ff0e9ced-f2dd-4e03-5795-08d610d49568 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(7020095)(4652040)(4534165)(4627221)(201703031133081)(201702281549075)(5600074)(711020)(4618075)(2017052603328)(7193020);SRVR:CY4PR21MB0135; x-ms-traffictypediagnostic: CY4PR21MB0135: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alexander.Levin@microsoft.com; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(28532068793085)(89211679590171)(104084551191319); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231340)(944501410)(52105095)(2018427008)(3002001)(10201501046)(93006095)(93001095)(6055026)(149027)(150027)(6041310)(20161123558120)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(201708071742011)(7699049)(76991033);SRVR:CY4PR21MB0135;BCL:0;PCL:0;RULEID:;SRVR:CY4PR21MB0135; x-forefront-prvs: 078310077C x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(39860400002)(136003)(396003)(366004)(376002)(346002)(189003)(199004)(478600001)(76176011)(53936002)(2616005)(6512007)(476003)(446003)(11346002)(36756003)(486006)(106356001)(305945005)(6486002)(6436002)(97736004)(102836004)(6506007)(5250100002)(2906002)(14444005)(256004)(72206003)(2501003)(10290500003)(14454004)(86612001)(186003)(26005)(217873002)(99286004)(86362001)(2900100001)(22452003)(81156014)(81166006)(10090500001)(316002)(107886003)(8676002)(105586002)(6116002)(8936002)(25786009)(4326008)(7736002)(5660300001)(6666003)(110136005)(54906003)(1076002)(68736007)(66066001)(3846002);DIR:OUT;SFP:1102;SCL:1;SRVR:CY4PR21MB0135;H:CY4PR21MB0776.namprd21.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: MmsJjVhQnQ+WpM6oaNfq3QNISIuwbFqAHajLF5o4zzcA0UuN5qp4ny12P0KldyUKuqPEJEYLvHjJcdkGPx7yqb1Kapdy+pFRE6pWU1dwQ6y6UQcnfhjw88tcy8Q1S8rOegxJUFMBLUFm2Ni2Z2s9zAtBi5LVUdYCPEtnSzrW1uiDfstlCgrhYDPdLLnmqjGoamnnuC55BHYPx1EN5PnPH5sseA4rV5W1/vnQs5JWry+Zyonj/mf2VnWkcrenWcnaSs5gG17bK5Vp3oIKSbus5dePj/2CZY/qR3rLIV9hzTNP7Ne133TSnrs7vbWuPUkVVJayQdfHS+JZFv4hX9usXcw8Wt3v7TU90KM2EhAJOac= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: ff0e9ced-f2dd-4e03-5795-08d610d49568 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Sep 2018 13:04:04.0371 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR21MB0135 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sam Bobroff [ Upstream commit b87b9cf4935325c98522823caeddd333022a1c62 ] EEH recovery currently fails on pSeries for some IOV capable PCI devices, if CONFIG_PCI_IOV is on and the hypervisor doesn't provide certain device tree properties for the device. (Found on an IOV capable device using the ipr driver.) Recovery fails in pci_enable_resources() at the check on r->parent, because r->flags is set and r->parent is not. This state is due to sriov_init() setting the start, end and flags members of the IOV BARs but the parent not being set later in pseries_pci_fixup_iov_resources(), because the "ibm,open-sriov-vf-bar-info" property is missing. Correct this by zeroing the resource flags for IOV BARs when they can't be configured (this is the same method used by sriov_init() and __pci_read_base()). VFs cleared this way can't be enabled later, because that requires another device tree property, "ibm,number-of-configurable-vfs" as well as support for the RTAS function "ibm_map_pes". These are all part of hypervisor support for IOV and it seems unlikely that a hypervisor would ever partially, but not fully, support it. (None are currently provided by QEMU/KVM.) Signed-off-by: Sam Bobroff Reviewed-by: Bryant G. Ly Signed-off-by: Michael Ellerman Signed-off-by: Sasha Levin --- arch/powerpc/platforms/pseries/setup.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platform= s/pseries/setup.c index 8a4868a3964b..cb098e962ffe 100644 --- a/arch/powerpc/platforms/pseries/setup.c +++ b/arch/powerpc/platforms/pseries/setup.c @@ -647,6 +647,15 @@ void of_pci_parse_iov_addrs(struct pci_dev *dev, const= int *indexes) } } =20 +static void pseries_disable_sriov_resources(struct pci_dev *pdev) +{ + int i; + + pci_warn(pdev, "No hypervisor support for SR-IOV on this device, IOV BARs= disabled.\n"); + for (i =3D 0; i < PCI_SRIOV_NUM_BARS; i++) + pdev->resource[i + PCI_IOV_RESOURCES].flags =3D 0; +} + static void pseries_pci_fixup_resources(struct pci_dev *pdev) { const int *indexes; @@ -654,10 +663,10 @@ static void pseries_pci_fixup_resources(struct pci_de= v *pdev) =20 /*Firmware must support open sriov otherwise dont configure*/ indexes =3D of_get_property(dn, "ibm,open-sriov-vf-bar-info", NULL); - if (!indexes) - return; - /* Assign the addresses from device tree*/ - of_pci_set_vf_bar_size(pdev, indexes); + if (indexes) + of_pci_set_vf_bar_size(pdev, indexes); + else + pseries_disable_sriov_resources(pdev); } =20 static void pseries_pci_fixup_iov_resources(struct pci_dev *pdev) @@ -669,10 +678,10 @@ static void pseries_pci_fixup_iov_resources(struct pc= i_dev *pdev) return; /*Firmware must support open sriov otherwise dont configure*/ indexes =3D of_get_property(dn, "ibm,open-sriov-vf-bar-info", NULL); - if (!indexes) - return; - /* Assign the addresses from device tree*/ - of_pci_parse_iov_addrs(pdev, indexes); + if (indexes) + of_pci_parse_iov_addrs(pdev, indexes); + else + pseries_disable_sriov_resources(pdev); } =20 static resource_size_t pseries_pci_iov_resource_alignment(struct pci_dev *= pdev, --=20 2.17.1