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 262E4C41535 for ; Tue, 19 Dec 2023 15:27:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4E6D68D0006; Tue, 19 Dec 2023 10:27:56 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4964F8D0001; Tue, 19 Dec 2023 10:27:56 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 35D828D0006; Tue, 19 Dec 2023 10:27:56 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 21A2C8D0001 for ; Tue, 19 Dec 2023 10:27:56 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id D612F802A0 for ; Tue, 19 Dec 2023 15:27:55 +0000 (UTC) X-FDA: 81583948110.23.A1945FF Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by imf01.hostedemail.com (Postfix) with ESMTP id 7B8AC40019 for ; Tue, 19 Dec 2023 15:27:53 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf01.hostedemail.com: domain of jonathan.cameron@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=jonathan.cameron@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1702999673; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Ks7ML1uzHv8brg7fFgCUysaYMG8x8WC4+jnrx4aJ91s=; b=QvNfpOaG832BsXkZIXrm80RmQd9h/1Sqm9a0CEhvogRgJePoNJ97RzFLjj5YbGydICvGs+ l0z1fwI/LPLgdCsMGpDequt7q+YXHj4Brhl8YO3CQGHwlDa/DjG/LZm7eeZSuJjYEb9+6z oyZIwy/dOPlfNPY1JL+7S8AuKyYfOJw= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf01.hostedemail.com: domain of jonathan.cameron@huawei.com designates 185.176.79.56 as permitted sender) smtp.mailfrom=jonathan.cameron@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1702999673; a=rsa-sha256; cv=none; b=XbnecCDnBIBBGe0EVKUNW9dmfjJ6V95L1z/cTSjEHTAs7UbD4GWlvWdQ0eVn/HR9qURqxF Z5uZxyt1xsST/2t6bBTx86c5Gf/eukQLswFXYPEp4JF+WWhvNKLHBXmmUR4SH0IHsenU8H 7t9UL5KawWtoCmPvoe07dC1M6ZEFhBk= Received: from mail.maildlp.com (unknown [172.18.186.216]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4SvgWG1tStz6K8vt; Tue, 19 Dec 2023 23:25:46 +0800 (CST) Received: from lhrpeml500005.china.huawei.com (unknown [7.191.163.240]) by mail.maildlp.com (Postfix) with ESMTPS id 064A0140F80; Tue, 19 Dec 2023 23:27:30 +0800 (CST) Received: from localhost (10.202.227.76) by lhrpeml500005.china.huawei.com (7.191.163.240) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 19 Dec 2023 15:27:28 +0000 Date: Tue, 19 Dec 2023 15:27:26 +0000 From: Jonathan Cameron To: Vishal Verma CC: Dan Williams , Dave Jiang , Andrew Morton , "Oscar Salvador" , , , , David Hildenbrand , Dave Hansen , Huang Ying , Greg Kroah-Hartman , , Joao Martins Subject: Re: [PATCH v6 2/4] dax/bus: Use guard(device) in sysfs attribute helpers Message-ID: <20231219152726.0000228f@Huawei.com> In-Reply-To: <20231214-vv-dax_abi-v6-2-ad900d698438@intel.com> References: <20231214-vv-dax_abi-v6-0-ad900d698438@intel.com> <20231214-vv-dax_abi-v6-2-ad900d698438@intel.com> Organization: Huawei Technologies Research and Development (UK) Ltd. X-Mailer: Claws Mail 4.1.0 (GTK 3.24.33; x86_64-w64-mingw32) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.202.227.76] X-ClientProxiedBy: lhrpeml500005.china.huawei.com (7.191.163.240) To lhrpeml500005.china.huawei.com (7.191.163.240) X-Rspam-User: X-Stat-Signature: 99r5cq6s3t3k6tbrog35okjb1fzq8h6w X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 7B8AC40019 X-HE-Tag: 1702999673-877155 X-HE-Meta: U2FsdGVkX1+06DRCtBi0LXxIqQ5UEZ3MSdbBGxK+pTeaW2uZlRlao80hYhkf56jz1bAgd+4iFuz91Bboj0v6nSifaUk6FNKn+IfwexTsUywtinRQK1dxd6SJv3uQmpTGPGKNavaoxBoEXeaSC6Z4emhXOS5Fm/ghXTRTLK4WNWou4cle+C6+O+ocpA0De5H58qCAgA31kHfxq0aR9GRY++uawafdqZDdL7QxuMt0wXmkySEP9xdV82X+h2je/e0xXQWlQFXDtb0iu2kLhxHbb7hhInkKd66+E9kzA1xaTLnqj12ooYM182SCG2aVCPne4kRQ91mzpw68YIgC3RWd38pMB8IHrZlSktXH1G3/eTdDMNCKmKAGuQqJa4c9K0MaGLE/IosyKnQyUX7RVlfZkxADFD0+vpMy/3qgzO411X0zAo6JG5+8BboAwuMj+VTrXUBwxk+CFfDNIWJuoMeo1b8y/q0NmXpRNWgIlIs2IK+fSDwnjnHBKUIlcZDgfa8QDrtD24bfFFC57ilCUjKYoq/vjwe4gGLW3i8Ehk1zJc/uJRGmJK88n+U4NeHgu9Zkkdq97gc9Q5EuqdjWnzvi+79RlvSSgGYGs/QC/IPpSLWoxR0ONyGZr4tF05/Lt/MLrZahHUP6IV073LDVAcYa4U/Clr5Sxws5EzaH9JeHEw3/Ypmy/I0bWIh20+jAyqOoZHbLVdX2m/haKCAhqfbWEpjLWs7DbHmxYPojRIA/uY9k8HdhMgII5Am3Nc7IpyqLYT5c+7cSoIcS9BGC0sXH9I2tpYtNLbomAteewO3mEF8Knxb5omi9VpR7ibga5jmbdoXoI7UenhdoDt63tPphkCeZpJ9VqKy+TrPqmh/qu/Pysg9c4nNlfKG5ZQhERSQ1 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, 14 Dec 2023 22:25:27 -0700 Vishal Verma wrote: > Use the guard(device) macro to lock a 'struct device', and unlock it > automatically when going out of scope using Scope Based Resource > Management semantics. A lot of the sysfs attribute writes in > drivers/dax/bus.c benefit from a cleanup using these, so change these > where applicable. > > Cc: Joao Martins > Cc: Dan Williams > Signed-off-by: Vishal Verma Hi Vishal, A few really minor suggestions inline if you happen to be doing a v7. Either way Reviewed-by: Jonathan Cameron > > @@ -481,12 +466,9 @@ static int __free_dev_dax_id(struct dev_dax *dev_dax) > static int free_dev_dax_id(struct dev_dax *dev_dax) > { > struct device *dev = &dev_dax->dev; > - int rc; > > - device_lock(dev); > - rc = __free_dev_dax_id(dev_dax); > - device_unlock(dev); > - return rc; > + guard(device)(dev); guard(device)(&dev_dax->dev); /* Only one user now */ > + return __free_dev_dax_id(dev_dax); > } > > static int alloc_dev_dax_id(struct dev_dax *dev_dax) > @@ -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); Might as well make this guard(device)(dev); return sprintf(buf, "%llu\n", dev_dax_size(to_dev_dax(dev)); > }