Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp9359399rwr; Thu, 11 May 2023 13:50:15 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ64dmti80JiSTHBEljnboziwKJzrFEgUbTdngKdg4wtvxI+7rtrGGQ5CDL35bVYvn4gBpsA X-Received: by 2002:a05:6a00:2e1b:b0:63d:6744:8caf with SMTP id fc27-20020a056a002e1b00b0063d67448cafmr28221889pfb.26.1683838215521; Thu, 11 May 2023 13:50:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683838215; cv=none; d=google.com; s=arc-20160816; b=RwYXWW+toVtwsHD7i9BH6ZKgY5kcDbKAQDwcoTwcb+hMeSUrv2QsB+ZcXm0rzuIKe8 yo53sAGcJrS11fuzw7cmJwiUE7N4bH2nGLQh1+MXUsV9Yxbilu5lki+oEfO7VDWGj1Ga GMRw6AdkHpUEVnKk/D7FyCu7ud89DBsAjZha2xeVAUzOyF2mlW56bAa3HNzCy0N1b9Fz OjPOGPabDf42MYFbt+KzEATZCQ5pOjNE/Xz/5j9VzYPtBCpYi2IXc6rx7+8iRfx7HuuU b/pDaxPnC6j5PsyWC5LoKQS/t18lEAKeuUyRq5heHqtF3mQ6uSubqVLb1vkJXbZo41hO iojA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=QvYZ8h1CToB2p/sDlMOg3hpUoqsqG+i9a4h0Roz0vQ8=; b=cjksb0XR1Z4ERNY7I8RTQ4eAFlHFeNB/sb7OQks1PJDRxnQq0rzu8H4TlGCY+tKnbn ugEDk5RfRa0N0aboq0akiVt/AU8Udv3fa5INVcKzi6a+78WFJSzArinqdfAYpvaBo1ZN Ni67kV558riIkm455O2DhhHC6f21g9R5diXhKfqgK5/gfeSjkOkXkAFB4gBL25tHnKrt cSgD+laJmG8rbeqM6v2qfDkhnyeuOKBQ98OIV6yAumjt6wIWOu4QN/uJAJgSoAbZOCw2 JkUPvLXpxmiBdfU/lVDVrp0Y6JnLpDH0PejFZ9OXF/ogdkDWC4ZMycaXSZ8QQZD6bs7P jEnA== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y10-20020aa79aea000000b0063b78126397si8143432pfp.230.2023.05.11.13.50.00; Thu, 11 May 2023 13:50:15 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239085AbjEKUXg (ORCPT + 99 others); Thu, 11 May 2023 16:23:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34118 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238381AbjEKUXf (ORCPT ); Thu, 11 May 2023 16:23:35 -0400 Received: from bmailout1.hostsharing.net (bmailout1.hostsharing.net [83.223.95.100]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 49C6549DB; Thu, 11 May 2023 13:23:34 -0700 (PDT) Received: from h08.hostsharing.net (h08.hostsharing.net [IPv6:2a01:37:1000::53df:5f1c:0]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "*.hostsharing.net", Issuer "RapidSSL Global TLS RSA4096 SHA256 2022 CA1" (verified OK)) by bmailout1.hostsharing.net (Postfix) with ESMTPS id 06D00300002CB; Thu, 11 May 2023 22:23:33 +0200 (CEST) Received: by h08.hostsharing.net (Postfix, from userid 100393) id E47DD160E04; Thu, 11 May 2023 22:23:32 +0200 (CEST) Date: Thu, 11 May 2023 22:23:32 +0200 From: Lukas Wunner To: Bjorn Helgaas Cc: Ilpo =?iso-8859-1?Q?J=E4rvinen?= , linux-pci@vger.kernel.org, Rob Herring , Lorenzo Pieralisi , Krzysztof Wilczy??ski , Bjorn Helgaas , linux-kernel@vger.kernel.org Subject: Re: [PATCH 01/17] PCI: Add concurrency safe clear_and_set variants for LNKCTL{,2} Message-ID: <20230511202332.GD31598@wunner.de> References: <20230511131441.45704-2-ilpo.jarvinen@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) X-Spam-Status: No, score=-2.4 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_LOW,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 On Thu, May 11, 2023 at 10:55:06AM -0500, Bjorn Helgaas wrote: > On Thu, May 11, 2023 at 04:14:25PM +0300, Ilpo J?rvinen wrote: > > +int pcie_capability_clear_and_set_word_locked(struct pci_dev *dev, int pos, > > + u16 clear, u16 set) > > +{ > > + unsigned long flags; > > + int ret; > > + > > + spin_lock_irqsave(&dev->cap_lock, flags); > > + ret = pcie_capability_clear_and_set_word(dev, pos, clear, set); > > + spin_unlock_irqrestore(&dev->cap_lock, flags); > > + > > + return ret; > > +} > > +EXPORT_SYMBOL(pcie_capability_clear_and_set_word_locked); > > I didn't see the prior discussion with Lukas, so maybe this was > answered there, but is there any reason not to add locking to > pcie_capability_clear_and_set_word() and friends directly? > > It would be nice to avoid having to decide whether to use the locked > or unlocked versions. I think we definitely want to also offer lockless accessors which can be used in hotpaths such as interrupt handlers if the accessed registers don't need any locking (e.g. because there are no concurrent accesses). So the relatively lean approach chosen here which limits locking to Link Control and Link Control 2, but allows future expansion to other registers as well, seemed reasonable to me. Thanks, Lukas