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 3EDC0C77B78 for ; Fri, 14 Apr 2023 05:08:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 76DE6900002; Fri, 14 Apr 2023 01:08:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 71E5C6B0075; Fri, 14 Apr 2023 01:08:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5E5B1900002; Fri, 14 Apr 2023 01:08:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 4BF756B0072 for ; Fri, 14 Apr 2023 01:08:53 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 0910940117 for ; Fri, 14 Apr 2023 05:08:53 +0000 (UTC) X-FDA: 80678816946.14.B23372C Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf24.hostedemail.com (Postfix) with ESMTP id BF3F3180008 for ; Fri, 14 Apr 2023 05:08:50 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=DqwnBtWG; spf=none (imf24.hostedemail.com: domain of mcgrof@infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=mcgrof@infradead.org; dmarc=fail reason="No valid SPF, DKIM not aligned (relaxed)" header.from=kernel.org (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1681448931; h=from:from:sender: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:in-reply-to:references:references:dkim-signature; bh=d1P4Lb2k3WvTKxpPWQ0Fgfk0BiJfkVHvlpVmM1zJ91o=; b=nws2ep/DdHd7uismQNDCv6zpOXkI1Lz/w9g+RFV5gu0bG9SIleyXOkMHAH96WhvkJVK8qO GoGgZXVo8RJEAX1D+n0zoUyQco81/3cx3Qtwg9rygobpiDmsYFx9+/ZAFtCZ8opmVQkCVP JS0rOViTCMeXF+ZdhnP6pMsKcR62I5I= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=DqwnBtWG; spf=none (imf24.hostedemail.com: domain of mcgrof@infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=mcgrof@infradead.org; dmarc=fail reason="No valid SPF, DKIM not aligned (relaxed)" header.from=kernel.org (policy=none) ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681448931; a=rsa-sha256; cv=none; b=4VBs1Dyfzniy7pvhKD1NGpmzOaoegb1uiWWYgOXyK7TkcRucHM7Gv3Eox9vsQHXlcNnfVw OX7ap60i6GHLro+w7btRkz4WBq/Q0jGFTb1jO3ixEgtz8GKCAyyrGenMF++u16Uvar315t RW4dXd6obj6CZGHGjMPCW6+VRyX+mG0= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Sender:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description; bh=d1P4Lb2k3WvTKxpPWQ0Fgfk0BiJfkVHvlpVmM1zJ91o=; b=DqwnBtWGV0bKq17zOTApZ3Ty3T udPqRDkRW1Jw8aPmWRpjpvoUlYqek3ute8vM6VwL9HTtizN7T8xk5JEKTWEwszDrd6Ea0xRhixqIe lSOkfft0VtkvePiEiL6sb0gtU+Mq4EzfC2g3HaoX9ze0a5otbhjpdGeWXTMPTCtk39do+8hqGXvZ8 F4yu9B9GVNuQ0BqNTuxMdqZR6c2G/outr+fojM2z8JW+Nomy8VaHsZSkYBaujlaFpisBQPscw9sXm GKroLOlcDoKPwao7uq/9cPdYuPDIVREaqhWIOf/tE869yP7hbUcM10hHP9xfzJZNY8yupugCJc/UL HZ8rZI0g==; Received: from mcgrof by bombadil.infradead.org with local (Exim 4.96 #2 (Red Hat Linux)) id 1pnBfp-008KKH-1R; Fri, 14 Apr 2023 05:08:37 +0000 From: Luis Chamberlain To: david@redhat.com, patches@lists.linux.dev, linux-modules@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, pmladek@suse.com, petr.pavlu@suse.com, prarit@redhat.com, torvalds@linux-foundation.org, gregkh@linuxfoundation.org, rafael@kernel.org Cc: christophe.leroy@csgroup.eu, tglx@linutronix.de, peterz@infradead.org, song@kernel.org, rppt@kernel.org, dave@stgolabs.net, willy@infradead.org, vbabka@suse.cz, mhocko@suse.com, dave.hansen@linux.intel.com, colin.i.king@gmail.com, jim.cromie@gmail.com, catalin.marinas@arm.com, jbaron@akamai.com, rick.p.edgecombe@intel.com, mcgrof@kernel.org Subject: [PATCH v3 1/4] module: fix kmemleak annotations for non init ELF sections Date: Thu, 13 Apr 2023 22:08:33 -0700 Message-Id: <20230414050836.1984746-2-mcgrof@kernel.org> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20230414050836.1984746-1-mcgrof@kernel.org> References: <20230414050836.1984746-1-mcgrof@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: kt387k1m1tfpf4xdbtq71r3xb96nbmne X-Rspam-User: X-Rspamd-Queue-Id: BF3F3180008 X-Rspamd-Server: rspam06 X-HE-Tag: 1681448930-329931 X-HE-Meta: U2FsdGVkX1+fotm30PcU+WqECNDY2AnAHSnpi3v/Umifd9CPCxl7Um90HhUwZ2kJaFxWxOVoEvH6mud5DCOUcO6t/RNv8JAPC7V8RJEI+jbsa9n85VA1H1l28/Yw4+ue3cpWzR9UTGZNl0d9FpYG4b5RZfjl1jRtU7CmA6WuPtJt+IFEsBfsdzP/EKTR6xHDUHh6s5lv5IWzrRWN8dwe01BUQmYY/vSdvFTnFbmrysCcBdfH5mqALbI4TOQ53pT6n4maiRpgaXy7Vzq6+xGnn6WdyMEOfRRKis7hY787I45jdsGONgEF3fJCzkYIkJCKr5ui5fBqm9j74AbgJrek29wFoejbGL/IuyClGuZW44MrJqH1uE3WFe8aPh/fYvlrf9RiA6v49nTLjmfw1dV2GpaSV4JOazH71tEKAjokUrKVJ3funlXcUQqC725CvGMulVIpo2VuRiMkKNtVLSaDOW8kN26/cZC3ygxoWzaZ8e/tKScBISozU8mDdfwsiPLj0kGExrsk4JYNyW3UHvcW0qpv1sojB5w1aoLWm0J/peUrJSf1AOaJUQtI3MD4XzXVFfI6xLGxqJSj3ljF1x5fQsP2covq8F1rvn3GEGP7WqpCpGSB1b5oQ1aYLevwrsG4Rr5BuA5L1fVXiUXNfeh6wrf6rLHIwX4yijIzY7KFgvGRPFkmtWTt+oa8fzldLFTCZrbLQawq2ooITfMVHLN4+cxx2lhvi4nrmk3z4IZkTvA3HiUhVRgfTPJUB5ArqhS8xrxGQvbHtE0tE3S2wwiVgxXn2djr6R/ZOyti84FhdR0Rp702B7VemI4LXJidcu8cY9m8IXz2WVDenEH/gDly2ar/aCvdCUSuGeQdks+C5Db8avmzpy2uCmcL6j4XyS+Xb0qTUmDgFv/+QX3W8BW75E8S2we9JtEzvesdDEjc7WtbvIVmhIjKGecVwrq2y7hFW+VSknA7gLascFOCh22 bvG+MA7+ JL218Kv6XmkuOWtZGwUTIbnrpugYqQ3suOiJbLur8a8mL3Vn7iC9MkmVSLDsNBvB8ZMpf7WEouJOvc3WkhGw3hcEsBIPvc7r8ytNKlJZ+IzlW9CXenesZq/RoNxdgnsQPoEJPtRg7JXAQ0jT+itk6QFWmrsIKIxs9zBrxqh0IuPrvsrHGq6vgAOl2IaeWiTuRyjJdWLsvzrxm89baHrcVQMWB1ouejITDcBEKR4j5FkwjQ8gInk/HCvmXco/R5SMB8YZC2VxG+v+9f6wSnaUfn2PRwJ83ouKOrktjn3IxF1p//J3tRTjR8J0wlppiB/b2h6hZhNjBRUCAj7E14Xd2CGEw7ywwEqmUDXqe8rWSSF2lgZJSs8hOkx4LrbglMgFNSROvBLMUk9Kig+ukS95jn0VTtOJ2SFSoPI3ayNusgxohxxJBptB9dxfISiEMV/mADIG7UpqAJuC5jBGHsGaQWDLhLQFErURLbTq8qirx5P83QsJPf+QulRAWjeWx9cjA+orvHHZRMMH+UYkj/CwQ3pqL1R6CQsd9tpKSdc/GDhW9Fcf1kdIKJxQ4A0e8W8UM/i4p 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: Commit ac3b43283923 ("module: replace module_layout with module_memory") reworked the way to handle memory allocations to make it clearer. But it lost in translation how we handled kmemleak_ignore() or kmemleak_not_leak() for different ELF sections. Fix this and clarify the comments a bit more. Contrary to the old way of using kmemleak_ignore() for init.* ELF sections we stick now only to kmemleak_not_leak() as per suggestion by Catalin Marinas so to avoid any false positives and simplify the code. Fixes: ac3b43283923 ("module: replace module_layout with module_memory") Reported-by: Jim Cromie Acked-by: Song Liu Suggested-by: Catalin Marinas Signed-off-by: Luis Chamberlain --- kernel/module/main.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/kernel/module/main.c b/kernel/module/main.c index 5cc21083af04..32554d8a5791 100644 --- a/kernel/module/main.c +++ b/kernel/module/main.c @@ -2231,13 +2231,18 @@ static int move_module(struct module *mod, struct load_info *info) } mod->mem[type].size = PAGE_ALIGN(mod->mem[type].size); ptr = module_memory_alloc(mod->mem[type].size, type); - /* - * The pointer to this block is stored in the module structure - * which is inside the block. Just mark it as not being a - * leak. + * The pointer to these blocks of memory are stored on the module + * structure and we keep that around so long as the module is + * around. We only free that memory when we unload the module. + * Just mark them as not being a leak then. The .init* ELF + * sections *do* get freed after boot so we *could* treat them + * slightly differently with kmemleak_ignore() and only grey + * them out as they work as typical memory allocations which + * *do* eventually get freed, but let's just keep things simple + * and avoid *any* false positives. */ - kmemleak_ignore(ptr); + kmemleak_not_leak(ptr); if (!ptr) { t = type; goto out_enomem; -- 2.39.2