Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp8813026rwr; Thu, 11 May 2023 06:37:24 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6uHmIx5sUHTa1LATYqMGr1WW50+2OlB1NYdeqEA4xVo/o7Jag/31az7Mjes/39rq8qSeyX X-Received: by 2002:a05:6a00:2d12:b0:624:2e60:f21e with SMTP id fa18-20020a056a002d1200b006242e60f21emr30637819pfb.29.1683812244544; Thu, 11 May 2023 06:37:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683812244; cv=none; d=google.com; s=arc-20160816; b=JBpse08ojt3GDHbAm2BzgwBjUOm3JOE9DcFEM1upUUYBShowRtgUFUqOqyDm2OL31x h4wsAzzAyFcQYQhqyxUX4UdgktmyZbG3VbQErd/70GdSDSvuRWTzjH8j4aEz67KIvag4 Ebd/gKdczO0DHlqSJVrdPBWtJlRmzPPFUJ1CzngY+qs2RrGj7mFoK2sI0a2g5mg2V2um UJpHcNQcqtCoD5Mr5UEig2dHpETkR+K5kvWuIEkbIDouZUAGEpq1ycaVqoFPTud1gNOH NnutUC941UELba5B50wr19Eh+Pv5kKTD9cRfoA8TRmXLqS2L1uYvYYNkPyg1uXGM0uiG Cr9Q== 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=lGlHc9eYBGA7O2Ay2ZnwYOrmxSnuOpgg8hTNweWYwPk=; b=LM96C8RfsN1MsoLGdw0K0vO7in6r301L6vek0mQD7WVOyQ4deJ2sH0AqqzDGxpZCTN 51u03vnR0/bD9Q8i9rOXr75dICuhfnS5Nu8nPoWwZn85cUGggklP5OB2bcCgvzqwJiL+ ekJNC73GND/JM4Ol98++aWJhkTAO1GBrmRmpN3EG/zortyRkhEmuhX6KG0tgC+uu0chu 7TcY3sZ2zk8dOlw5Xh/rCJXIpMOsVAgEDraFdS3ONqKxrAfJ5eufi6VRf6tjuPUmAHa2 2AnxcEQMI+IAyACP91WRs5FSZbYkmASXAm+libBTwYwLKR5QMUX3/FrEQizVg5Sr9syW uO9A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=ePJobaBI; 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=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bk13-20020a056a02028d00b0052c9fb2c7e2si6691952pgb.900.2023.05.11.06.37.12; Thu, 11 May 2023 06:37:24 -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=@intel.com header.s=Intel header.b=ePJobaBI; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237997AbjEKNQu (ORCPT + 99 others); Thu, 11 May 2023 09:16:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34712 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238094AbjEKNQQ (ORCPT ); Thu, 11 May 2023 09:16:16 -0400 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1B552659D; Thu, 11 May 2023 06:15:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1683810920; x=1715346920; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=W5cLSAaV+r+1ItVRXAcJDtR+e/em1mtYJ7N6Iy6IoQc=; b=ePJobaBID6ILaQVr5Io5+Iu+GVB12lTrgz4rukTjEhIxsIerpfyDPsPp M/e+QGn1AhWHh47t8MooBVvcB++0ecU+hkp3qxWhn0ZYq9oPioz3cgSyl oUUK84dVhZZ/DRCoSzNG/iT6tow5mKJcEPwphHsDZd8K9ATBFd+kx9iwQ cij3str8fF+we798MRVVtzVrTz29zagqG2X1eRExLBPdh2RdHEvra0qeT qeFJ2nk92D92Cq3Pea1B+4bXHynZcjXT1gwfvUpZJ5O/2OEryzzaLo9CK lHKaqzxRmAHHHlYlWZ3ZZBEwa7p6ZWGBwhMVdUbTa2hn8JrK4NIN2+1QN A==; X-IronPort-AV: E=McAfee;i="6600,9927,10706"; a="378619458" X-IronPort-AV: E=Sophos;i="5.99,266,1677571200"; d="scan'208";a="378619458" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 May 2023 06:15:19 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10706"; a="650169748" X-IronPort-AV: E=Sophos;i="5.99,266,1677571200"; d="scan'208";a="650169748" Received: from jsanche3-mobl1.ger.corp.intel.com (HELO ijarvine-MOBL2.ger.corp.intel.com) ([10.252.39.112]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 May 2023 06:15:15 -0700 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= To: linux-pci@vger.kernel.org, Bjorn Helgaas , Rob Herring , Lorenzo Pieralisi , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Lukas Wunner , Jesse Brandeburg , Tony Nguyen , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Subject: [PATCH 07/17] e1000e: Use pcie_lnkctl_clear_and_set() for changing LNKCTL Date: Thu, 11 May 2023 16:14:31 +0300 Message-Id: <20230511131441.45704-8-ilpo.jarvinen@linux.intel.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230511131441.45704-1-ilpo.jarvinen@linux.intel.com> References: <20230511131441.45704-1-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE, T_SCC_BODY_TEXT_LINE 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 Don't assume that only the driver would be accessing LNKCTL. ASPM policy changes can trigger write to LNKCTL outside of driver's control. And in the case of upstream (parent), the driver does not even own the device it's changing LNKCTL for. Use pcie_lnkctl_clear_and_set() which does proper locking to avoid losing concurrent updates to the register value. Suggested-by: Lukas Wunner Signed-off-by: Ilpo Järvinen --- drivers/net/ethernet/intel/e1000e/netdev.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index bd7ef59b1f2e..29d50aeb2c3e 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c @@ -6829,11 +6829,9 @@ static void __e1000e_disable_aspm(struct pci_dev *pdev, u16 state, int locked) /* Both device and parent should have the same ASPM setting. * Disable ASPM in downstream component first and then upstream. */ - pcie_capability_clear_word(pdev, PCI_EXP_LNKCTL, aspm_dis_mask); - + pcie_lnkctl_clear_and_set(pdev, aspm_dis_mask, 0); if (parent) - pcie_capability_clear_word(parent, PCI_EXP_LNKCTL, - aspm_dis_mask); + pcie_lnkctl_clear_and_set(parent, aspm_dis_mask, 0); } /** -- 2.30.2