Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp981311ybt; Wed, 17 Jun 2020 19:50:45 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxkFpry3QHvQyoboeBp0/5RzktE2jZpuPIf3nLItmymEzhQgILV52nbu0bCYHFE+NrBGu48 X-Received: by 2002:a17:906:d153:: with SMTP id br19mr1999913ejb.201.1592448645764; Wed, 17 Jun 2020 19:50:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592448645; cv=none; d=google.com; s=arc-20160816; b=C4b+UdPPZtrxt7rdYd5E7jTfUYAJOD0WLcSN7ZrMqA2/yawvwW5OtqWZV18KOa2PcM DhXGPexxATTxeHij01y3R3Vxsbo08T9Hfx0IpxxTExlaJO3CH8qQvoqxKuwA/IbAeT9C 97S6MzwEkHJnOHcQSrGFM9mMxGBbhnfpx7pMuHHZ6e2mQLqSA5JBY18+M6U8ONaxPuIE vfr9cVsUvwcqf6SrkWnRdwnd39srprHdHBYE9DhJxiWFzsZHvxhZ65NQNDQcQQvFyY35 w9qNSQp7v5WWRBAtMTa+PDAQBjf97LZ6q1CedO8c62ANZuercxXYHfaKPe9B3PDUmBIP KGSg== 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=AvtNYxpWXsQSZeTMOkWdf5qsXPjxxD5J0FIoM+BPUAM=; b=J2BINYumUANuSwybsRhGDOkECvnaYz+clTNnNI/M4OfLb/WIiWrhu9+nHHbc7CdFDW PPGaq1ZK9Ek/QogTkBip2Z655kOjesxHF8UVgSat22SGPstGsuFOkdY0Y4WnmPl13Taf BQCkZCNLL9NLz610aT2pflpzNdJpXHk6JQlUYbLa4aeRiwp9QUUIjrhZ0rnmZzcQ29Kz zKd6DvxmlZo1A91+vTP7lDH5y+BSc9Nc0TmwEoObBQ6hpnuDaIxB8FfG3jojnvCy0TKl QGbulcP28pr2l3qUjWNmVnp4nC5+76mYJ5eXEfcF/I0Gda8iINrmiyqHJ/szEN9PUgMT hWVg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=rtAkXYfg; 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 ha3si1064825ejb.563.2020.06.17.19.50.23; Wed, 17 Jun 2020 19:50:45 -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=rtAkXYfg; 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 S1732095AbgFRCsd (ORCPT + 99 others); Wed, 17 Jun 2020 22:48:33 -0400 Received: from mail.kernel.org ([198.145.29.99]:36676 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728339AbgFRBJx (ORCPT ); Wed, 17 Jun 2020 21:09:53 -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 9F29421D91; Thu, 18 Jun 2020 01:09:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592442593; bh=nl9NYlgAXSfyqKGrTboQWnp3F6s6Vh5TfMjH/+NcGLE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rtAkXYfgwTnCGBI/JklIZpOxIWzxezNTT8ABB5dE0WGpsNeKg6YICWf6+MHf3UILe zmxgRjbId/kMOUzmMhXrsLWWGwKRSZVQ8EUB2Cz+Ha/2mvk3tcbzVa3lM9N/L6bLCR M9VTDnfJ3yIIgOCW0r27AD4Dr1tm5EDOWj2NF9rY= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Jon Derrick , Lorenzo Pieralisi , Sasha Levin , linux-pci@vger.kernel.org Subject: [PATCH AUTOSEL 5.7 082/388] PCI: vmd: Filter resource type bits from shadow register Date: Wed, 17 Jun 2020 21:02:59 -0400 Message-Id: <20200618010805.600873-82-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 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: Jon Derrick [ Upstream commit 3e5095eebe015d5a4d566aa5e03c8621add5f0a7 ] Versions of VMD with the Host Physical Address shadow register use this register to calculate the bus address offset needed to do guest passthrough of the domain. This register shadows the Host Physical Address registers including the resource type bits. After calculating the offset, the extra resource type bits lead to the VMD resources being over-provisioned at the front and under-provisioned at the back. Example: pci 10000:80:02.0: reg 0x10: [mem 0xf801fffc-0xf803fffb 64bit] Expected: pci 10000:80:02.0: reg 0x10: [mem 0xf8020000-0xf803ffff 64bit] If other devices are mapped in the over-provisioned front, it could lead to resource conflict issues with VMD or those devices. Link: https://lore.kernel.org/r/20200528030240.16024-3-jonathan.derrick@intel.com Fixes: a1a30170138c9 ("PCI: vmd: Fix shadow offsets to reflect spec changes") Signed-off-by: Jon Derrick Signed-off-by: Lorenzo Pieralisi Signed-off-by: Sasha Levin --- drivers/pci/controller/vmd.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/pci/controller/vmd.c b/drivers/pci/controller/vmd.c index dac91d60701d..e386d4eac407 100644 --- a/drivers/pci/controller/vmd.c +++ b/drivers/pci/controller/vmd.c @@ -445,9 +445,11 @@ static int vmd_enable_domain(struct vmd_dev *vmd, unsigned long features) if (!membar2) return -ENOMEM; offset[0] = vmd->dev->resource[VMD_MEMBAR1].start - - readq(membar2 + MB2_SHADOW_OFFSET); + (readq(membar2 + MB2_SHADOW_OFFSET) & + PCI_BASE_ADDRESS_MEM_MASK); offset[1] = vmd->dev->resource[VMD_MEMBAR2].start - - readq(membar2 + MB2_SHADOW_OFFSET + 8); + (readq(membar2 + MB2_SHADOW_OFFSET + 8) & + PCI_BASE_ADDRESS_MEM_MASK); pci_iounmap(vmd->dev, membar2); } } -- 2.25.1