Received: by 2002:ac0:950c:0:0:0:0:0 with SMTP id f12csp2307888imc; Tue, 12 Mar 2019 11:04:18 -0700 (PDT) X-Google-Smtp-Source: APXvYqxS26B9hLXLeT7GD32K/KgmVGgiwozf6PCmP/92RejoMsBq+3yTXNoZLXUKnI5fUg6UTrSV X-Received: by 2002:a17:902:9a02:: with SMTP id v2mr41202269plp.201.1552413858895; Tue, 12 Mar 2019 11:04:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552413858; cv=none; d=google.com; s=arc-20160816; b=wMGqdjszqYiOnrdUft5WRxTv8Qk+OFHrkhPhL1oS1Bb87siJ0HAV41OkA5PS28xFqa QxA6JqtFRQWSBffgl+a52KC3BsRS5wJ4kVK4l9iTmbTeRyYjmABHafLd4YO9uw96itkb L5Zpe7NspBSzBwc+6hKwFZ4DJQnERWUZ15xpIF5ZWwW5jQnzhqE7XqU/6PRLyjbFNNnv +Y+0oWIrKWzCn5A024HL1q+RhOIXZ3KhdWUGxvPSC6SJpBcfqfKmVSv+X/qhlUu3E130 5Gf/3nM2yKmZCyKBT7ltRWHiLc7YyVaI8RkMuL7dqVfHsb7Vab5hwnR6q6uN0ZojXM7B J/9Q== 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=oIQcLX9QFIkNAiNsTQ2tP+pzy6PBHvWQwok5GxVfjlE=; b=090LG0ngJPFKLzS7gfkHYS/0gFb0Uz4HWp20hl0o1HQbEf/r4vyXh2G6hvxlWOWeXN 1O0i4kcaa1DmMyqR4amwey4rMsdstVzUpzsb/72tgIz8zj60mnsIMMdgjYtJZJC0Cn+Z vLmfHemsY0++f7wxg8iLDhJjXxQlVUlWvJXjFOhAQQDDa9ZDdE7xl5EXI/mOhtxcoVjG NlMMTdJzJemt6Z1XfcjLJwrEJJPTNfR966BLgUnIFzSnXhM6EPvhyZkoQfZqhSQFLLTa CCeNMo2lXr99szmqhm/zi6TRWvb6gg4SZbUOyMU3xPLPQ9MPnU2uN+qjJe50sMtkltRs 46NQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=bECDWiwP; 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 y4si9243601plb.370.2019.03.12.11.04.02; Tue, 12 Mar 2019 11:04:18 -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=@kernel.org header.s=default header.b=bECDWiwP; 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 S1728844AbfCLSBp (ORCPT + 99 others); Tue, 12 Mar 2019 14:01:45 -0400 Received: from mail.kernel.org ([198.145.29.99]:49586 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727816AbfCLRNK (ORCPT ); Tue, 12 Mar 2019 13:13:10 -0400 Received: from localhost (unknown [104.133.8.98]) (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 B8DFF2173C; Tue, 12 Mar 2019 17:13:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1552410789; bh=Y6AD5yQUcHxaAcnbJPtTbKl7/p7YCiYvp8vnaTv4/JY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bECDWiwPbI55IqmF+VdUxyqdE6m3AC6lHjPX0XJjxxAP4hrpy1eVXs87rpVoVzWi0 WXOJjCm+gzoxzF/QcFANq5WtOLPIdk2MjLTEi92Xuxbno/SyTQGBHp0ffkFk03Mhdn CFqTxiTlB0JRW4EKqYnvew/0VRaV5hhadN1WLsvU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Evan Quan , Alex Deucher , Sasha Levin Subject: [PATCH 4.20 102/171] drm/radeon: check if device is root before getting pci speed caps Date: Tue, 12 Mar 2019 10:08:02 -0700 Message-Id: <20190312170356.883488003@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312170347.868927101@linuxfoundation.org> References: <20190312170347.868927101@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore 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 4.20-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit afeff4c16edaa6275b903f82b0561406259aa3a3 ] Check if the device is root rather before attempting to see what speeds the pcie port supports. Fixes a crash with pci passthrough in a VM. Bug: https://bugs.freedesktop.org/show_bug.cgi?id=109366 Reviewed-by: Evan Quan Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin --- drivers/gpu/drm/radeon/ci_dpm.c | 5 +++-- drivers/gpu/drm/radeon/si_dpm.c | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/radeon/ci_dpm.c b/drivers/gpu/drm/radeon/ci_dpm.c index d587779a80b4..a97294ac96d5 100644 --- a/drivers/gpu/drm/radeon/ci_dpm.c +++ b/drivers/gpu/drm/radeon/ci_dpm.c @@ -5676,7 +5676,7 @@ int ci_dpm_init(struct radeon_device *rdev) u16 data_offset, size; u8 frev, crev; struct ci_power_info *pi; - enum pci_bus_speed speed_cap; + enum pci_bus_speed speed_cap = PCI_SPEED_UNKNOWN; struct pci_dev *root = rdev->pdev->bus->self; int ret; @@ -5685,7 +5685,8 @@ int ci_dpm_init(struct radeon_device *rdev) return -ENOMEM; rdev->pm.dpm.priv = pi; - speed_cap = pcie_get_speed_cap(root); + if (!pci_is_root_bus(rdev->pdev->bus)) + speed_cap = pcie_get_speed_cap(root); if (speed_cap == PCI_SPEED_UNKNOWN) { pi->sys_pcie_mask = 0; } else { diff --git a/drivers/gpu/drm/radeon/si_dpm.c b/drivers/gpu/drm/radeon/si_dpm.c index 8fb60b3af015..0a785ef0ab66 100644 --- a/drivers/gpu/drm/radeon/si_dpm.c +++ b/drivers/gpu/drm/radeon/si_dpm.c @@ -6899,7 +6899,7 @@ int si_dpm_init(struct radeon_device *rdev) struct ni_power_info *ni_pi; struct si_power_info *si_pi; struct atom_clock_dividers dividers; - enum pci_bus_speed speed_cap; + enum pci_bus_speed speed_cap = PCI_SPEED_UNKNOWN; struct pci_dev *root = rdev->pdev->bus->self; int ret; @@ -6911,7 +6911,8 @@ int si_dpm_init(struct radeon_device *rdev) eg_pi = &ni_pi->eg; pi = &eg_pi->rv7xx; - speed_cap = pcie_get_speed_cap(root); + if (!pci_is_root_bus(rdev->pdev->bus)) + speed_cap = pcie_get_speed_cap(root); if (speed_cap == PCI_SPEED_UNKNOWN) { si_pi->sys_pcie_mask = 0; } else { -- 2.19.1