Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp518842pxb; Wed, 3 Mar 2021 08:44:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJyAeEgPOvEXTmbBFtkog7ClIDhNyGioxY/OY3mhoa7gUrCyJotAMVDlDOot8O/QtucLs9ou X-Received: by 2002:aa7:c044:: with SMTP id k4mr134805edo.47.1614789897516; Wed, 03 Mar 2021 08:44:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1614789897; cv=none; d=google.com; s=arc-20160816; b=IGi+7X2eJV7nN8XH9gW4PqWJMomhkTatuPk6xBHk4DB6qAO+hDusGK3dhM+e37k3mv 5DVaZrboX4Ia2ZJ5EH/z8tCNPrce3mNyE/zulxE94Xs8IeFxVACBeSbPBZMj83Hp+XfO u+C9KbvWPXc4LZW2oAcB05phMd0Xo1d+c5EO31uDJFCxZ9e96/xeF83WaiqL618DiqLn Twzyd6LZLSMfArPyMa7IwLYUaYZjqxKZDSwQP8nIoKyNWyAS/fTN/2MYvs/g7PRSV9ss lav9E83kdRa0UjWd1q4+oUFEVu6jxGPZbXvVNfLN9o95sz8C5T+1FH7UOTSNsI87aaBI 0Wmw== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=1nudOYA28oZrltPHObMrFYao4bw11ri50FI3gvG0kiE=; b=UKFRL3vujCgkzIt2u6k6GoZ7G5/mM1jbhwDMWV0Jw0Pn4DMumGmWD0+XYn3lfoRTAC tv83N2heIKzlhDpzOhI83nh/zILJWZO3ZKarzKsb5/igob4ViBu6HiajJddYnZHPXouu T/iHE73KsiFG9USh7sWVjLxgAv8usgwg80kwDPHB5Db1xTuMJB8APCs/Wr450vErP6F0 r0kdoo9B22Pxnez5sS0JRm6cNKPcylqA7Q5GQLeZ+5SCOcWTZS8+RwZIGTZ5cHIpMOl7 sc2tZ/fRGR+D1R4xOHBXv1DD/ls3ZIPjAMg5dHNm20nglWUzosB/4lUnmAcGsMygIsP4 2DDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=mXEIDMVU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a23si13754556ejx.146.2021.03.03.08.44.20; Wed, 03 Mar 2021 08:44:57 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=mXEIDMVU; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344813AbhCBAQo (ORCPT + 99 others); Mon, 1 Mar 2021 19:16:44 -0500 Received: from mail.kernel.org ([198.145.29.99]:39694 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239546AbhCASXi (ORCPT ); Mon, 1 Mar 2021 13:23:38 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 57A2C65132; Mon, 1 Mar 2021 17:03:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1614618222; bh=DRL8Qftwm1Qrd2JQGS5Zl6XByw9sbS+8gog7OZHIZ1s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mXEIDMVUNv2o1rLPVemdHtJOn1mVWXeKhZlxGNm8hlxUWUq1xtawwHKIfpaIuhJ0J eBAwegH//mcNbdx/apbyt8EWSjXxtH38kC6XffJ6BRTYVGg9VwiX0Kp2owIm+qNABb CN230zWa8M77AmLGI95rb4qgbSebrHFuxALPxm58= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ard Biesheuvel , Bjorn Helgaas Subject: [PATCH 5.10 010/663] PCI: Decline to resize resources if boot config must be preserved Date: Mon, 1 Mar 2021 17:04:18 +0100 Message-Id: <20210301161142.289000449@linuxfoundation.org> X-Mailer: git-send-email 2.30.1 In-Reply-To: <20210301161141.760350206@linuxfoundation.org> References: <20210301161141.760350206@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ard Biesheuvel commit 729e3a669d1b62e9876a671ac03ccba399a23b68 upstream. The _DSM #5 method in the ACPI host bridge object tells us whether the OS must preserve the resource assignments done by firmware. If this is the case, we should not permit drivers to resize BARs on the fly. Make pci_resize_resource() take this into account. Link: https://lore.kernel.org/r/20210109095353.13417-1-ardb@kernel.org Signed-off-by: Ard Biesheuvel Signed-off-by: Bjorn Helgaas Cc: stable@vger.kernel.org # v5.4+ Signed-off-by: Greg Kroah-Hartman --- drivers/pci/setup-res.c | 6 ++++++ 1 file changed, 6 insertions(+) --- a/drivers/pci/setup-res.c +++ b/drivers/pci/setup-res.c @@ -410,10 +410,16 @@ EXPORT_SYMBOL(pci_release_resource); int pci_resize_resource(struct pci_dev *dev, int resno, int size) { struct resource *res = dev->resource + resno; + struct pci_host_bridge *host; int old, ret; u32 sizes; u16 cmd; + /* Check if we must preserve the firmware's resource assignment */ + host = pci_find_host_bridge(dev->bus); + if (host->preserve_config) + return -ENOTSUPP; + /* Make sure the resource isn't assigned before resizing it. */ if (!(res->flags & IORESOURCE_UNSET)) return -EBUSY;