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 E95FFC54E58 for ; Fri, 15 Mar 2024 13:22:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5845D8012C; Fri, 15 Mar 2024 09:22:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 53F64800B4; Fri, 15 Mar 2024 09:22:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 423998012C; Fri, 15 Mar 2024 09:22:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 32F66800B4 for ; Fri, 15 Mar 2024 09:22:59 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id C7B378014D for ; Fri, 15 Mar 2024 13:22:58 +0000 (UTC) X-FDA: 81899338836.01.C7D13A4 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by imf21.hostedemail.com (Postfix) with ESMTP id 5735D1C0010 for ; Fri, 15 Mar 2024 13:22:55 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=resnulli-us.20230601.gappssmtp.com header.s=20230601 header.b="FV/cNQTC"; spf=none (imf21.hostedemail.com: domain of jiri@resnulli.us has no SPF policy when checking 209.85.221.48) smtp.mailfrom=jiri@resnulli.us; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1710508977; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=ky6vAjI9f0v11GIeHx/FRiwL3E84H7dHD+VaFVnUoDc=; b=KP/Zvf9kVPnsiuzSxEFdLYRb0umaAXh6ygFXC/NskvJ+RhSLcFfh8Jg4AflSlUXEO+ZTQm B/36qFLM/0bWK564FsTkOtetoL1GpECdfZp9DWIkwEe9EI8IiOum1r6horrvCx0t6Dyk5d cXdlMFAk1Cr6X2om9ObevTAi6osMLcI= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710508977; a=rsa-sha256; cv=none; b=HRldQbeUaDJtMdzIn2xXv41R+pa0oARPkXZAqWXt55xw7b0Aem1HlkvtE07tMreCUk5zms uYF0FiuRp+WOCoz8MXsnjFPSbKl2Q5ZmzeZaQ5HOrXNOiQpPvWkIDTaC/WlP3qiOBmG0Wa 4c0pZjkha8SVIuCiiltsZBJ5MVFQb9Q= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=resnulli-us.20230601.gappssmtp.com header.s=20230601 header.b="FV/cNQTC"; spf=none (imf21.hostedemail.com: domain of jiri@resnulli.us has no SPF policy when checking 209.85.221.48) smtp.mailfrom=jiri@resnulli.us; dmarc=none Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-33e8b957a89so1361653f8f.0 for ; Fri, 15 Mar 2024 06:22:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20230601.gappssmtp.com; s=20230601; t=1710508973; x=1711113773; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=ky6vAjI9f0v11GIeHx/FRiwL3E84H7dHD+VaFVnUoDc=; b=FV/cNQTCuKlk5Qlw6hwEjLza5/X4zGbspHFIapq9QX1d2Um57qQ93PHthevMCcV3Ep 5tybJiHvRf+wIcQOYh/RVxmZ4QzV0Hp01z9dQ/sT3fJdzaZALuwPF61PaW4RcdOs0x57 WQkAbXNNOHxqXLoOBnXbpHJbJx60SLfC+x+uRGW4uJDc2gvhCIUDS6qxwp/5M7HJmOp6 w/PZwbTK/Y23B2sIvYrZxwvuVwbSckV9ZwFjbsKKez0oqb8wmFF9lHClb+zlHbZktHvT Tori21sMCIP4bdapwA4Eju+fnJkohqO7YbucoBGgXTBh71QXKW1ezfo2mx4iD0/ZxJ1o TMQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710508973; x=1711113773; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ky6vAjI9f0v11GIeHx/FRiwL3E84H7dHD+VaFVnUoDc=; b=qlCKkweajYp+L5ly8/cTmZW6Q1yMa5K7rPVTf5ufRLeZWautkyn7hoihuwGUGIs6uM iGh++3Ym4imr8Q59p0P1hHR3j3K7nU89bF5CdmSDBoYHCR2PIEeO1Gj7+zMvNuR8cyGl Moxk9mIH9LCm+WCX2ut1d8M7V8vAHYR1BxTSperpb74EKbig+eTXLxwC2cTykbJI+cgg a8poCxG9eGs6sHEow6oiee7Fm5H44AUeQC1x1F79nN1zqDtrmj/VXlOZ68iFD46KmYNM Y1up5MtnVwnqUKDr6E9YZPOtkT0TZJpPL29uTLnvBsPwNvcgfZr21rrorfZa3gelcI6h 3KNw== X-Gm-Message-State: AOJu0Yx6UvWX3MWIgoc0Vj7KujejPQ6zjbbd77vsjPkEbEx7WQKJ4jUs yJV8NboLQsX59ZdoOx9N9033CDJOQaIdDOg2RrKJPD28x4PvAv1qmjAcEineebs= X-Google-Smtp-Source: AGHT+IFJIfDzLBZHYFFv5q+DtD8ZNb3FNmX0Ys0zfHXnAB38q/hnFQ4UzJJsGVGLhBIPMsCjUGT1kA== X-Received: by 2002:adf:f105:0:b0:33e:8aab:fde7 with SMTP id r5-20020adff105000000b0033e8aabfde7mr2174237wro.28.1710508972677; Fri, 15 Mar 2024 06:22:52 -0700 (PDT) Received: from localhost ([193.47.165.251]) by smtp.gmail.com with ESMTPSA id p6-20020adfcc86000000b0033ec072a491sm3196443wrj.35.2024.03.15.06.22.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Mar 2024 06:22:52 -0700 (PDT) From: Jiri Pirko To: linux-kernel@vger.kernel.org Cc: linux-mm@kvack.org, cl@linux.com, penberg@kernel.org, rientjes@google.com, 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: [patch RFC] mm/slab: introduce KZALLOC_FREE() cleanup-ed allocation macro Date: Fri, 15 Mar 2024 14:22:49 +0100 Message-ID: <20240315132249.2515468-1-jiri@resnulli.us> X-Mailer: git-send-email 2.44.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 5735D1C0010 X-Rspam-User: X-Stat-Signature: qh1gotb3xxsyd3usy6wi8gqqanfajebq X-Rspamd-Server: rspam03 X-HE-Tag: 1710508975-403289 X-HE-Meta: U2FsdGVkX185erpjEuigX/Lwe44NZ9eaaLITQ5UqB5MFvC0GDZPEv+0yxTcZrsQI1bl3LGglzIArGs+mC13FCeXgWmEcex0/WIFUNFbp2bp2sQwl0dZKhzJHV3GuCMg0Z6xHkBugwUqDkmJJcSBXA/OZzCOx+60nHR608ZOpK74UfDAOs5ECmVfmMazwhkGaPLUWVt/rJ6d/VPNhd4KQnWlwvUNhnWied7RHrmPfOQosM6+ysMJvWnmz0Yh6NbYrguO+hStBqOKZtYEhQ9cOtTL+MWUURffeDyMUBxx37KpB+sfcFGQOMdNPtgrB78ZGXwkMdzwLebiod6f3bAeSXwJeA1UQMB09aux28RI8vVhha9KHTYGr43GB1ZHUaSi6WrAM7G4YyUz5RKChUawXInIFqln37rwbdALx50QIaPWhfVPJwPNxwNeiWS4NaHR5jMpakZ8zf2Ohj18mUikChRmtJb3jMv6upTGTujPWJp/KEbifJ2uv1WpJGO1I3AhfdMG/l38B8ombw2/GJVx1LUdegdMTf/RrPyV5IXeMEuXHQF9FUuMQ4lc6dkt4hiJQ7rmoFcgVkfA7puMnUQUWsutEndBZOEC3UvmYLGU+TG1pVL/98X//Gv+hGcc6zpmAlQmEggyTADaTDkSzaF1tvs77KIBf4A7GaNlylFSiVjUSokLrAwCEeJB1lPlwbVpZNprYxz+5NLTssabf8dS1DpBT4op4znEiJDoOfJY/ocJ/aBRWvtex8QMnlHLQchZ42RBdM8l51kTROPD+vpXErFs1HMxY8Mme6QAQvsJ56fZ27t4grNUoyQkrF6uQZDRkctI526oD+FsA4v2SGsc5EE4MhUEIlqx8kgi+fApWXaJqhJfOBtDQsvcFgngsT67q+9ViCfiNXdQw0/qEQWrUeC0rRH4Y8xBf6D6zKJGtXQJ9D6XLJap8V+h2ZTGAWRB08z0ybfP6Y4F77O7I67L SnDg5Jjp F0IWpJ23UE2EECA9wF2ZyUgJasgh4j8HENGYCTRJJp9i+gFcQ5vgVl7IN4ernit8Ihb1KRCRPHJcQThXqB0m/yirQ1tGdrf5ceTYBMha7WWI/N7RHrzjRiXVwMdgKV57rbC2iwN1M+4BGkSq/GjJhWV7Pwj1WPIY+h1AEO5ZbenRzgqa9i3KDKa3xbkcYpQLiH0+Ta2G3ZQxlQEf10YRT/sUhwOz1I1Gou95+tjPUUvcfN635MB6EO+lzrROKCMy9CyCk7QbPsdHxp56U0Etm0DcxuyLb8yga4+VSOOSQojYUpZQytjnz8dABZzU+iY2k188KSdMB1qKd/pydHT3SSfcEAuU+a6Ziq8oLoeE5ZQGzXLY1PMUe92fCHbT+HqJ0XZHwE6WefykqTZx8IZoZcJ7k3nA0S7B6XQdvjFR+XGxOjcZbMEW8/A7TIZIkl44k9mzkmGHdYWzoEzsSDdf8yEKQ8/rQl8O2uVdRRyZrRm/xmtLwZnyzsJPGAtN0nQGs7Pv4I/dANeyrda948rqbBTmpzC0spXZZCUHYKOx6bq1V3ww72MGmOXFtlpQaAXySqudGKg+56parNA40EmD/oEE9hA== 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: 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. 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