From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9B7D92134; Wed, 13 Dec 2023 05:57:15 -0800 (PST) X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="2137204" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="2137204" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 05:56:33 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10922"; a="773957518" X-IronPort-AV: E=Sophos;i="6.04,272,1695711600"; d="scan'208";a="773957518" Received: from smile.fi.intel.com ([10.237.72.54]) by orsmga002.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 05:56:30 -0800 Received: from andy by smile.fi.intel.com with local (Exim 4.97) (envelope-from ) id 1rDPiu-00000005XZ7-116V; Wed, 13 Dec 2023 15:56:28 +0200 Date: Wed, 13 Dec 2023 15:56:27 +0200 From: Andy Shevchenko To: Kent Gibson Cc: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, brgl@bgdev.pl, linus.walleij@linaro.org Subject: Re: [PATCH 3/4] gpiolib: cdev: reduce locking in gpio_desc_to_lineinfo() Message-ID: References: <20231212054253.50094-1-warthog618@gmail.com> <20231212054253.50094-4-warthog618@gmail.com> Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231212054253.50094-4-warthog618@gmail.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo On Tue, Dec 12, 2023 at 01:42:52PM +0800, Kent Gibson wrote: > Reduce the time holding the gpio_lock by snapshotting the desc flags, > rather than testing them individually while holding the lock. > > Accept that the calculation of the used field is inherently racy, and > only check the availabilty of the line from pinctrl if other checks > pass, so avoiding the check for lines that are otherwise in use. ... > - bool ok_for_pinctrl; > - unsigned long flags; > + unsigned long iflags, dflags; With a preliminary conversion to cleanup.h this whole change becomes cleaner, no? -- With Best Regards, Andy Shevchenko