Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp5983117ybc; Wed, 27 Nov 2019 12:52:58 -0800 (PST) X-Google-Smtp-Source: APXvYqyzcs/O1lRZMTYOEZ3VRp5CnQq82IKMDdd5wAttqtbp48wbrEUjDQyTK4QDFdmYgqzT7D45 X-Received: by 2002:a50:fd95:: with SMTP id o21mr34926926edt.283.1574887978775; Wed, 27 Nov 2019 12:52:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1574887978; cv=none; d=google.com; s=arc-20160816; b=C1DfPBjK3lRNwkIzV81VquzGXcyZ0MX4VnwOwdt3ySeWwPC8V8vRY5ippCMJDs4C10 J8+llyUWJaRPKFCVsaZ8mE9L+wEPSmZgKK9ajee2XQQoyNnl6F2HwGl74+1MFdXqkl3Q +Es2VDzK2uSRXjBWxAll9FCEZdyty/7DVsGm0HbEGEBD/QoeyvDc6lIpOg7c0soJMt39 JdBmZVwcWWVf6NPXBfcdGp7MrD8f0DTnhjOSjlAV93LSG2r0UrVUhDqV7t6r5VPd0Kzv F+WMdJrpnb75+aAne7Z2XLdNQYxmQXPn/XQQv6jbVu5QIFKryWzAroM3YfeA1ccFfP8y Drsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=y2EKzmojibG2lvLX5FbH1UbTiYg/qEX0ux+f/qcuqxA=; b=t5KGafniUQR85Dwr0d9nAbrB9o8w0xlFtQVCeNjtp0Y2MzZah0yh4NTSyqs2M//gUH FWpTTigTYzAnoLFm9MP1zrmHEnzBnoh1JAlY7pjBM5Wrb/VXIP48BFbjYGm72dXYnZs1 JvNvOt9NjNWD4jcfOAbfHPg6GuYt/ZEtxGtJCn9QXG49OFaAA3NQ3vx8CEv6nKuE00B2 /aCt80lcm9X6TU5Xx9cQg1R5wnh+P+L8z3QE69k3gBSh+4Ix2iPglq7q+mXHDxPBiQ9u CpbtwogSkV88glud6RkRqeRjsYC8YNRsBFEh11L6nhW5Lix2KOFxCamlimKoB0Baitto JzSQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=OH4PZ9IE; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d23si10066282ejd.165.2019.11.27.12.52.35; Wed, 27 Nov 2019 12:52:58 -0800 (PST) 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=@kernel.org header.s=default header.b=OH4PZ9IE; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730149AbfK0Usb (ORCPT + 99 others); Wed, 27 Nov 2019 15:48:31 -0500 Received: from mail.kernel.org ([198.145.29.99]:33726 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730141AbfK0Us1 (ORCPT ); Wed, 27 Nov 2019 15:48:27 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 72B5621844; Wed, 27 Nov 2019 20:48:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574887706; bh=m09NQk/hf9MktbOGeBLi3nTN2WP7IyVR6LenXFTYOpY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OH4PZ9IEra5PBMUyw5+Hi1BI9URwSkMGEc+/Krpn68AxP7HWuxbHqWLW9RC0E5Id+ ZVCtxAysWT5jssuluxPz0uBOWFd/vr/us23B+rwo3Y1yclVBEsjOTujZkDO5sPXEKD hnIElpGOP6jFcZXHkh0ThU7+blqQGeLC5zSu4Ji0= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jon Derrick , Lorenzo Pieralisi , Keith Busch , Sasha Levin Subject: [PATCH 4.14 064/211] PCI: vmd: Detach resources after stopping root bus Date: Wed, 27 Nov 2019 21:29:57 +0100 Message-Id: <20191127203059.983587019@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191127203049.431810767@linuxfoundation.org> References: <20191127203049.431810767@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jon Derrick [ Upstream commit dc8af3a827df6d4bb925d3b81b7ec94a7cce9482 ] The VMD removal path calls pci_stop_root_busi(), which tears down the pcie tree, including detaching all of the attached drivers. During driver detachment, devices may use pci_release_region() to release resources. This path relies on the resource being accessible in resource tree. By detaching the child domain from the parent resource domain prior to stopping the bus, we are preventing the list traversal from finding the resource to be freed. If we instead detach the resource after stopping the bus, we will have properly freed the resource and detaching is simply accounting at that point. Without this order, the resource is never freed and is orphaned on VMD removal, leading to a warning: [ 181.940162] Trying to free nonexistent resource Fixes: 2c2c5c5cd213 ("x86/PCI: VMD: Attach VMD resources to parent domain's resource tree") Signed-off-by: Jon Derrick [lorenzo.pieralisi@arm.com: updated commit log] Signed-off-by: Lorenzo Pieralisi Reviewed-by: Keith Busch Signed-off-by: Sasha Levin --- drivers/pci/host/vmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/host/vmd.c b/drivers/pci/host/vmd.c index 2537b022f42d4..af6d5da10ea5f 100644 --- a/drivers/pci/host/vmd.c +++ b/drivers/pci/host/vmd.c @@ -753,12 +753,12 @@ static void vmd_remove(struct pci_dev *dev) { struct vmd_dev *vmd = pci_get_drvdata(dev); - vmd_detach_resources(vmd); sysfs_remove_link(&vmd->dev->dev.kobj, "domain"); pci_stop_root_bus(vmd->bus); pci_remove_root_bus(vmd->bus); vmd_cleanup_srcu(vmd); vmd_teardown_dma_ops(vmd); + vmd_detach_resources(vmd); irq_domain_remove(vmd->irq_domain); } -- 2.20.1