Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp982887ybt; Wed, 17 Jun 2020 19:53:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzw8ZRkscAQ+F9NtES/Q2b8wKh9coj3NJn5aqj8OlwHeq/SGKnGhoNGODUJTCg7T1DB73qh X-Received: by 2002:a50:ee04:: with SMTP id g4mr1998112eds.119.1592448830509; Wed, 17 Jun 2020 19:53:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592448830; cv=none; d=google.com; s=arc-20160816; b=LJyiEjcSYz+copS4gZeAmzINcK2S3Sr+0d1i6nZNna26G3sAVsg0QKKLM0LNnd0gyU BWfRWaOP4xQmosEvSitUQmorTNl6AXdonbmPitRglJPDxGUu3V0glElIW5i+0bMONGfJ y4OwBKG1QlyB7ikIptcO3DsiiqalJF4g2aknYWRgVtxDiO9jGN8FmRVg9+u6cKLI28QX B4qzoWpwC6UJKlHwoSkjR0bgGPwIQ8fiKc27MCNo66L5edwgF4bbHBVSIdSwhjz19vCd 7x1Pop8a20aRMQ6t0+UalbQRstavgB78XMoNPyB0QhA35asXmOMy2CuFf9hgp/vp7y4m s5yw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=8EHQd6QeA+kwAsSwT0xmvSQIXXlTfA8d9wylaNNEwyg=; b=i0OlD24enpEF8IVQ2mnkks3YAjE8HiT5BXRRrS2sgx8EZghVcyf1k26vg8swAwwBzu exmyDEg+8JD6JsvmsgwMfG+JNDWhiBZ6Yiogn9qf1Q+kS0UG9HSL/InTyb8tCz+fcq87 bwLcG6WTO1V9jdoqFUdszDcxBcg9si3QDq+J/mgD0nVMiZY8gr9W/iEF2czJvrsAUF59 OPw7tSaDuJCPZoz8cG8Ou28uwFtb70+Em2UQZ0RgBz0cWDZjSVDvgdiwXw/7TSA3euPG TJrbhg1iDE/hTS44bVtncGgYI0YKLA1/jm33zhc7RXTViLRQywPxywKzPNM1p25U/Rb0 1VDA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=A8lbQzSc; 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=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f2si1124083edt.583.2020.06.17.19.53.28; Wed, 17 Jun 2020 19:53:50 -0700 (PDT) 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=@kernel.org header.s=default header.b=A8lbQzSc; 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=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727937AbgFRBIu (ORCPT + 99 others); Wed, 17 Jun 2020 21:08:50 -0400 Received: from mail.kernel.org ([198.145.29.99]:34600 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727879AbgFRBIn (ORCPT ); Wed, 17 Jun 2020 21:08:43 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C533221D6C; Thu, 18 Jun 2020 01:08:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592442522; bh=1KY3sCatdlrZk8pPgJHuVIdcaXAwLRkY5NEVDPA9ANA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=A8lbQzSc2tHi7oiBVnPdFt/YfuS8zNEuxqssOBhLsvJHeMDUVQQNyIfnm+Are9No3 Sax5GkfW/ZUdeg99gU/srbQ9lUHmbr94AfcvqzHRcX9vLqMpEWRtZoTKjNmHn4+uHA y09ms4w9kdY3BM0EO6FHXGnXlUa4jGIQWRY+0kbA= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ard Biesheuvel , Bjorn Helgaas , =?UTF-8?q?Christian=20K=C3=B6nig?= , Sasha Levin , linux-pci@vger.kernel.org Subject: [PATCH AUTOSEL 5.7 027/388] PCI: Allow pci_resize_resource() for devices on root bus Date: Wed, 17 Jun 2020 21:02:04 -0400 Message-Id: <20200618010805.600873-27-sashal@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200618010805.600873-1-sashal@kernel.org> References: <20200618010805.600873-1-sashal@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ard Biesheuvel [ Upstream commit d09ddd8190fbdc07696bf34b548ae15aa1816714 ] When resizing a BAR, pci_reassign_bridge_resources() is invoked to bring the bridge windows of parent bridges in line with the new BAR assignment. This assumes the device whose BAR is being resized lives on a subordinate bus, but this is not necessarily the case. A device may live on the root bus, in which case dev->bus->self is NULL, and passing a NULL pci_dev pointer to pci_reassign_bridge_resources() will cause it to crash. So let's make the call to pci_reassign_bridge_resources() conditional on whether dev->bus->self is non-NULL in the first place. Fixes: 8bb705e3e79d84e7 ("PCI: Add pci_resize_resource() for resizing BARs") Link: https://lore.kernel.org/r/20200421162256.26887-1-ardb@kernel.org Signed-off-by: Ard Biesheuvel Signed-off-by: Bjorn Helgaas Reviewed-by: Christian König Signed-off-by: Sasha Levin --- drivers/pci/setup-res.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c index d8ca40a97693..d21fa04fa44d 100644 --- a/drivers/pci/setup-res.c +++ b/drivers/pci/setup-res.c @@ -439,10 +439,11 @@ int pci_resize_resource(struct pci_dev *dev, int resno, int size) res->end = res->start + pci_rebar_size_to_bytes(size) - 1; /* Check if the new config works by trying to assign everything. */ - ret = pci_reassign_bridge_resources(dev->bus->self, res->flags); - if (ret) - goto error_resize; - + if (dev->bus->self) { + ret = pci_reassign_bridge_resources(dev->bus->self, res->flags); + if (ret) + goto error_resize; + } return 0; error_resize: -- 2.25.1