From nobody Thu Dec 18 20:32:52 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DC693C001B0 for ; Sat, 12 Aug 2023 19:45:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229947AbjHLTpM (ORCPT ); Sat, 12 Aug 2023 15:45:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40574 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229526AbjHLTpH (ORCPT ); Sat, 12 Aug 2023 15:45:07 -0400 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8E44E172D for ; Sat, 12 Aug 2023 12:45:10 -0700 (PDT) Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-307d58b3efbso2670633f8f.0 for ; Sat, 12 Aug 2023 12:45:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20221208.gappssmtp.com; s=20221208; t=1691869509; x=1692474309; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CULFRDWFN10t8WpABLavFhKN9lFYe5MwzKCycwxtDA0=; b=32Wo5/7gD3kHVG2bE7C5Dzqrysadnty+I+hXXbUgh9vb3DgUc7Fg9UpWrFBbT1wRnW n/0LkcJfMnKLYCPHu57InOS0ntLiQtnRYgihfe/oUAF9nTiRO+uSK9bwnKOEEVQyhBp9 IQQ2WGk74NBLakCAWcdHzIy+7qb/JaWl/oSmAkfr0kJSoITs+CvtAsvyZYAH41cHr5WN ijC5SH2W7Rmqj9f9t3l/yurmz5MH0+dETzInktolZwdCh6qZ+8B/9hOuBJh8I5wTiJIQ f+kqGxF2SBI6mVblj77knt3z918/RnjpcDRhQlDUVP9bjVpZol9ijMzvIU7uZtnZtzKi hLNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691869509; x=1692474309; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CULFRDWFN10t8WpABLavFhKN9lFYe5MwzKCycwxtDA0=; b=T3sIz+leW7UxchEx8Erqho1D/dC1RqjO1C/7Q59lREDIdyveBpaCyqnv5X3/iKFrsj goog4sXXCucUQ8NLBaK8o13o2nvlrUojXrvesggvBWs9SXKI6bwiI8xx3DJfEVsxSLwl Z/xYTdMTDLsK7ge20nx2DBg541xMgbSTB74Qe3yyOEPnugIE/QTdReIxkyqbVcWGW9hT xl0vEFEk4qLJqre3ko290+tFD7GQWpn80wpA454EC8NwT1bht5UsjtOyW6NKrPxDYAn8 tplgHmz/gLlRdld+B36E+GwBljoBKyIpPb5DWCaoAFw+ueU67Ax4RDJQhAQ2lAOIJGjw tAnw== X-Gm-Message-State: AOJu0YwfSNiXYg4OAS2k6vmiQPvfR0x5MpuI+yB282WE7inH04w6ZAeP f6tYw0DaxfpWW4vTEuIDyajOlw== X-Google-Smtp-Source: AGHT+IHad6FvE7qU9k4gHMbWO4EqorXMQ+Q1/KkCguvBXdZ+72TpClVUmgmnQei/pizoCGa+yTJP7A== X-Received: by 2002:a5d:500f:0:b0:317:759a:8ca8 with SMTP id e15-20020a5d500f000000b00317759a8ca8mr3392769wrt.67.1691869509186; Sat, 12 Aug 2023 12:45:09 -0700 (PDT) Received: from brgl-uxlite.home ([2a01:cb1d:334:ac00:74c0:22ae:ddb5:1bed]) by smtp.gmail.com with ESMTPSA id y7-20020a056000108700b003188358e08esm8813765wrw.42.2023.08.12.12.45.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 12 Aug 2023 12:45:08 -0700 (PDT) From: Bartosz Golaszewski To: Yury Norov , Andy Shevchenko , Rasmus Villemoes , Thomas Gleixner Cc: linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 1/4] genirq/irq_sim: dispose of remaining mappings before removing the domain Date: Sat, 12 Aug 2023 21:44:54 +0200 Message-Id: <20230812194457.6432-2-brgl@bgdev.pl> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230812194457.6432-1-brgl@bgdev.pl> References: <20230812194457.6432-1-brgl@bgdev.pl> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Bartosz Golaszewski If the device providing simulated interrupts is unbound (real life example: gpio-sim is disabled with users that didn't free their irqs) and removes the simulated domain while interrupts are still requested, we will hit memory issues when they are eventually freed and the mappings destroyed in the process. Specifically we'll access freed memory in __irq_domain_deactivate_irq(). Dispose of all mappings before removing the simulator domain. Fixes: b19af510e67e ("genirq/irq_sim: Add a simple interrupt simulator fram= ework") Signed-off-by: Bartosz Golaszewski --- kernel/irq/irq_sim.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/kernel/irq/irq_sim.c b/kernel/irq/irq_sim.c index dd76323ea3fd..2c8a9cc1faa6 100644 --- a/kernel/irq/irq_sim.c +++ b/kernel/irq/irq_sim.c @@ -4,6 +4,7 @@ * Copyright (C) 2020 Bartosz Golaszewski */ =20 +#include #include #include #include @@ -16,12 +17,14 @@ struct irq_sim_work_ctx { unsigned int irq_count; unsigned long *pending; struct irq_domain *domain; + struct list_head irqs; }; =20 struct irq_sim_irq_ctx { int irqnum; bool enabled; struct irq_sim_work_ctx *work_ctx; + struct list_head siblings; }; =20 static void irq_sim_irqmask(struct irq_data *data) @@ -129,6 +132,8 @@ static int irq_sim_domain_map(struct irq_domain *domain, irq_set_handler(virq, handle_simple_irq); irq_modify_status(virq, IRQ_NOREQUEST | IRQ_NOAUTOEN, IRQ_NOPROBE); irq_ctx->work_ctx =3D work_ctx; + irq_ctx->irqnum =3D virq; + list_add_tail(&irq_ctx->siblings, &work_ctx->irqs); =20 return 0; } @@ -141,6 +146,7 @@ static void irq_sim_domain_unmap(struct irq_domain *dom= ain, unsigned int virq) irqd =3D irq_domain_get_irq_data(domain, virq); irq_ctx =3D irq_data_get_irq_chip_data(irqd); =20 + list_del(&irq_ctx->siblings); irq_set_handler(virq, NULL); irq_domain_reset_irq_data(irqd); kfree(irq_ctx); @@ -182,6 +188,7 @@ struct irq_domain *irq_domain_create_sim(struct fwnode_= handle *fwnode, =20 work_ctx->irq_count =3D num_irqs; work_ctx->work =3D IRQ_WORK_INIT_HARD(irq_sim_handle_irq); + INIT_LIST_HEAD(&work_ctx->irqs); =20 return work_ctx->domain; =20 @@ -203,8 +210,13 @@ EXPORT_SYMBOL_GPL(irq_domain_create_sim); void irq_domain_remove_sim(struct irq_domain *domain) { struct irq_sim_work_ctx *work_ctx =3D domain->host_data; + struct irq_sim_irq_ctx *irq_ctx, *aux; =20 irq_work_sync(&work_ctx->work); + + list_for_each_entry_safe(irq_ctx, aux, &work_ctx->irqs, siblings) + irq_dispose_mapping(irq_ctx->irqnum); + bitmap_free(work_ctx->pending); kfree(work_ctx); =20 --=20 2.39.2 From nobody Thu Dec 18 20:32:52 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0AF7CC0015E for ; Sat, 12 Aug 2023 20:20:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229984AbjHLTpP (ORCPT ); Sat, 12 Aug 2023 15:45:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40590 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229662AbjHLTpI (ORCPT ); Sat, 12 Aug 2023 15:45:08 -0400 Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 92E1A1709 for ; Sat, 12 Aug 2023 12:45:11 -0700 (PDT) Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-319559fd67dso1960532f8f.3 for ; Sat, 12 Aug 2023 12:45:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20221208.gappssmtp.com; s=20221208; t=1691869510; x=1692474310; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0m1FhVU2PW8VL4/Q99Z7ioPQ3obrP19JMtvG/2fDn+w=; b=s1hLnMvqm74G/xyYSuKPu4JjPsHeCAfstE2crsToeQ4KO9S7Spf1lYC6vKC1ClCgLA 8txrJyw+UjkqsjGbNPR2lxOiP642jcNKe8K8ibG423NTTw76xWdQL8jvdIwQV/HBHrqr 2koCXbwZtJwVWqkjUS5g2Ievkla1uLwGFu5NEITNXy7T0DC/3GROu+gKkERFS5hReTjx MQTrD+u/MA6Q/1d8Nl6OwhMsdtn4wB36Fp6JgTOA4wJ2l0iRyu8YzVaP4FUUuysC7jFR pBZMHZut2vVzRoTdUQNx+1cwThHgSc2iRwS47D++HxbnjhPcKMq/qLFhxiBBrpJYxEjD kScA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691869510; x=1692474310; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0m1FhVU2PW8VL4/Q99Z7ioPQ3obrP19JMtvG/2fDn+w=; b=Rf/gtVbnEP9fG80iGRplOVlxbqwwWkRe6XjfIdurZzrzu0rTzQY46YfJ6dnjyjklHK +2iYvexUmqjh6fVUa1RUVPU9eeCaaGl7nC6DQG7myWDS8HJtRnuSzuSjYibvkyk1NZcx 8uyyuNcXJxF/yZT3XPpLOvJVxaeDKhqlLBSv7K8H9HZOAtli3N+8scRSlnskcUSxj+76 mlCtuXED4W6WSbq6ZXOrjITo8vfFGAcd01L5D4OJr2rOGtvpgig9STyf4qhkHZdPgjD3 pLlu3m1NqLkzyBFfd80nBtZGw389Sv5DBTqmfq3LiZ9fFC62uztZHoYtBn+dZCsP48dA Shkw== X-Gm-Message-State: AOJu0YzZCq70uFeJEVxLQU4UpQHKR8snnr3iSsXSHeKSVMqcJ/nZzt5u UHuwWItXgkWsNlgGlbesfocHoQ== X-Google-Smtp-Source: AGHT+IG0Fc4YBke8xRxtqmaq32uT1f3XFVbn0a4UCssZJQuEMUz8Nsx5GQ84Og/7YTQCxVODPjZhxQ== X-Received: by 2002:adf:f041:0:b0:316:efb9:101d with SMTP id t1-20020adff041000000b00316efb9101dmr4575031wro.25.1691869510160; Sat, 12 Aug 2023 12:45:10 -0700 (PDT) Received: from brgl-uxlite.home ([2a01:cb1d:334:ac00:74c0:22ae:ddb5:1bed]) by smtp.gmail.com with ESMTPSA id y7-20020a056000108700b003188358e08esm8813765wrw.42.2023.08.12.12.45.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 12 Aug 2023 12:45:09 -0700 (PDT) From: Bartosz Golaszewski To: Yury Norov , Andy Shevchenko , Rasmus Villemoes , Thomas Gleixner Cc: linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 2/4] genirq/irq_sim: order includes alphabetically Date: Sat, 12 Aug 2023 21:44:55 +0200 Message-Id: <20230812194457.6432-3-brgl@bgdev.pl> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230812194457.6432-1-brgl@bgdev.pl> References: <20230812194457.6432-1-brgl@bgdev.pl> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Bartosz Golaszewski For better maintenance and readability keep the included headers in alphabetical order. Signed-off-by: Bartosz Golaszewski --- kernel/irq/irq_sim.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/irq/irq_sim.c b/kernel/irq/irq_sim.c index 2c8a9cc1faa6..a8b013d0c5be 100644 --- a/kernel/irq/irq_sim.c +++ b/kernel/irq/irq_sim.c @@ -4,11 +4,11 @@ * Copyright (C) 2020 Bartosz Golaszewski */ =20 -#include +#include #include #include #include -#include +#include #include =20 struct irq_sim_work_ctx { --=20 2.39.2 From nobody Thu Dec 18 20:32:52 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id ED983C001B0 for ; Sat, 12 Aug 2023 19:45:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230028AbjHLTpV (ORCPT ); Sat, 12 Aug 2023 15:45:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40604 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229870AbjHLTpJ (ORCPT ); Sat, 12 Aug 2023 15:45:09 -0400 Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 89D3E172D for ; Sat, 12 Aug 2023 12:45:12 -0700 (PDT) Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-31972944f30so21751f8f.0 for ; Sat, 12 Aug 2023 12:45:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20221208.gappssmtp.com; s=20221208; t=1691869511; x=1692474311; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7Gea6QOSQ2NLWpWhPeEBkdF1fprl0wRUu4kccc1zIas=; b=yF8kJyvjwMlFAO15PBbWRAfxWOOqapN3Y98nUA7FuaZw3ANfcx833AhpNHjvdIDwh1 zIwkhXzdOj34f4y23KmcIWkYtwxQ0tJVqRdcS74VbdPW32Cil6kI+s3z2zy0CxiD0TUV VxNgdXfOecTpl8lKP8gCbmQkRJ7i4k1I8zHwPShznAFf/xguejRJKBfpBXAQaShUDJJE bTeF34VaAl9QjDMcGeQ79NIPrJbSN/moHEQLoKZhk2B8OvJiCTBhSgsjCfJNIYsc8+3o LEpzb5ubkkCbfwIRUSf48EL7bmS/qROJ4GFePJSrd2Aj0rcVe31WPGiFHjpLlYE8LnqF fBjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691869511; x=1692474311; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7Gea6QOSQ2NLWpWhPeEBkdF1fprl0wRUu4kccc1zIas=; b=QQxA+wO+IWhNKPn1xfPX49QGUSgufvRrJMmB3Unrkv1XwAM6dm5bUT7W6WX0430TdK tgW1h6QrWUXuYnazkeMdnQ1bhFkcRGUFl/qkLNH0O1pPuE5KuHyOQLSavtmvbCLrHJEj GctP8Typd8JCI4fnd3QX3jGu3ctfmqKxdMlBoQDE4lFo8+Y6i9dY16NHnw5FDkcTPF+g 2RvviQdNK1yoBda0l0YK738ccdaqIPe5QfDogYv9w85LMhn4M07N2zzNJbNkePEFDRYM 0JnswYx/D316MzuJL8hOcHy/e1nm1HihodJDrUJYe+fF9klQStkqi3h0fY0GH8XzLCYi cwtg== X-Gm-Message-State: AOJu0YxoUceMb1KnIpDco6XsLONi8lIqATJ/tua75+W0SEoLgRvWn2GB AIdSVdcBYigvL/01HRhnTlSItA== X-Google-Smtp-Source: AGHT+IFWTTHbuOeaJHIalp3/1swDo5a7o6UAANLDE7pUMSEZv5L1CbQY8HMuSxbRrHigv5UKu1if9w== X-Received: by 2002:a5d:4985:0:b0:317:eee2:6fba with SMTP id r5-20020a5d4985000000b00317eee26fbamr4240122wrq.40.1691869511067; Sat, 12 Aug 2023 12:45:11 -0700 (PDT) Received: from brgl-uxlite.home ([2a01:cb1d:334:ac00:74c0:22ae:ddb5:1bed]) by smtp.gmail.com with ESMTPSA id y7-20020a056000108700b003188358e08esm8813765wrw.42.2023.08.12.12.45.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 12 Aug 2023 12:45:10 -0700 (PDT) From: Bartosz Golaszewski To: Yury Norov , Andy Shevchenko , Rasmus Villemoes , Thomas Gleixner Cc: linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 3/4] bitmap: define a cleanup function for bitmaps Date: Sat, 12 Aug 2023 21:44:56 +0200 Message-Id: <20230812194457.6432-4-brgl@bgdev.pl> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230812194457.6432-1-brgl@bgdev.pl> References: <20230812194457.6432-1-brgl@bgdev.pl> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Bartosz Golaszewski Add support for autopointers for bitmaps allocated with bitmap_alloc() et al. Signed-off-by: Bartosz Golaszewski --- include/linux/bitmap.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/linux/bitmap.h b/include/linux/bitmap.h index 03644237e1ef..6709807ebb59 100644 --- a/include/linux/bitmap.h +++ b/include/linux/bitmap.h @@ -6,6 +6,7 @@ =20 #include #include +#include #include #include #include @@ -125,6 +126,8 @@ unsigned long *bitmap_alloc_node(unsigned int nbits, gf= p_t flags, int node); unsigned long *bitmap_zalloc_node(unsigned int nbits, gfp_t flags, int nod= e); void bitmap_free(const unsigned long *bitmap); =20 +DEFINE_FREE(bitmap, unsigned long *, if (_T) bitmap_free(_T)) + /* Managed variants of the above. */ unsigned long *devm_bitmap_alloc(struct device *dev, unsigned int nbits, gfp_t flags); --=20 2.39.2 From nobody Thu Dec 18 20:32:52 2025 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BF2E5C001E0 for ; Sat, 12 Aug 2023 19:45:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230042AbjHLTpX (ORCPT ); Sat, 12 Aug 2023 15:45:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40608 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229475AbjHLTpK (ORCPT ); Sat, 12 Aug 2023 15:45:10 -0400 Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com [IPv6:2a00:1450:4864:20::434]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 660B11709 for ; Sat, 12 Aug 2023 12:45:13 -0700 (PDT) Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-3175f17a7baso2548663f8f.0 for ; Sat, 12 Aug 2023 12:45:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20221208.gappssmtp.com; s=20221208; t=1691869512; x=1692474312; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MqGzC2rPtSOCIseSAzI0v6TAcmqcvlICgEZd4/z4SME=; b=iE2Ry5jpWvaNdC9+3pnYEE7ur4MaY/wJO14uDOB4rW2L+ecLZxcoFlFCARAiRtShiw 99Pw58zQc2ycvMcfmOchgs3y/8hWnTb6fdZLgKD16Y8JfQavYpt22fzkANJofbX4elyU I67kdYcid7Iq6ndFIiN29m0ei7l0Pk8myn2Az1A8UWhqGthmS+fhWlFI7pMW4Ux9sUU4 Ec9tKhldHtf7krdOv1DzVO3nX8Cm08hD0GT25Jt3Fq9M1d/TapnN1mM9sJqJO/B5TEua hXo/ymuqAiUF75ICjLX36orB0LpkNQakKRvRsVbn6cvTXfaieGLal19+CX60jPGGMoMB APFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691869512; x=1692474312; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MqGzC2rPtSOCIseSAzI0v6TAcmqcvlICgEZd4/z4SME=; b=VGcyjPMZ1tvS7v42nAYqH+Xh2IYLd1mY1e7rMdtm8E9s/k6I0QUMheR50n84sMjm/l OyWNkneEiQvnB+467EeI3TJs7tmjmzVydc3KHvmhIYo0hMmTctE6Ns6B2nAAYJl0Nmfd hCEGoKqp8UuQcJITIZlXsOhNQuPlBiKOCm9aFTGeMGtu5N/zn6Y7uXM2WJLu3V23/D7e UDKWUcTv07VU5DSBpyvCSTAB/dp8K2bZFFVcUw0G8IegrBgXqKU2fxqvaQvj/AcWpz6G 3SNBxxGMCgQN9KL80Y3eWXe77JgEcGTtbWBWKos78S9CXwH7vTN18bKC5N+5uK2TVuNB DzmA== X-Gm-Message-State: AOJu0YxCHV6qFW2dPf1jPVJmHBOWCNAUlZsDxCNgeBcKzHl3Xxmy9Ehl tDvf+nDJPp0kyQ6u8cce80jWiQ== X-Google-Smtp-Source: AGHT+IG1/moDx4srSfpMdO9YP5AYBHLtqKQIXqDZzDz59rPAFDLNj1E7YIMDBPo8dBvFHL2icjAANA== X-Received: by 2002:adf:e30b:0:b0:314:11fe:c72e with SMTP id b11-20020adfe30b000000b0031411fec72emr4127557wrj.46.1691869511943; Sat, 12 Aug 2023 12:45:11 -0700 (PDT) Received: from brgl-uxlite.home ([2a01:cb1d:334:ac00:74c0:22ae:ddb5:1bed]) by smtp.gmail.com with ESMTPSA id y7-20020a056000108700b003188358e08esm8813765wrw.42.2023.08.12.12.45.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 12 Aug 2023 12:45:11 -0700 (PDT) From: Bartosz Golaszewski To: Yury Norov , Andy Shevchenko , Rasmus Villemoes , Thomas Gleixner Cc: linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH 4/4] genirq/irq_sim: shrink code by using cleanup helpers Date: Sat, 12 Aug 2023 21:44:57 +0200 Message-Id: <20230812194457.6432-5-brgl@bgdev.pl> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230812194457.6432-1-brgl@bgdev.pl> References: <20230812194457.6432-1-brgl@bgdev.pl> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Bartosz Golaszewski Use the new __free helper from linux/cleanup.h to remove all gotos and simplify the error paths. Signed-off-by: Bartosz Golaszewski --- kernel/irq/irq_sim.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/kernel/irq/irq_sim.c b/kernel/irq/irq_sim.c index a8b013d0c5be..202beb1169c9 100644 --- a/kernel/irq/irq_sim.c +++ b/kernel/irq/irq_sim.c @@ -4,6 +4,7 @@ * Copyright (C) 2020 Bartosz Golaszewski */ =20 +#include #include #include #include @@ -170,34 +171,29 @@ static const struct irq_domain_ops irq_sim_domain_ops= =3D { struct irq_domain *irq_domain_create_sim(struct fwnode_handle *fwnode, unsigned int num_irqs) { - struct irq_sim_work_ctx *work_ctx; + struct irq_sim_work_ctx *work_ctx __free(kfree) =3D NULL; + unsigned long *pending __free(bitmap) =3D NULL; =20 work_ctx =3D kmalloc(sizeof(*work_ctx), GFP_KERNEL); if (!work_ctx) - goto err_out; + return ERR_PTR(-ENOMEM); =20 - work_ctx->pending =3D bitmap_zalloc(num_irqs, GFP_KERNEL); - if (!work_ctx->pending) - goto err_free_work_ctx; + pending =3D bitmap_zalloc(num_irqs, GFP_KERNEL); + if (!pending) + return ERR_PTR(-ENOMEM); =20 work_ctx->domain =3D irq_domain_create_linear(fwnode, num_irqs, &irq_sim_domain_ops, work_ctx); if (!work_ctx->domain) - goto err_free_bitmap; + return ERR_PTR(-ENOMEM); =20 work_ctx->irq_count =3D num_irqs; work_ctx->work =3D IRQ_WORK_INIT_HARD(irq_sim_handle_irq); INIT_LIST_HEAD(&work_ctx->irqs); + work_ctx->pending =3D no_free_ptr(pending); =20 - return work_ctx->domain; - -err_free_bitmap: - bitmap_free(work_ctx->pending); -err_free_work_ctx: - kfree(work_ctx); -err_out: - return ERR_PTR(-ENOMEM); + return no_free_ptr(work_ctx)->domain; } EXPORT_SYMBOL_GPL(irq_domain_create_sim); =20 --=20 2.39.2