Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp1330867rwb; Tue, 4 Oct 2022 20:14:31 -0700 (PDT) X-Google-Smtp-Source: AMsMyM71RZX38KhxjMby6+j0lTdfSHgPUjYmv4HabIzsbQfnE86rVENow/QT2J7KCMxaij9+AA8X X-Received: by 2002:a17:907:2bd4:b0:78d:1c3e:4ae4 with SMTP id gv20-20020a1709072bd400b0078d1c3e4ae4mr4528599ejc.105.1664939671323; Tue, 04 Oct 2022 20:14:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664939671; cv=none; d=google.com; s=arc-20160816; b=CRHyq4EAct5JbavUjuq31gM/1qWDvkGOEWCq7kfUbcRQHP4oYNouvgMDoE/jiqHSCj 0kMQkkJxbORDxU3ipcdtqhAwloeWFfOvqfZX7dMIGBG7mq+0Gnm9JEG37dAx/W8ntl/k mgO0bm4i9WVG42Y151cOHzaW5PZLg4WHjmic4snL+0Q5ve4wFU6aBSjO6Hs9kxi8+j43 xt/cEtWg++aVTh9sWuDU/xr1yw0607fGM21Dq82HKRLH7jXJ/bvL5dzCfYot9/ADyi5R pD+l+JWneGMyst0mBQWC+CqrjDMZbYgMUoMQip36dClCPDZz0vTa9Hq4BLIdsTXYMzVh lgoA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Q7HD2rZ5l0O1pmtgCKZeYicLkgzKtTQYe+DErXx1Tho=; b=txf+vfeuJnN+fSVIUNM+VLCwcSW13spBmtozeDrSMSvaejDdcQqAfnjifW+BrbtCr0 SAXeEs8c66QR3uSSvOPhcVi6FpfsO6R73/BwMxLVreD95Qs1JSy8FucPkaROGznKZdBp QmQ4PmUdCrvzBhU7B9LlYFiIe5dshb5om6ixnCIro5d/NoCW74g4xjIyXSvI5FEJyldl g9HQQ3oWM/NAcB/MyPCZCjPZB33dLmJ6zj51V/gOjCnfN3b+5lerspyMgYECOEoJgxWX Q7wznmvqGsq8vYY8yuMyoKn5u63fFx9ewv4CsK1AMTQMLoFGWxUic0e8i9FR6MX4X/j5 jCOw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=cjC66djV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id hg7-20020a1709072cc700b00741559ff58dsi12410754ejc.787.2022.10.04.20.14.04; Tue, 04 Oct 2022 20:14:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=cjC66djV; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S229779AbiJEC6b (ORCPT + 99 others); Tue, 4 Oct 2022 22:58:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52826 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229653AbiJEC6W (ORCPT ); Tue, 4 Oct 2022 22:58:22 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CB12F4D157; Tue, 4 Oct 2022 19:58:21 -0700 (PDT) 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 dfw.source.kernel.org (Postfix) with ESMTPS id 66DF46155E; Wed, 5 Oct 2022 02:58:21 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A3362C433C1; Wed, 5 Oct 2022 02:58:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1664938700; bh=mm3PVLnR7PvroJVH9u2FBC+N86N77tt3CLlFz8nWPPA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cjC66djVUDVZ0t1wvPPUUGyJmVjoDpSgX+tXRrWJgu8b6BFhxE7AZ61Z4C0q/JFX2 Wzfs5jNwwEJxB+VNn6IlL4GYG8BO5WufIgq06xW0HLPsueLKARgIrypyNkOMoptvKn ay7/ndRENbmXyGeMfzGU2oi7rr72BPiR5NnzSMwbBrUI+0StvFgjJZPSZsdGIba3D7 RflUzcTHEK+3ls/EULzG1t/i5wtsO05/AnWC06bx5i5C6YY1gVGme9poB18xeS3Od5 5iXpJBIq+wIIn+MehFendTxSrGHe6WXfKNBnADx/zFGGAf2MOg9tRq7CQ5yVg4FrW5 RMpL0+Yr5OaXg== From: Bjorn Helgaas To: linux-pci@vger.kernel.org Cc: Vidya Sagar , "Saheed O . Bolarinwa" , Lorenzo Pieralisi , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Rajat Jain , "Kenneth R . Crudup" , Kai-Heng Feng , Abhishek Sahu , Thierry Reding , Jonathan Hunter , Krishna Thota , Manikanta Maddireddy , Vidya Sagar , sagupta@nvidia.com, linux-kernel@vger.kernel.org, Bjorn Helgaas Subject: [PATCH 2/3] PCI/ASPM: Ignore L1 PM Substates if device lacks capability Date: Tue, 4 Oct 2022 21:58:08 -0500 Message-Id: <20221005025809.2247547-3-helgaas@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221005025809.2247547-1-helgaas@kernel.org> References: <20221005025809.2247547-1-helgaas@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Bjorn Helgaas 187f91db8237 ("PCI/ASPM: Remove struct aspm_register_info.l1ss_cap") inadvertently removed a check for existence of the L1 PM Substates (L1SS) Capability before reading it. If there is no L1SS Capability, this means we mistakenly read PCI_COMMAND and PCI_STATUS (config address 0x04) and interpret that as the PCI_L1SS_CAP register, so we may incorrectly configure L1SS. Make sure the L1SS Capability exists before trying to read it. Fixes: 187f91db8237 ("PCI/ASPM: Remove struct aspm_register_info.l1ss_cap") Signed-off-by: Bjorn Helgaas --- drivers/pci/pcie/aspm.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c index 4535228e4a64..f12d117f44e0 100644 --- a/drivers/pci/pcie/aspm.c +++ b/drivers/pci/pcie/aspm.c @@ -560,6 +560,9 @@ static void aspm_l1ss_init(struct pcie_link_state *link) u32 parent_l1ss_cap, child_l1ss_cap; u32 parent_l1ss_ctl1 = 0, child_l1ss_ctl1 = 0; + if (!parent->l1ss || !child->l1ss) + return; + /* Setup L1 substate */ pci_read_config_dword(parent, parent->l1ss + PCI_L1SS_CAP, &parent_l1ss_cap); -- 2.25.1