From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 266F3C4332F for ; Fri, 15 Dec 2023 05:56:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 78B266B0439; Fri, 15 Dec 2023 00:56:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6F73B6B043A; Fri, 15 Dec 2023 00:56:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 565116B0440; Fri, 15 Dec 2023 00:56:46 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 432866B0439 for ; Fri, 15 Dec 2023 00:56:46 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id E3C731404E1 for ; Fri, 15 Dec 2023 05:56:45 +0000 (UTC) X-FDA: 81567993570.17.EC1740D Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf29.hostedemail.com (Postfix) with ESMTP id C7BCB120017 for ; Fri, 15 Dec 2023 05:56:43 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=isdXMoLa; dmarc=none; spf=none (imf29.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702619804; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=jobEC3jqWIpyDkINLFhovVaNZT5MWZEp2hewynNzNgs=; b=WqcMoaP++f3ep4+yPSNNkuNP9PL30QTQdbh0zwfko3QcChuJXpGcUiMyPk9B6as639zJx0 NVhNPvXpEV5gjFMw8owzxhj8Gj5QgykAuBF7T4o4vPpdDPBIGIV7p8KjDYVTmaH37m60Ky EOvi+CIjussdeg4tCiVemM9oojLPiUg= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=isdXMoLa; dmarc=none; spf=none (imf29.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702619804; a=rsa-sha256; cv=none; b=RLIuq6+5FNZm6QWexH4y7EVrK/iRp1JEUhS9rJ3N0lLY5g4Rpk0NErpJdAVBszIZZINSpl cSOIjp/7clX9hP9mqIzrxL4YSBxBL1Aetvz4kpX1hwS0RtkRvlYwTHanY1c269eMsqR/WE 4CjCijXdqJHYMDSHc+qlc9FMNDXeB/M= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=jobEC3jqWIpyDkINLFhovVaNZT5MWZEp2hewynNzNgs=; b=isdXMoLa/gQ7m5FXi3d/9OdoAg XaeBzpytEaWOOM1Rv6L6Sb2AU08uyb+vJzSd5WO8o4IZ76wJduYkmLgYA4YVfdSgaBEYPwZOhSu1k T18ZDxt4M5P2pDr/JqvW3DrRznqD3gcz8g92Hzl+tVjbHSHZ9CY+KSEPJ73NRQEPxHpProYcq5bHq 0Tw4uB3Po+aKjUzhKgdCJURXmEkHYxxCfjAQJY9LYGAVYomrNiqzkIa1+7rtZmOcFNABFW2fS41xV GW2gV9vcxcoALFfII/YSkz/8Ghg4HUx9TdVvfsH5XQzCGM7NW2zzLWOY0bXu87XrmYDcCEGWORWAZ CMjym3+Q==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1rE1BU-00E4oM-QE; Fri, 15 Dec 2023 05:56:28 +0000 Date: Fri, 15 Dec 2023 05:56:28 +0000 From: Matthew Wilcox To: Vishal Verma Cc: Dan Williams , Dave Jiang , Andrew Morton , Oscar Salvador , linux-kernel@vger.kernel.org, nvdimm@lists.linux.dev, linux-cxl@vger.kernel.org, David Hildenbrand , Dave Hansen , Huang Ying , Greg Kroah-Hartman , linux-mm@kvack.org, Joao Martins Subject: Re: [PATCH v6 2/4] dax/bus: Use guard(device) in sysfs attribute helpers Message-ID: References: <20231214-vv-dax_abi-v6-0-ad900d698438@intel.com> <20231214-vv-dax_abi-v6-2-ad900d698438@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231214-vv-dax_abi-v6-2-ad900d698438@intel.com> X-Rspamd-Queue-Id: C7BCB120017 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: p3oenco4e1extmdtxoyzo59ike8k1zgj X-HE-Tag: 1702619803-514421 X-HE-Meta: U2FsdGVkX18X3RZJVbHczm4bV9inuu9yMK17HIN6hzgOjDxHCld4WXX5+22QXTGS9rVFX2ehEEKDD8vEqAfTKvnn6XdutT/BDAQjrqfwI4HspYd9JgYQFwqpDP/2DKXI6xLJWleGUUab/59ayoAQv3Ohgj+Ip7Ub+jEvtiauZ+DjPhtCzjyokgIdi+tX/yaBqa6c/3kZfLdsrh3kbP2//Z51aAN1L4//2Zm2hsLQksOwx4oPtgZbsVdRSnGQha0fpOKHQHaCeq86Pvbo7CgEtHJJ2XDIAK9VoausoHLAjnqPafJV4gb6XTaARY0bfdtJZ9c1ytaGDti9BMeSErOmLkni7vJUnDCS+T5tVMbM9+kF8omjN76Ruy6Ilz50hEPXxBw83ssPS2ll8ZbrM2QQ/FzDjoiMPrDACDXw9mDbaVc0GlQB3N+1KuvWUnj6Cgbrc6X34hbg2A4ysBB0WfLEGGg9lgq4QqJMRPdw1WOXnxEYUOOrGv+TkrNJFVtDNkM9Yug+yiVV4NH/dA6/VK/rvFokNoMXg/ZiYkgs/j30xAVamT396Tx/RnBggPwMAg4ML+/Hi9W5ITnL/LM96fZB+xUBvw075bcWPVMzUHOWc+OgdkZWqyGYYyuWE7jqLW/neZkKaeq+2U4lqNZAWAMuYp/cdlSFJ1Gu/zpGCTJfbVlKwG9M0ztVbGvkfo5TpUYT1MqAzE54voqNds6JeB7A/x/ioZ3w0AKpLO2+cWzNSem3xmA1cGv4BOJiPsGZsv6Qq2KFOzUqdb8VM2s9fV/MwRUmeKrj5rCr8zSRC/kZU+rNtUaSw852xM+xUzAnQeawd2JfFPPPqMHthgjCJ2eyP3YTEeW4zP4mzxrKPCIyLEvHcf+9VXt5HFTkaxBVkQzXnVfx3Onbb4Qit6LjMDSv4M/UM4x0ByHO89W78qqWhw6Mt2ZYKRXDYIbNcLd7kqeXiuOZL0tKpQnpdVwGWO7 A8SJcazI ozhGqlwL4whcmBeeTTUMPSUBcfPQxIQejc9rsZKxwgBHTQpLP+g0OANLlISrz/MPNl/Efu3x+fhDuz09AvJkFylAHMigWFhAWzavQBlx/rawBjCaGSRfDDH5Pb9L4ZEkwbyUgdbqKHlmGzkE= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Thu, Dec 14, 2023 at 10:25:27PM -0700, Vishal Verma wrote: > @@ -294,13 +294,10 @@ static ssize_t available_size_show(struct device *dev, > struct device_attribute *attr, char *buf) > { > struct dax_region *dax_region = dev_get_drvdata(dev); > - unsigned long long size; > > - device_lock(dev); > - size = dax_region_avail_size(dax_region); > - device_unlock(dev); > + guard(device)(dev); > > - return sprintf(buf, "%llu\n", size); > + return sprintf(buf, "%llu\n", dax_region_avail_size(dax_region)); > } Is this an appropriate use of guard()? sprintf is not the fastest of functions, so we will end up holding the device_lock for longer than we used to. > @@ -908,9 +890,8 @@ static ssize_t size_show(struct device *dev, > struct dev_dax *dev_dax = to_dev_dax(dev); > unsigned long long size; > > - device_lock(dev); > + guard(device)(dev); > size = dev_dax_size(dev_dax); > - device_unlock(dev); > > return sprintf(buf, "%llu\n", size); > } If it is appropriate, then you can do without the 'size' variable here. > @@ -1137,21 +1117,20 @@ static ssize_t mapping_store(struct device *dev, struct device_attribute *attr, > if (rc) > return rc; > > - rc = -ENXIO; > - device_lock(dax_region->dev); > - if (!dax_region->dev->driver) { > - device_unlock(dax_region->dev); > - return rc; > - } > - device_lock(dev); > + guard(device)(dax_region->dev); > + if (!dax_region->dev->driver) > + return -ENXIO; > > + guard(device)(dev); > to_alloc = range_len(&r); > - if (alloc_is_aligned(dev_dax, to_alloc)) > - rc = alloc_dev_dax_range(dev_dax, r.start, to_alloc); > - device_unlock(dev); > - device_unlock(dax_region->dev); > + if (!alloc_is_aligned(dev_dax, to_alloc)) > + return -ENXIO; > > - return rc == 0 ? len : rc; > + rc = alloc_dev_dax_range(dev_dax, r.start, to_alloc); > + if (rc) > + return rc; > + > + return len; > } Have I mentioned how much I hate the "rc" naming convention? It tells you nothing useful about the contents of the variable. If you called it 'err', I'd know it was an error, and then the end of this function would make sense. if (err) return err; return len;