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 ED6FCC54E58 for ; Fri, 15 Mar 2024 21:39:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6855A8014F; Fri, 15 Mar 2024 17:39:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 63578800B4; Fri, 15 Mar 2024 17:39:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4FCF08014F; Fri, 15 Mar 2024 17:39:07 -0400 (EDT) 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 40FEF800B4 for ; Fri, 15 Mar 2024 17:39:07 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 143324028A for ; Fri, 15 Mar 2024 21:39:07 +0000 (UTC) X-FDA: 81900589134.20.8168019 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) by imf16.hostedemail.com (Postfix) with ESMTP id 6D21C180002 for ; Fri, 15 Mar 2024 21:39:05 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=eXaTKiAd; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf16.hostedemail.com: domain of rientjes@google.com designates 209.85.214.177 as permitted sender) smtp.mailfrom=rientjes@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710538745; 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=F4UFAX4z3jJDBCRUy6WDZJz3SsJI5lq7JeGg/ZMI7/c=; b=CNrAx/I4IBm2737FRk0ZU35148zcYNKFDrWJuc1xJ7HcOiIp/ljea21j15RiVjyH9JXX/U vAGGE3r3Tyva1bQza/jvs6PoTsuZlaQE/eLmiIMW42fm9h4ZRNuFIw2pb2wXYBi9306OSP nMIIE9m3wJvCDQjF84sqIvTczbo0Dak= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=eXaTKiAd; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf16.hostedemail.com: domain of rientjes@google.com designates 209.85.214.177 as permitted sender) smtp.mailfrom=rientjes@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710538745; a=rsa-sha256; cv=none; b=lpJ/24bnasJEZkNlEw2WgmkLgCMycpekXLAU/zH/MfOdkQ1oIrVvz3MCgpv+KyyPVGF31b GgHgTxsw24ooqt0BE3nnz7oQQkeT/p6//j84IJ2IjEq9gnfmOTAjOqu13QEih9eS3NZqH1 pwWTPQ8oHMdvnWxwhYbDXuCgi5ORq6g= Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-1deddb82b43so46535ad.0 for ; Fri, 15 Mar 2024 14:39:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1710538744; x=1711143544; darn=kvack.org; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=F4UFAX4z3jJDBCRUy6WDZJz3SsJI5lq7JeGg/ZMI7/c=; b=eXaTKiAdGL2N7g5AiiBWFGH2fSpQQr7ZY3FsDMr/ZqASvT/bc9upg0SUCRXvSBXI9+ l88I58yen6mmJ9bxJ8YJDQkSYl2+YNZ7EkfvpTe0uUtjWWYHJoFFzhYvnIpcYkvaWyyi yy6KqGF9STtKhRDKDil4F3uB6o7LUbpmzC3BTrSDMjLbXicYo6qSsmeDddtqDU45a/ia N9Y8rUTabf8KDBl+JKy96WNKORM3AfT9Ar7LpEpG/Evx/1Yu/whdcZnG3itaLNdqRl6x XMr656Op/Y8ez0b5q3K6+osHQXvz8pb8FT3HiBPwI/e5viwQ+JwnpkT00IyQjKF2t+5I zJ8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710538744; x=1711143544; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=F4UFAX4z3jJDBCRUy6WDZJz3SsJI5lq7JeGg/ZMI7/c=; b=UPkbCSsyjJ741HPL6cRPUDHjr2Q5iqHBH8jkcELYIBD+jxXOPl+8YUXaByzgJnwyul f6zGnC/yniaNTMFUBM6PaQseKEIFabJN+Ds1XFFILY3zKs2Eq+ZAyYUBWTjjXhHJO7hK jzIQ+87cPIcFVMVKHAvng69PgkOppaY3ABBDbfge1v1P95Iw9pyGnd8UcS7bd4uw4UMx ppsfrnc0FL/CBBW5OqXgXu4uIQZSXrs88zuPuWXX6vipwyi4r2uo0g6NCj7zIrbrAO4f hAKq0kFkRYQL2h/gWHnIN0Z40dJQ5UVcpJyluWBNGlI3aViyZCE1f0isPkiNQIFOZTrJ tiCA== X-Forwarded-Encrypted: i=1; AJvYcCU/+7vFLb9AlHkULUHJJzUV+mYuhG7SbDmrQdpgfska00ngzJADw9N5XAFn/sTSJpL2v/Jg1wyp6L5lZq/JMDlLFPo= X-Gm-Message-State: AOJu0Yy4KKIy0edsM+1L/GYN8dNhXPcQB9NJn/yJQieZrDTw26IxAKrd QJkClrg8ogu21EBm8vPGthqJ9Cj5fRvsfqdiDhhmzDId5LXmUBWW3xZWeAlTWA== X-Google-Smtp-Source: AGHT+IGrpgeOjBZ11SYwdIToTwLjbJrlMck5pazxQUYxF316Kq0lbZLpReWX2S3jtECZZiLl6C0ZwQ== X-Received: by 2002:a17:903:1c3:b0:1dd:b2f1:6e9 with SMTP id e3-20020a17090301c300b001ddb2f106e9mr314272plh.1.1710538744032; Fri, 15 Mar 2024 14:39:04 -0700 (PDT) Received: from [2620:0:1008:15:59e5:b9a4:a826:c419] ([2620:0:1008:15:59e5:b9a4:a826:c419]) by smtp.gmail.com with ESMTPSA id l9-20020a170902f68900b001dd90001b26sm4345543plg.159.2024.03.15.14.39.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Mar 2024 14:39:03 -0700 (PDT) Date: Fri, 15 Mar 2024 14:39:02 -0700 (PDT) From: David Rientjes To: Jiri Pirko cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, cl@linux.com, penberg@kernel.org, iamjoonsoo.kim@lge.com, akpm@linux-foundation.org, vbabka@suse.cz, roman.gushchin@linux.dev, 42.hyeyoo@gmail.com, peterz@infradead.org, mingo@kernel.org, danielj@nvidia.com Subject: Re: [patch RFC] mm/slab: introduce KZALLOC_FREE() cleanup-ed allocation macro In-Reply-To: <20240315132249.2515468-1-jiri@resnulli.us> Message-ID: <171412ef-1a93-3e56-2b7b-3baf83233eb2@google.com> References: <20240315132249.2515468-1-jiri@resnulli.us> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 6D21C180002 X-Stat-Signature: 4afjgq3q7s6t6cnfu895c6xstwdzosqn X-HE-Tag: 1710538745-496358 X-HE-Meta: U2FsdGVkX1+hnY/M69O1GHUchkdoLdA6movdBdse031hPR4zDuMWtIDqqY7tYs0O3QZ8rXe4BcDGMCQtz/MtLScdDlxkaz/fQi2b/uajh0DQotw4JlefYivlGjgU9hGqvUAm9SPjtKv5Lz1Fk5h7PKfzqVKV0zVjFp2L00do7r5OT86kFfZOfqebQgyxu/3QnFwXZj3u4AVGcRPny4/4n7ioUD9b0thAyl4P7MlZ2OuE7Pz5Ax0fYBHcs4wB/vUwIGXpmeI5psfompch6PR/qiah3qDy7q59G+KUnSNLp7ZJuL8r2HDMGdb2cSZHvi54e43hLBHNOee07yBBqRsfRFq0fLMhx7EMsvr8P2h6j0jMSd3rzBHmygxw6aXjqyNohAjGCGsWbkqvmxXZFkj6X1zOJljKgUkxcSNxDdZwpuDilEPJPKA6aS22j7Kqxiv4yQRbGY71wfcCe5hW90pp58/QZFS/Id2IfsNQuHFT9iNSVLeem6JRD0yeA8PA0qtZOOEEhkX3g/h7Uwi3RrqsS+1pk4bv8mC2Q8hb5TOmVs/7xwcEYbLQxaUfzPHsARLT46kVibPRxmBnNOSrs23QqDhWINs+QWx0P8e8tSl4lwhhZXH9ZTFItb2gtoenuxt8dKp22QoflzzuXAlF8knWcDdCwII79CBJgk5kzgYW2VS818GnRxt7aMt6jxBx2o8hyf0EtSCo7Q5brxkqTvOQvsNNX3OwXuavAExdJJ2olgSPcO9lKIf4/v+b0hBOGwx6yb4YR596bKXqjcp7r8H+5yPr3Bf3ScBOvK29nMAgQtJEhAxpdmtDL2gBw2Cgp+TeBA20/mULHs2/Vb8kekG298V/r6js+S6eLLFMHcqSqab2Yk7KoTlHcQJj84fiVAc05FPTk3OfR2iuRpPjFcvkb4e4tfwqmnLJLtydl3WpKcJHb03J4A6+BN4o2o7axchSL6KrrdqtMfQZMGONtBo FecUXvM2 9n0tsK4pxUVq4/t0QaamyNEunhXK6rjtXe8nu2jUnUc9UJMzdWpE8/rCQqOw2hCNG1p8atXBHQjRaDSqNG+LLzBnbaXiPIsvB6ih90Lb7Ito+EsDEMSLzNNCF2lDNEUcU4DlkMh/hvM7SMvftPheD+l361r7FhS/cF/p/Qq80XsN61wNN4O6Z9G4OIU/lmrpMp53BcnA/OSJ0YCk= 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 Fri, 15 Mar 2024, Jiri Pirko wrote: > From: Jiri Pirko > > With introduction of __free() macro using cleanup infrastructure, it > will very likely become quite common to see following pattern: > type *var __free(kfree) = kzalloc(sizeof(*var), GFP_KERNEL); > > To follow the CLASS() flow from cleanup.h, introduce a simple macro > KZALLOC_FREE() to wrap this over and allow the same flow. > > Show an example usage in gpio-sim driver. > Seems highly specialized especially for kzalloc specifically, so not sure this warrants its own macro. > Signed-off-by: Jiri Pirko > --- > drivers/gpio/gpio-sim.c | 3 +-- > include/linux/slab.h | 3 +++ > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpio/gpio-sim.c b/drivers/gpio/gpio-sim.c > index c4106e37e6db..997237b3d80c 100644 > --- a/drivers/gpio/gpio-sim.c > +++ b/drivers/gpio/gpio-sim.c > @@ -1496,8 +1496,7 @@ gpio_sim_config_make_device_group(struct config_group *group, const char *name) > { > int id; > > - struct gpio_sim_device *dev __free(kfree) = kzalloc(sizeof(*dev), > - GFP_KERNEL); > + KZALLOC_FREE(struct gpio_sim_device *, dev, GFP_KERNEL); > if (!dev) > return ERR_PTR(-ENOMEM); > > diff --git a/include/linux/slab.h b/include/linux/slab.h > index b5f5ee8308d0..baee6acd58d3 100644 > --- a/include/linux/slab.h > +++ b/include/linux/slab.h > @@ -711,6 +711,9 @@ static inline __alloc_size(1) void *kzalloc(size_t size, gfp_t flags) > return kmalloc(size, flags | __GFP_ZERO); > } > > +#define KZALLOC_FREE(_type, var, _gfp_t) \ > + _type var __free(kfree) = kzalloc(sizeof(*var), _gfp_t) > + > /** > * kzalloc_node - allocate zeroed memory from a particular memory node. > * @size: how many bytes of memory are required. > -- > 2.44.0 > >