From nobody Mon Apr 6 09:08:52 2026 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (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 88B14345731 for ; Thu, 12 Mar 2026 19:26:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773343574; cv=none; b=I+ESVHqD9AVn8Y+SGiGGzKHheRupK5LV2CYD7V2VWMulpI5cT9MTnnv1dExP6RTt7twEl/PNsEpMkrS/C8byCP8qFnxgo98tFDVxdA/4cNLv67De02C2dWFxBmq/4ERZOkgxOKL6VFeYremt5TtAKvVYINFjPvoHRQvNv+b5Og8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773343574; c=relaxed/simple; bh=C5BL90ZoB1JyL/eaJ2PDrGvewvKYdQWNR4yGratO+NQ=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=gvviU04t9hCXSIYQWtM79Yvit6CLyMd0rt854JKFXtXZdMzKynVKtC9W0VpQlEjyFjdJIcr+gwXREn+kJStmVpTRDZ+cA/+GMOWwmG6an8OjYy1gfFAx4eqsAHLNf8CAWIbh5RAs4OohkoHrtAtl7N4i/IRwzQs8+znno+R4mQE= 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=OIEhHY48; arc=none smtp.client-ip=209.85.214.178 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="OIEhHY48" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-2ad617d5b80so10994765ad.1 for ; Thu, 12 Mar 2026 12:26:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773343572; x=1773948372; 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=UUxQK5QJNlcyTiSWRj3BOnT+rEkUhbC9Gnm0lW0kamY=; b=OIEhHY48FgzU2ISjJlJAGZjaIVYoiFkSx7ZQGdcSYKqxlIrGR84wlVnCXdMBYYnMTy ABBApctz4gRUpCtZuJD8nS+iVKaVgYKbhTLJ9Pg/RDU3Gy/FYQRYA0aPayc2T+LIa+Bu rLHzvkne2tRKYz4bH08g4WmoV3mzPiLrs/7LdrVhysr7LkJHCkDvh0x3CFnHghv0gm8t fAIlVGDBSKvfMdegqYP43zbupZre2jnrvuTIcSIeuVo1mOahSRoAG8fdUaiAbdaNaQYl CCcycZJ9ibb0K5Viy99Usumw60Nlu5gGYcpA7inR10GuFmX3IkL7G31AjgxMgyyaW/S8 Bl1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773343572; x=1773948372; 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=UUxQK5QJNlcyTiSWRj3BOnT+rEkUhbC9Gnm0lW0kamY=; b=hRIxSX2Xsy1p0tM3xLZL3golVdTIm9MUDOBd4J4YdjgLuQZGi8gJo6JXPW6+LP83jb qRg2UynMNB/EC38YPLglhD0SDWJ7vKrqT4dkjVzVcwM3cnfP7+9ZAV1wipxsGnPiIggN GzHC87GELyXQ5HY2w9TQELG/Zb1OQmzwV5gcjyUgHUeJG+GHNP+A8UUp7I9n+XpBQAIU W1pxKG3euiAprGrQDPhZEWBqMDU4JcEX3EbVblmFynndGbzedDgrFEF0qwUCyFlLx2KX HN3mTW7Cl4owywh8wpG2cBExqOYhhjVS+NsFGCK5YRHslqAOq8GoiW5rQ0IUSwlZNrjC TjAg== X-Gm-Message-State: AOJu0YwcR/2SqOm78oeJXspb0Lc5iaUjPklf+nqIDd4ViLlxKSO4YLO0 +HASloFBAUJpwjUFb4YdGn0SPM54oi823Hg5/AZylhSy8WK7DiyLKmPaBADbtBd4 X-Gm-Gg: ATEYQzymPuiw7umpJeg/PUUlN9lBhjJicpgllxIOd5Bw93CFEIkjqB4LYNtDjhwYv/5 Qn/riS25VVSLWDgS+BTcLGnaLVZCZFz+/I5y+DC7lksuUDWz11flxoxqwOLYMwVlZCJTBawZIcE Y0JAdJUBYSWDUZz54BDNBBOuskE0r/WlPo8cFfC60F0mQCmWkiD7cqevp/rA6Qxbflc5lRwfzTq T0WFJyd2zAU4HGasTyI3fvDe7BlpfRM8azCJygqPkvXB+fCbd5CobbAo4JhWQo2ptNT+d4wb8wO 5zAntdMc6A46Ei7hX5P1MWSD97K1aElgY1VJ+nEM1Bn1qU/VT7WF/bmUv2r7NUIzX7pUAheU/wi 4R90U46Z2+2+h0kfICsRzOpNNzioix7+OxSlKSIV4hK2O0FuGechCNyJ7DRCcMxqiIBge46dbDW O/BikzLMzIEJwPBcHLiWNEcpJ/hC9rvgFyxZmyTp/pOLYRkGwAvEYttQ== X-Received: by 2002:a17:902:ecd1:b0:2ae:5655:b42 with SMTP id d9443c01a7336-2aeca95988bmr5392935ad.12.1773343572347; Thu, 12 Mar 2026 12:26:12 -0700 (PDT) Received: from ryzen ([2601:644:8000:56f5::8bd]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2aeae34de2dsm67068375ad.59.2026.03.12.12.26.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Mar 2026 12:26:11 -0700 (PDT) From: Rosen Penev To: linux-kernel@vger.kernel.org Cc: Thomas Gleixner , Maxime Coquelin , Alexandre Torgue , linux-stm32@st-md-mailman.stormreply.com (moderated list:ARM/STM32 ARCHITECTURE), linux-arm-kernel@lists.infradead.org (moderated list:ARM/STM32 ARCHITECTURE) Subject: [PATCHv2] irqchip/stm32-exti: Use kzalloc_flex Date: Thu, 12 Mar 2026 12:25:49 -0700 Message-ID: <20260312192549.4453-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 --- v2: fix title 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[]; }; 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; - host_data =3D kzalloc_obj(*host_data); + host_data =3D kzalloc_flex(*host_data, chips_data, dd->bank_nr); if (!host_data) return NULL; 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; 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; } return host_data; -free_chips_data: - kfree(host_data->chips_data); free_host_data: kfree(host_data); @@ -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; } -- 2.53.0