From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11020094.outbound.protection.outlook.com [52.101.84.94]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0E7504DD6CB for ; Tue, 12 May 2026 06:34:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.94 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778567662; cv=fail; b=S2CYu0whcu16ePFV38EAxRgNr3D5GmrZoc6L2i0+IfNjhJvZrg6jMi0LKKo4R162qzoHddzAcgF3ZF5HxI+ScUG8tT79GW5Dj845YtfjuYIFVn0WxP8T66SZC421St0aLHrWdo6h4VKwxsl24dl/QHyItNHAa74StnS/IZRjXBY= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778567662; c=relaxed/simple; bh=JEBJ9kwjUl/jMzyF6u7k/ps1tc6oUexQoxoIMr9GYOU=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=IKSiBzVqtjYcPyJqljWobnKEh/0hr+kAXHQhLbGuigSGZQnCBIeZDxxVSZB59LcYxmiZCr8KFFgy9+ClK0nzLs+Q6/CPlmpLv8lbM6Yv6418MFYHrbSUTsPIetsAlsdTOwsnqtrfNzJDScjI/knYLXExQAqO5Hj3fS4KCH9ooiY= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=codasip.com; spf=pass smtp.mailfrom=codasip.com; dkim=pass (2048-bit key) header.d=codasip.com header.i=@codasip.com header.b=xzBqLKx+; arc=fail smtp.client-ip=52.101.84.94 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=codasip.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=codasip.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=codasip.com header.i=@codasip.com header.b="xzBqLKx+" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DooC8RtvRdy4qwFub5hk96GOby719+XdkMX5tY2jtOlwHicEmqPyvArpURlYEK3SNSriGBmy3/s8tYU3KNOG+30mnYzfLtiRnf6B9cfYxkDmIx/vxH8jTrtzxqtjo9MWaLoS7Ic0rRCLs6Z6pXCYrbX1EBlTCkaOikq3ml6PKAbACTMyiqUZU8sOW3eX/lJnK83QSqUERXiNw8X/btqEIkNKr8cJip1eEar5ystLJT7l5CzZ6izsAQLbDgWHd6ecicx/TA9mQyrlZdCXxr6fMobDo+rd1+nDgkKdMJ1hJdU8PJ1rUlD8ANWSd8P55ceot6fTf3In7WnM1JxEj3c4LQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=rlf+CNqXt+a7+W/74238i2oQwoQo3yscMwzJLqyBhSk=; b=fpg4/CXReDm4TwWIwPTA18/aGJjIk/JIygXI6m2gQbalLoKtCGCebZQIRIhC3694MJm0Y7BIz+iF9vz7j4PLMupwskc51IjzFMlf7zXbS9DoXKaPTlIYQ2o80aev9nm6mGk5zWmmak3L1G6Qo9WP8uWGvrR4WZ0BFDUMFlRI7RcnSe/jY2qBBRxMIbkwgRz1GVm05bbX/jn5oFB6nWwcUgTflj9nRdWgDWX4PvON6jDIeRWtxPUx0LvGYhYGh+YS+Hi26Nyi7vHLETI2wywU8RxNXjGwDgjZVyoxhNdFJshY/+d15+prpbv3MqSOMOi0J40Z5A3fimomZY/R9BpvPw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=codasip.com; dmarc=pass action=none header.from=codasip.com; dkim=pass header.d=codasip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=codasip.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rlf+CNqXt+a7+W/74238i2oQwoQo3yscMwzJLqyBhSk=; b=xzBqLKx+MDUu701g0ZTx+UJjfq9c8DWvXFpZQWrbvQdSHYW+Ah3kqkK7mbilCdLbZ9MjumfHyStoxJi/BvUFEtbxsQG3vGpqOeClwjKieT+A5QC/LCtFKtMdbta6fUOQOMf0QijEUqrax8Fy0q5B9TlqkR9YrKsEdnLOuY4UH3Rl54KAmf7Uzuhd3/jyp/D9BpnD+mq7mHJna7CvyvycbEMeyLnq+PU66JZYdCbvY1zmdh9uIIjyrecwusAPhsFzcKw+hbAFgy9fagViPcIa4Mor1PGc15ircQBf312h5y8ZL1IQ/vH+XPEd08JhlMXuQdYNr9K8vNgXO3aDK8oxXA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=codasip.com; Received: from AM9P192MB0983.EURP192.PROD.OUTLOOK.COM (2603:10a6:20b:1f4::5) by VI0P192MB3023.EURP192.PROD.OUTLOOK.COM (2603:10a6:800:2b8::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9913.11; Tue, 12 May 2026 06:34:03 +0000 Received: from AM9P192MB0983.EURP192.PROD.OUTLOOK.COM ([fe80::f0e5:8465:302:9a9c]) by AM9P192MB0983.EURP192.PROD.OUTLOOK.COM ([fe80::f0e5:8465:302:9a9c%4]) with mapi id 15.20.9891.021; Tue, 12 May 2026 06:34:03 +0000 From: Florian Schmaus To: Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti Cc: Andrew Jones , Samuel Holland , Miaoqian Lin , Sean Chang , linux-riscv@lists.infradead.or, linux-kernel@vger.kernel.org, Florian Schmaus Subject: [PATCH] riscv: module: Use scope-based resource management for scratch buf Date: Tue, 12 May 2026 08:33:59 +0200 Message-ID: <20260512063359.713142-1-florian.schmaus@codasip.com> X-Mailer: git-send-email 2.53.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: FR4P281CA0430.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:d1::20) To AM9P192MB0983.EURP192.PROD.OUTLOOK.COM (2603:10a6:20b:1f4::5) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9P192MB0983:EE_|VI0P192MB3023:EE_ X-MS-Office365-Filtering-Correlation-Id: cc087cce-2209-4535-b872-08deaff0758d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|10070799003|366016|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: 0H89eQPg/aXU2fQTX5cPpO7kequG8Db1IflqvkzqWA2a0P9NA10IBrU2PFziAm+VI47/Frtma9x9n8/8VT9Kw4M981AqJnR27mw7tuIXD7bcd8pOcupx4iRqNOVs4iHz0nJFRA4LutBBtrSEZFdfSpESQI5E/NtO5gXxydNlmM171fTqw4f8PG9QypxvoDw9e2Q9H6jVpsZ2u1zDshCRNhhfz5NhfagSMsbINb+EUkd3nXbSIXzImPpv7DAQ6KPwOx+allta5RuSoAskfRV9/xoODCYDDc2lZBXouP6YAW7iLFa22cHSNbN4LzLMGsRfX5WMrp0HqL070DezTXdNgzhXwl9cM/pePmON2wYSA0SCNCYSNBq5NqzJUuf4R0S6AjHDFn8Es5XXhaW4ht7f8R2Gjst+FSP1F6swarMRkk/YST/DSKMhNIfa0bdgsApnC8F0cSCmsuj4Iq91hwKjeHl8n9JL5/DWA4onNfPUKlLTMgY6xlVmKtsdwhqv4iJfjdlpV88Wa6inNrKWlWXWNVLG1KM34rhhjGakdD+GfczLdjkjuJvpnIzXKR+pGyNrnQrkMZW01AUrFfg1r/3Jy2kP4u9dznTR24UnL2dzmMZ/2ed/8Yh5QG+jiHG9Ghe+Ql5hpqxc/PXpKDIsQkv75ev7YZiF7aBGfn2Sk5C0Qivip1rjX8wYc31KQLk85Dwe X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM9P192MB0983.EURP192.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(10070799003)(366016)(18002099003)(56012099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rkF4ytln7CS023JrDgtlfpwC0TRUSyvBUO1d9PpYAAirPMJyldCpsR5YPI5R?= =?us-ascii?Q?JIp6KW8uImMhzLYOTO6kdNfcLsRBsPv2A/SIr/CNlIYFiKyY8mx19vg4O0bU?= =?us-ascii?Q?e6p2GBzRknwU9IqnZ9m0wJy+poLzTP5vunl/SUArI8p47u2LM6yjEpLlUpmv?= =?us-ascii?Q?gQeHbeLh+lTdegDsUTSry/CnSncxmRzybLgQQ/KNd2JAyOf2gJyAYaj/htV1?= =?us-ascii?Q?UJEUNY919J03f652humZsmWNr/SdeVf/s9S85XQps9CpMCvThSqfJPVnTpmQ?= =?us-ascii?Q?TUpQVYbi5Zu1K8d7aQxf8u27aibDKEU8b4MM+RAym2/E8ccBCvy7NiwYw506?= =?us-ascii?Q?/LgW5G1Mg+4+DEgSsBz2mYYQ7yZcgl8y2ORdW9JnMTxwU8IGbcLTT5BNWP7l?= =?us-ascii?Q?1okQmqSgjNSsbvEGseakh7VM7wCjqaThlUevySTO5LxpcFnSs615hNSsjmSL?= =?us-ascii?Q?idKqpVsPB51+6nY0nEEXz5VTzRphAoNz7ae9K0ts1GajJGrQNMyU2TTG43Cf?= =?us-ascii?Q?mHivoz7D5q1C9+OJNhG4fQs+/qyJkNY4ra3Colt5PrDGuaJSD0flRxUc7DUg?= =?us-ascii?Q?N7TOVGv/6ZPaMSp3j2vrpKh1Z6xV79BEY9hIkvpeR5TAF0vIoJ5mOmSMtBOy?= =?us-ascii?Q?hjMZlnwA6SmdTxv9awD20Yuq09bkgsycqGIUpOh3g3RbcjLo+hdwVRouvI9B?= =?us-ascii?Q?fjfsIGJMBTyiA0Sy1MGlzs489XsEDVo6aTPox31UqhJgmWXglCwOOcPflKCH?= =?us-ascii?Q?s3jl+eUW3BmIgv07nEfI7IMsgU1sB/Qp3Cf61W9e+WiC89CNQ01bb9rlZk7W?= =?us-ascii?Q?ok1En2S7iBvjYepYFMWhP+ilkWRAptkHQAGNKVYxWyZUYzJ68tmwDP1CJqc+?= =?us-ascii?Q?VDFFD1FhCJViX/RMkVyz7i46NywfAz/mS0OCr3+JkQ2j0kO0AFReJ7hRoCl1?= =?us-ascii?Q?cUnGXxHhYIi+mJKHjKS9V8yiw/s1Q+Q8wQq6AsicFiJf30ux2VktjrAPyQ71?= =?us-ascii?Q?yDXavIVG8QRYV/ldIyqw5GFYOMVVOEzRKn1tTJ/Rof9f7hk5gYwlQ8bm6sWa?= =?us-ascii?Q?7H7G8ssEaIMy+1kccr4sINCVqj0rBpsx5wzZcJaQqkYSqo7bSQ1U4mL0BnEc?= =?us-ascii?Q?t8AvhTR81KtJTedtirLi3tuiG472tGYd3o5Cpnq3l8bRLjnyZKKT1xi4TGM9?= =?us-ascii?Q?MAEGuR2tOG/7WpWVqanu8Lytwd0ig0mCTeSZ0l//qYrH78nZppfEjwsrJ4Kg?= =?us-ascii?Q?VAn/qJZL2SqZ2Jc3nLx8u6r4RDWbyNm4bAj3nvFzJdwUtKhDDHC8FBN1MHmi?= =?us-ascii?Q?O9rzZrBM8XYIxFJR+vRqCbIjAHoigCKKun4kkxo8MGdEou+fp0d+kx4KZLPB?= =?us-ascii?Q?KmI58bAm48hYxlGK5iTXiWaCNQ2k+XG6yQzvLCCvuCHBKPgybDjgGx67BONy?= =?us-ascii?Q?zv8WdGsVdmL8C0FDgE7wXnGeRe+bNxag0+w47gkHd3ahD+x8sQzgLLFq6TNP?= =?us-ascii?Q?qFgCE7OO1BJlhpQwuaUQzD/YPtOjB/JQS3J729+ppcSZHYGK02Bl3+v3a+kk?= =?us-ascii?Q?nnMBi7UwfaMVEPz/UfkNh00PD+4818wEz/GvsdKRbNG3Fe5T1+t93GYBSpWO?= =?us-ascii?Q?wzZDAcXKVk8wMWiaxQm5+Y1x2Rgf61rsxXIqfCQCUMK9e5ndrG3SRIsqrj4+?= =?us-ascii?Q?t3/3FIGyEwdIYY3KDHrocYEstU1Dc29dKA+X56H89fvIOnW2vqUxJdqUY4yY?= =?us-ascii?Q?RZUR0+cxgP6OFB3D1GWK3eKklP3e0JzvtrzWmPZTDaXqKqUBrL7MzUN1J0B7?= X-MS-Exchange-AntiSpam-MessageData-1: PdysufkHbhbmyZ409UW/113p3FClOxnhCcw= X-OriginatorOrg: codasip.com X-MS-Exchange-CrossTenant-Network-Message-Id: cc087cce-2209-4535-b872-08deaff0758d X-MS-Exchange-CrossTenant-AuthSource: AM9P192MB0983.EURP192.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 May 2026 06:34:03.3456 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0d91ffef-bb81-4cbd-b9b8-552583685f20 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: X8/ce5ybFQD5EFcgpPOvPiyMyfoXs1uI0f3Gx+sOChUMm3Ix4dfB/0gcQ2CSaSUylI5KET4G1jdIJU1yWIXfDoPKuho59PnFyboEIz8bgWA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0P192MB3023 The scratch buffer in module_frob_arch_sections() is currently managed manually, requiring explicit calls to kvfree(). Convert it to use scope-based resource management via the __free(kvfree) attribute. This automatically guarantees that the buffer is freed when it goes out of scope, preventing potential memory leaks. Most notably, it simplifies the kvrealloc() error path by removing the need to manually free the original buffer before returning -ENOMEM. Signed-off-by: Florian Schmaus --- arch/riscv/kernel/module-sections.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/arch/riscv/kernel/module-sections.c b/arch/riscv/kernel/module-sections.c index b3b11b7f7ed9..ed3be8be377e 100644 --- a/arch/riscv/kernel/module-sections.c +++ b/arch/riscv/kernel/module-sections.c @@ -116,7 +116,7 @@ int module_frob_arch_sections(Elf_Ehdr *ehdr, Elf_Shdr *sechdrs, size_t num_scratch_relas = 0; unsigned int num_plts = 0; unsigned int num_gots = 0; - Elf_Rela *scratch = NULL; + Elf_Rela *scratch __free(kvfree) = NULL; Elf_Rela *new_scratch; size_t scratch_size = 0; int i; @@ -168,10 +168,9 @@ int module_frob_arch_sections(Elf_Ehdr *ehdr, Elf_Shdr *sechdrs, if (scratch_size_needed > scratch_size) { scratch_size = scratch_size_needed; new_scratch = kvrealloc(scratch, scratch_size, GFP_KERNEL); - if (!new_scratch) { - kvfree(scratch); + if (!new_scratch) return -ENOMEM; - } + scratch = new_scratch; } @@ -184,7 +183,6 @@ int module_frob_arch_sections(Elf_Ehdr *ehdr, Elf_Shdr *sechdrs, /* sort the accumulated PLT/GOT relocations so duplicates are adjacent */ sort(scratch, num_scratch_relas, sizeof(*scratch), cmp_rela, NULL); count_max_entries(scratch, num_scratch_relas, &num_plts, &num_gots); - kvfree(scratch); } mod->arch.plt.shdr->sh_type = SHT_NOBITS; -- 2.53.0