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 6C6FEC83F0A for ; Sun, 6 Jul 2025 19:32:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2E6C66B03FA; Sun, 6 Jul 2025 15:32:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 270226B03FB; Sun, 6 Jul 2025 15:32:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 139FF6B03FC; Sun, 6 Jul 2025 15:32:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id F31126B03FA for ; Sun, 6 Jul 2025 15:32:16 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 75C2B14019C for ; Sun, 6 Jul 2025 19:32:16 +0000 (UTC) X-FDA: 83634835872.14.F9FC82B Received: from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31]) by imf07.hostedemail.com (Postfix) with ESMTP id CE0814000B for ; Sun, 6 Jul 2025 19:32:14 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=LnUauxP5; spf=pass (imf07.hostedemail.com: domain of sj@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751830334; h=from:from: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=PxgrCecTJhTuSbv/Xk3bRh+RU3q4ZXqTr4puVAJd1N4=; b=CxgZXoCyXA4nptPRZZEcexddNBWTNyoWB3CDQDVaA8+kSAK7pf+fHoAC5iV1e0Zl6kCqxj N5R8ChBm+TGgmhd9cMqIIl3zjf6l3e9k8SoCzAVoEyxfW8AIsCUJu5EVBD4JuiB/mzUA3k WTuNXjzm2M5avEbnM43ISFYFWfWHlRg= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=LnUauxP5; spf=pass (imf07.hostedemail.com: domain of sj@kernel.org designates 172.234.252.31 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751830334; a=rsa-sha256; cv=none; b=xQsRhxjZIkyvT+2boWpIz4A2mhVpxDiCFJx5krIX7gwzDGodr5skJMdoeZSJ8nXEMvp9Ye TRfvstSZ3FV89YPOMnwPdgyZ6i5SIt3lKZ7IjmjYYvm8oiigyACD7ao4wYUEkL32uPB1KG EKNqpOk0Q3UTrdEYq1HrG+5Fc86vRf4= Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 6804445ECD; Sun, 6 Jul 2025 19:32:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 22F2AC4CEEE; Sun, 6 Jul 2025 19:32:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1751830333; bh=ItdKrZvjvoLfJbg0R8zs5Hictw962k8iIPOxGamn4Z8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LnUauxP53NuIKsYA+Jp/AghJ+OGnIGLIvW9Sdra0SjiFWxC9gQEz7ZiW10YBNQG76 k4WGRJf59ArnLzCNPxNkCtiDY5EMvWY8a0ttN5xlqhgJpxgkrBPkssF2sh9Gd+YPZs pIlWVnvpKtLfO4tYM7k8bbArmJPm6fqtE0Mhg9q621EtekOiUe1yjyeNTW3FN0dyZ5 vDr5Ylz7j8UZlhZZyB6tgYuTMj6+EGL7kfVpGypNq1kTNAlBVQUAUGfLhrtbyksHtF o9SJvNRehFZOTTefDTQcp6HZavj6in5HXpQ9OiCFLNyQ9pkAyxwFUKGea6nsH5kLjD OOYY2ZJSAUcvw== From: SeongJae Park To: Andrew Morton Cc: SeongJae Park , damon@lists.linux.dev, kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH 2/6] samples/damon/prcl: fix boot time enable crash Date: Sun, 6 Jul 2025 12:32:03 -0700 Message-Id: <20250706193207.39810-3-sj@kernel.org> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250706193207.39810-1-sj@kernel.org> References: <20250706193207.39810-1-sj@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: 8ep3ed6zw5emj3ex1u7cmnqup34w1s67 X-Rspamd-Queue-Id: CE0814000B X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1751830334-787048 X-HE-Meta: U2FsdGVkX1/1WvIf7of3zyEKXLVZM74rkwu/hvfaHM5UQQ0jnThxoFAJ8v+8iX4hYiesmTqmDGpXSvTyFtwdpBL5l8W6MJnOrXAUftTd24iuw9m7ulLEFLBU3rNTmtu4/svnbA07b6Q3rquNLeqlBa4O8IzY3M9LJpwcq31QadA99Bb1eCMnPG/xmOGAfB1krUHlwNWFHR3dCYLiD8lx/6L8jG66a5Bry+jshlwwoMapafCyIV6Wl7HsZRedRzk9ET1duf6qQAQBZoLCPdO1A23upegyYuTRTe3UXElGRKhaj17IEaRua3unnmguMbJaT9D9lN56MMLUqaLFiEogQTa7rRMuB57ywi+MvhyisndSAf5RMcQ/f4knRO2pidC4nXKJNRGOH86O7RX/ZDTb8YaqeJ/pgZg5us+0aTD1/rle49/YNt9tpe+0zIFeIS3YbD9OKq7wWfMTkFbiopcbcjUU8N0htmWYVyyG+p+OWyVGnpL8UHKw/zLX9vUKtw2v5LBw0EEgOhjsSkz5D56bX9zZHeVQBssEcLcjeU6cap75yoRQICaLllhau/odnHMjkEjbAF3Q+cFeHFNFy0Tp7Af7xrWRoMGfys2aBp5uIi5fFs+ziMwzhywqh94BI38s7o9JnxY+8gBPn3wLEyItd+SzpcteexQ0wsVoVrnlf6Tzcg8mhb4LLtVtGOXpYKWxz+1BfX64ahah66qN/M03UhU6h1JaeOSg3bzbt0qSZkUOA0oRUn6MDnc2xF1vvMai1rk5CFSwuZwJeYyZf81OJ40w9Nne+XH7cCgeAACZvQHfqUXxvXjdCHC0/MXj0cVkIZh2xuikkvpV/XS/rxhxbrDzRu4C46NrFxs8K+bPStd88uFe/IydivnANTljDSmlQ7U9Pqlvvv51aWFP0Jqi3XgDaCCQvtwE7ebMFA/OXgtlxAG+eL/KxCp+uWgmwCDY1K78KTLT05JuVebIMpD AfW9rHvK jSXoOrElW/IjkyIYCq/qSse2yGWTjxQs9GUtPzRinP+0otvWVo37rOJ/nL1uWPkyE0tlamtuN13ZOs6RJNzw1IFJspNhWEyjj1VC8Qi+BujizlXxxMDvvR9NMqHXw4opdcWRbiAZdqlj57UmpfdA2y0Iie4HsKGWSftEzBjhWqGIvnChLtIUos4wJBd7Z0gHo1cys 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: List-Subscribe: List-Unsubscribe: If 'enable' parameter of the 'prcl' DAMON sample module is set at boot time via the kernel command line, memory allocation is tried before the slab is initialized. As a result kernel NULL pointer dereference BUG can happen. Fix it by checking the initialization status. Fixes: 2aca254620a8 ("samples/damon: introduce a skeleton of a smaple DAMON module for proactive reclamation") Signed-off-by: SeongJae Park --- samples/damon/prcl.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/samples/damon/prcl.c b/samples/damon/prcl.c index 5597e6a08ab2..f04a18a8626a 100644 --- a/samples/damon/prcl.c +++ b/samples/damon/prcl.c @@ -109,6 +109,8 @@ static void damon_sample_prcl_stop(void) put_pid(target_pidp); } +static bool init_called; + static int damon_sample_prcl_enable_store( const char *val, const struct kernel_param *kp) { @@ -122,6 +124,9 @@ static int damon_sample_prcl_enable_store( if (enable == enabled) return 0; + if (!init_called) + return 0; + if (enable) { err = damon_sample_prcl_start(); if (err) @@ -134,6 +139,14 @@ static int damon_sample_prcl_enable_store( static int __init damon_sample_prcl_init(void) { + int err = 0; + + init_called = true; + if (enable) { + err = damon_sample_prcl_start(); + if (err) + enable = false; + } return 0; } -- 2.39.5