Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3593797pxb; Mon, 24 Jan 2022 13:04:31 -0800 (PST) X-Google-Smtp-Source: ABdhPJyBtC1ApDctdHKnzTl4O8EiJayI+eYXg72qm0vbwOd9w2zLxHxAKtguyUgQASBEVNenfp7O X-Received: by 2002:a05:6a00:2c3:b0:4c9:ef02:e252 with SMTP id b3-20020a056a0002c300b004c9ef02e252mr3842514pft.64.1643058270941; Mon, 24 Jan 2022 13:04:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643058270; cv=none; d=google.com; s=arc-20160816; b=lCkBLizR7O6xrNUWlYZkolekepuwqh21SQ8jGqT1ZuiZFSY1Y2XkG321U/uznV3FB7 zfUXiKYEc0FsJ2Xh4DlQuubc3Q16JRPaQzC9r7sGJcr5CZMZmiRLEeMSKJElkI8aNsy/ nzWXYtAP4hIBlmUIyuePKUuPU3C2J/teaQjJ2xImzkwApZgZxXPG0JDTIdstrFZc6jKD Z5rvHR3P9Uy4JtrKICjW+Js2v+G4DOcXTunoSCuVWzUh+aHlD+YRPkdGHkjCxg8HaI+G 9QdVmXvOaCcS/XDtcW1wJULRnf5Iiw7EkoQQi8OkwWOiQUzz6Noa+yyziwtWvBiN6yYW Hn4w== 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=qVy9da6fwdxmUKnpiv6iLSEixvcZNDQKZP1BttUmJTA=; b=lB/CQQBmqcu1DOtNh/ZRWLvPDX3KcOJH6JruZd7yoGh71BGkvo3jCxdJXZ7Uee2rmC XS3CdG+umMO2LAVS/qKs4+Nu6Of36Ne6jSFxDSawqt4yJPeNEc2SKUfEaWwaz/Nh5F0U Zwc9Mjx4EfJTRHyjD3cJOXJN3qjTVm1phDga8neFPAhC0zeHd2FAbBTYXlCq08X2QkFk JLQjs0FOAPRTEPiP4VjQbltD9lulHLQYDL4H1EKTqH0qlu0FmPihafb4XC0PKBepkHQK 56lKKZDKgwTIlp5MCJIuqGuHcuuDTef4Q27EsiZVW44MKx9JFNDdqIHnMKjo21uiyrot I4vA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=DTFGqyhW; 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 a14si8698927pgw.511.2022.01.24.13.04.17; Mon, 24 Jan 2022 13:04:30 -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=DTFGqyhW; 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 S1347824AbiAXU2K (ORCPT + 99 others); Mon, 24 Jan 2022 15:28:10 -0500 Received: from ams.source.kernel.org ([145.40.68.75]:49166 "EHLO ams.source.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1378055AbiAXUGO (ORCPT ); Mon, 24 Jan 2022 15:06:14 -0500 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 674E4B81229; Mon, 24 Jan 2022 20:06:12 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 8BF61C340E5; Mon, 24 Jan 2022 20:06:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643054771; bh=O/8B47WCHt/7NggE2om+s/HBijeVuMCAcR01gd/vuYs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DTFGqyhWIyMP4Hzzev7ieGnuBGdVYFD3vUUrrYzBgK10so0Gs/ypEpPkUCZ8k0kdF L64GZEcssYkSIOPOtx91tzogZ9EEMx27RTd9JM79wntejNa1yGxyP8nFH3lV40Xz8b svCzF8E2wRS6cKFywlSEW8M6ycJtbmODWDMgfD5A= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, =?UTF-8?q?Pali=20Roh=C3=A1r?= , Lorenzo Pieralisi Subject: [PATCH 5.10 464/563] PCI: pci-bridge-emul: Properly mark reserved PCIe bits in PCI config space Date: Mon, 24 Jan 2022 19:43:49 +0100 Message-Id: <20220124184040.507268441@linuxfoundation.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220124184024.407936072@linuxfoundation.org> References: <20220124184024.407936072@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: Pali Rohár commit 7b067ac63a5730d2fae18399fed7e45f23d36912 upstream. Some bits in PCI config space are reserved when device is PCIe. Properly define behavior of PCI registers for PCIe emulated bridge and ensure that it would not be possible change these reserved bits. Link: https://lore.kernel.org/r/20211124155944.1290-3-pali@kernel.org Fixes: 23a5fba4d941 ("PCI: Introduce PCI bridge emulated config space common logic") Signed-off-by: Pali Rohár Signed-off-by: Lorenzo Pieralisi Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman --- drivers/pci/pci-bridge-emul.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) --- a/drivers/pci/pci-bridge-emul.c +++ b/drivers/pci/pci-bridge-emul.c @@ -295,6 +295,27 @@ int pci_bridge_emul_init(struct pci_brid kfree(bridge->pci_regs_behavior); return -ENOMEM; } + /* These bits are applicable only for PCI and reserved on PCIe */ + bridge->pci_regs_behavior[PCI_CACHE_LINE_SIZE / 4].ro &= + ~GENMASK(15, 8); + bridge->pci_regs_behavior[PCI_COMMAND / 4].ro &= + ~((PCI_COMMAND_SPECIAL | PCI_COMMAND_INVALIDATE | + PCI_COMMAND_VGA_PALETTE | PCI_COMMAND_WAIT | + PCI_COMMAND_FAST_BACK) | + (PCI_STATUS_66MHZ | PCI_STATUS_FAST_BACK | + PCI_STATUS_DEVSEL_MASK) << 16); + bridge->pci_regs_behavior[PCI_PRIMARY_BUS / 4].ro &= + ~GENMASK(31, 24); + bridge->pci_regs_behavior[PCI_IO_BASE / 4].ro &= + ~((PCI_STATUS_66MHZ | PCI_STATUS_FAST_BACK | + PCI_STATUS_DEVSEL_MASK) << 16); + bridge->pci_regs_behavior[PCI_INTERRUPT_LINE / 4].rw &= + ~((PCI_BRIDGE_CTL_MASTER_ABORT | + BIT(8) | BIT(9) | BIT(11)) << 16); + bridge->pci_regs_behavior[PCI_INTERRUPT_LINE / 4].ro &= + ~((PCI_BRIDGE_CTL_FAST_BACK) << 16); + bridge->pci_regs_behavior[PCI_INTERRUPT_LINE / 4].w1c &= + ~(BIT(10) << 16); } if (flags & PCI_BRIDGE_EMUL_NO_PREFETCHABLE_BAR) {