From nobody Mon Apr 6 09:09:33 2026 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 862E22D0C7E for ; Fri, 20 Mar 2026 04:05:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773979503; cv=none; b=aypJJsbnuXjmqgPzICQDD0PFdbszJGGnfTvdKwQ32PahIXIRDUnjscvwmGAuw0dxnhc0B7y6HyPrJx98iaVYbARc24j6WOPakhvddP7KGKrRtOain/IerMuTslhByo3d6fDCGb4QyQJqKhKazbre80ua7wFFp5OP9OeBJQpr3BI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773979503; c=relaxed/simple; bh=LOYbWJB1Zo4cUmrSJOh6/PNPahZDMm/AXhL3nHBlbZw=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=h4h/JxeTZLYxtHC4tQb3BPfP1S67qUEz1eBFAMBf0sAZRXQt7YK92fFVt1EmkwsZ9pXMiGXzod91OavVW3t1aKj13ZmwUf3rL+Sw9XIlpOR5zJkyGz0o/xEmyoSmtuaTNhGte12Zcuyr87nUsQ++FkvRJkbNQAljELAPCNfjBMc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=S/bv06jq; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="S/bv06jq" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-2b061b6cf36so1439785ad.3 for ; Thu, 19 Mar 2026 21:05:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773979502; x=1774584302; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=Bi+cpYb6Vg0VXFOuregCJb6MTqBCf/daXiAT548yjY0=; b=S/bv06jq/9CYPNsGtuIV0usz/Kaj7tkT6N9z4NOx3oIUfWs/RZg+MoZcpGeTYvyqZN BUIFXpxEICRz+Y2zmwhsfBOpMjdsd9l1+kBusPHpIB71M8bxiwjB9ABLZ5bjd4z7XcQB w1K4KTIfOqDaXrMq3RUDKt1W6o1IdqcxEEkWVGcDgATKPQHt4LWHCpD+PM4dKoP9egGw VjtUqAyySML8UeUWNFzzvLLBE9L6aaWJ8lNkfJ2I1Q84ulcGy9nd11opl8MsR5lNdtL5 sPSNSWXcXBI1CF1tdHZDQpVCPjMp/i2ZTRI4CCBUoQgJrLfyinhkXoq1eDFoxRKpi7IE WB/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773979502; x=1774584302; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Bi+cpYb6Vg0VXFOuregCJb6MTqBCf/daXiAT548yjY0=; b=dKQqh9ijPP4Pct+uQGY7M/UUr+pdE7eklyfbrIEXJBD4i9FNPMydA4u5utlI16O0/g lARdnsnVGOMHOTp6LSLxDsgmwKxqxKUaT7fhwmcVg1KuUpT89uTIZjxCIw/NHLXdO4Jd dKg0T5PeWP0LEwoDePutlVpb+1jy6LeD8wO3V75v0x3P3iM9uDKh7viViopNboBjKzah +2Ms2uU1sAr1wFYZDLiRYsrC1084XzFqaR7LkGx6rWNSLa+bvAyQCny9PP4BCCrb/shL wOdJBSCQMFHmMBKF7TlKpzzq7Bsrbq6xd4OIbxW+QKMTl2iGN/LSKtXz0i/zecnvOk7v kROA== X-Forwarded-Encrypted: i=1; AJvYcCU/MdU62kNJDVaNcU3KbrbDJYig1YmaDeG5XtC90yOw2e+DRRg6S2xlex3MdCpA5VhALHw95diJTXTI/H0=@vger.kernel.org X-Gm-Message-State: AOJu0YxXXEqZnPIbppnSS3MVdlkImKE/OliG8+H95WlfRqZOgG8nWgbn TeW9VBt/5LGEXvDTk1uZfVJU2UIowTatp8J3+f9AenjRnYg5+9MheaaU X-Gm-Gg: ATEYQzxAFuQy1KgOeJ/3tGxbcS4jdnUmmzdEDeMk/1oN9Sgtw4myMEkA2C5pGcOKdhS Htqp7MGsKuQyYP6QNsX3FXOImQ8ClPYE2podAyxoUM8kKMpkoWjGWlMaCtnUf+0xzu6Cj26SxUp XqKtohvRwgzs7EVBIdVKqb7bBvXOUdN8HQ7YUS4yvMuX9+k2cp+yJYaBr7GXoeHb3x5bnFqbhAW YFC1AbTg7Gi6IGEvAo3gYakMtT0CdRDVTpBOMeLrVJNfrgqLNk2Jc51dCaXBZ0a3LjF+qGlKogS KG1Rnj05DbYf7OlmxXdwW80q308+D3oRlvN/fbQT6c+2CopKRKZYrbtroOdudWZaDWguAfyXiep yY7Jnjh9C+4fiSKGthozk9iG6JHD0dunvi9tTZeXv3lIiwb+T43mYdsXRdM3xA4DYF0PiO0SVCb Hk8FnajGXlPFJfTt+dGeetmia3aJDV6wM1Q3qS6RKvc3Qtn61MP62NvJg= X-Received: by 2002:a17:902:e74b:b0:2b0:7531:b61e with SMTP id d9443c01a7336-2b0827c2095mr13747205ad.41.1773979501693; Thu, 19 Mar 2026 21:05:01 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d::8bd]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b083516ae1sm7212905ad.13.2026.03.19.21.05.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Mar 2026 21:05:01 -0700 (PDT) From: Rosen Penev To: linux-stm32@st-md-mailman.stormreply.com Cc: Thomas Gleixner , Maxime Coquelin , Alexandre Torgue , linux-kernel@vger.kernel.org (open list:IRQCHIP DRIVERS), linux-arm-kernel@lists.infradead.org (moderated list:ARM/STM32 ARCHITECTURE) Subject: [PATCH] irqchip/stm32-exti: Use kzalloc_flex Date: Thu, 19 Mar 2026 21:04:43 -0700 Message-ID: <20260320040443.46038-1-rosenp@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Simplifies allocations by using a flexible array member in these structs. No need for a second kfree. Signed-off-by: Rosen Penev --- drivers/irqchip/irq-stm32-exti.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/drivers/irqchip/irq-stm32-exti.c b/drivers/irqchip/irq-stm32-e= xti.c index 5fdf335acb46..144120cadfa0 100644 --- a/drivers/irqchip/irq-stm32-exti.c +++ b/drivers/irqchip/irq-stm32-exti.c @@ -45,8 +45,8 @@ struct stm32_exti_chip_data { struct stm32_exti_host_data { void __iomem *base; struct device *dev; - struct stm32_exti_chip_data *chips_data; const struct stm32_exti_drv_data *drv_data; + struct stm32_exti_chip_data chips_data[]; }; =20 static const struct stm32_exti_bank stm32f4xx_exti_b1 =3D { @@ -269,26 +269,20 @@ stm32_exti_host_data *stm32_exti_host_init(const stru= ct stm32_exti_drv_data *dd, { struct stm32_exti_host_data *host_data; =20 - host_data =3D kzalloc_obj(*host_data); + host_data =3D kzalloc_flex(*host_data, chips_data, dd->bank_nr); if (!host_data) return NULL; =20 host_data->drv_data =3D dd; - host_data->chips_data =3D kzalloc_objs(struct stm32_exti_chip_data, - dd->bank_nr); - if (!host_data->chips_data) - goto free_host_data; =20 host_data->base =3D of_iomap(node, 0); if (!host_data->base) { pr_err("%pOF: Unable to map registers\n", node); - goto free_chips_data; + goto free_host_data; } =20 return host_data; =20 -free_chips_data: - kfree(host_data->chips_data); free_host_data: kfree(host_data); =20 @@ -389,7 +383,6 @@ static int __init stm32_exti_init(const struct stm32_ex= ti_drv_data *drv_data, irq_domain_remove(domain); out_unmap: iounmap(host_data->base); - kfree(host_data->chips_data); kfree(host_data); return ret; } --=20 2.53.0