Skip to contentSkip to conversation

FAILED: patch "[PATCH] mm: kfence: fix using kfence_metadata without initialization" failed to apply to 5.15-stable tree

PATCH [email protected] 2 participants 5 messages Mar 28, 2023

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

To reproduce the conflict and resubmit, you may use the following commands:

git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y
git checkout FETCH_HEAD
git cherry-pick -x 1c86a188e03156223a34d09ce290b49bd4dd0403
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '[email protected]' --subject-prefix 'PATCH 5.15.y' HEAD^..

Possible dependencies:

1c86a188e031 ("mm: kfence: fix using kfence_metadata without initialization in show_object()") b33f778bba5e ("kfence: alloc kfence_pool after system startup")
698361bca2d5 ("kfence: allow re-enabling KFENCE after system startup") 07e8481d3c38 ("kfence: always use static branches to guard kfence_alloc()") 08f6b10630f2 ("kfence: limit currently covered allocations when pool nearly full") a9ab52bbcb52 ("kfence: move saving stack trace of allocations into __kfence_alloc()") 9a19aeb56650 ("kfence: count unexpectedly skipped allocations")

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 1c86a188e03156223a34d09ce290b49bd4dd0403 Mon Sep 17 00:00:00 2001
From: Muchun Song <[email protected]>
Date: Wed, 15 Mar 2023 11:44:41 +0800
Subject: [PATCH] mm: kfence: fix using kfence_metadata without initialization
in show_object()

The variable kfence_metadata is initialized in kfence_init_pool(), then, it is not initialized if kfence is disabled after booting. In this case, kfence_metadata will be used (e.g. ->lock and ->state fields) without initialization when reading /sys/kernel/debug/kfence/objects. There will be a warning if you enable CONFIG_DEBUG_SPINLOCK. Fix it by creating debugfs files when necessary.

Fixes 0ce20dd84089 ("mm: add Kernel Electric-Fence infrastructure")
Cc Alexander Potapenko <[email protected]>
Cc Dmitry Vyukov <[email protected]>
Cc Jann Horn <[email protected]>
Cc SeongJae Park <[email protected]>
mm/kfence/core.c +8 -2
index 5349c37a5dac..79c94ee55f97 100644
@@ -726,10 +726,14 @@ static const struct seq_operations objects_sops = {
 };
 DEFINE_SEQ_ATTRIBUTE(objects);
 
-static int __init kfence_debugfs_init(void)
+static int kfence_debugfs_init(void)
 {
-	struct dentry *kfence_dir = debugfs_create_dir("kfence", NULL);
+	struct dentry *kfence_dir;
 
+	if (!READ_ONCE(kfence_enabled))
+		return 0;
+
+	kfence_dir = debugfs_create_dir("kfence", NULL);
 	debugfs_create_file("stats", 0444, kfence_dir, NULL, &stats_fops);
 	debugfs_create_file("objects", 0400, kfence_dir, NULL, &objects_fops);
 	return 0;
@@ -883,6 +887,8 @@ static int kfence_init_late(void)
 	}
 
 	kfence_init_enable();
+	kfence_debugfs_init();
+
 	return 0;
 }
 
Tested-by Marco Elver Reviewed-by Marco Elver
#1 lore raw
Quoted 77 lines · On 2023/3/28 20:01, [email protected] wrote:

The patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

To reproduce the conflict and resubmit, you may use the following commands:

git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y
git checkout FETCH_HEAD
git cherry-pick -x 1c86a188e03156223a34d09ce290b49bd4dd0403
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '[email protected]' --subject-prefix 'PATCH 5.15.y' HEAD^..

Possible dependencies:

1c86a188e031 ("mm: kfence: fix using kfence_metadata without initialization in show_object()") b33f778bba5e ("kfence: alloc kfence_pool after system startup")
698361bca2d5 ("kfence: allow re-enabling KFENCE after system startup") 07e8481d3c38 ("kfence: always use static branches to guard kfence_alloc()") 08f6b10630f2 ("kfence: limit currently covered allocations when pool nearly full") a9ab52bbcb52 ("kfence: move saving stack trace of allocations into __kfence_alloc()") 9a19aeb56650 ("kfence: count unexpectedly skipped allocations")

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 1c86a188e03156223a34d09ce290b49bd4dd0403 Mon Sep 17 00:00:00 2001
From: Muchun Song <[email protected]>
Date: Wed, 15 Mar 2023 11:44:41 +0800
Subject: [PATCH] mm: kfence: fix using kfence_metadata without initialization
in show_object()

The variable kfence_metadata is initialized in kfence_init_pool(), then, it is not initialized if kfence is disabled after booting. In this case, kfence_metadata will be used (e.g. ->lock and ->state fields) without initialization when reading /sys/kernel/debug/kfence/objects. There will be a warning if you enable CONFIG_DEBUG_SPINLOCK. Fix it by creating debugfs files when necessary.

Fixes 0ce20dd84089 ("mm: add Kernel Electric-Fence infrastructure")
Cc Alexander Potapenko <[email protected]>
Cc Dmitry Vyukov <[email protected]>
Cc Jann Horn <[email protected]>
Cc SeongJae Park <[email protected]>
mm/kfence/core.c +6 -2
index 5349c37a5dac..79c94ee55f97 100644
@@ -726,10 +726,14 @@ static const struct seq_operations objects_sops = {
  };
  DEFINE_SEQ_ATTRIBUTE(objects);
 
-static int __init kfence_debugfs_init(void)
+static int kfence_debugfs_init(void)
  {
-	struct dentry *kfence_dir = debugfs_create_dir("kfence", NULL);
+	struct dentry *kfence_dir;
 
+	if (!READ_ONCE(kfence_enabled))
+		return 0;
+
+	kfence_dir = debugfs_create_dir("kfence", NULL);
  	debugfs_create_file("stats", 0444, kfence_dir, NULL, &stats_fops);
  	debugfs_create_file("objects", 0400, kfence_dir, NULL, &objects_fops);
  	return 0;

mm/kfence/core.c static int kfence_init_late(void) · line 894

Quoted 8 lines
mm/kfence/core.c +2 -0
@@ -883,6 +887,8 @@ static int kfence_init_late(void)
  	}
 
  	kfence_init_enable();
+	kfence_debugfs_init();
+
  	return 0;
  }
 

I have implemented a following patch based on v5.15 branch.

From ba26f344fa3e477456a3cc60488a7b8e5af0e88d Mon Sep 17 00:00:00 2001
From: Muchun Song <[email protected]>
Date: Wed, 15 Mar 2023 11:44:41 +0800
Subject: [PATCH] mm: kfence: fix using kfence_metadata without initialization in show_object()

The variable kfence_metadata is initialized in kfence_init_pool(), then, it is not initialized if kfence is disabled after booting.  In this case, kfence_metadata will be used (e.g.  ->lock and ->state fields) without initialization when reading /sys/kernel/debug/kfence/objects.  There will be a warning if you enable CONFIG_DEBUG_SPINLOCK.  Fix it by creating debugfs files when necessary.

Fixes 0ce20dd84089 ("mm: add Kernel Electric-Fence infrastructure")
Cc Alexander Potapenko <[email protected]>
Cc Dmitry Vyukov <[email protected]>
Cc Jann Horn <[email protected]>
Cc SeongJae Park <[email protected]>

---
 mm/kfence/core.c | 8 ++++++--

 1 file changed, 6 insertions(+), 2 deletions(-)
mm/kfence/core.c +0 -0
index 39a6c434e355..573f34e6af0b 100644
@@ -678,10 +678,14 @@ static const struct file_operations objects_fops = {

     .release = seq_release,
 };

-static int __init kfence_debugfs_init(void)
+static int kfence_debugfs_init(void)
 {
-    struct dentry *kfence_dir = debugfs_create_dir("kfence", NULL); +    struct dentry *kfence_dir;

+    if (!READ_ONCE(kfence_enabled))
+        return 0;
+
+    kfence_dir = debugfs_create_dir("kfence", NULL); debugfs_create_file("stats", 0444, kfence_dir, NULL, &stats_fops); debugfs_create_file("objects", 0400, kfence_dir, NULL, &objects_fops); return 0;
--
2.11.0

author maintainer
#2 lore raw
Quoted 122 lines · Muchun Song
Quoted 75 lines · On 2023/3/28 20:01, [email protected] wrote:

The patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

To reproduce the conflict and resubmit, you may use the following commands:

git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y
git checkout FETCH_HEAD
git cherry-pick -x 1c86a188e03156223a34d09ce290b49bd4dd0403
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '[email protected]' --subject-prefix 'PATCH 5.15.y' HEAD^..

Possible dependencies:

1c86a188e031 ("mm: kfence: fix using kfence_metadata without initialization in show_object()") b33f778bba5e ("kfence: alloc kfence_pool after system startup")
698361bca2d5 ("kfence: allow re-enabling KFENCE after system startup") 07e8481d3c38 ("kfence: always use static branches to guard kfence_alloc()") 08f6b10630f2 ("kfence: limit currently covered allocations when pool nearly full") a9ab52bbcb52 ("kfence: move saving stack trace of allocations into __kfence_alloc()") 9a19aeb56650 ("kfence: count unexpectedly skipped allocations")

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 1c86a188e03156223a34d09ce290b49bd4dd0403 Mon Sep 17 00:00:00 2001
From: Muchun Song <[email protected]>
Date: Wed, 15 Mar 2023 11:44:41 +0800
Subject: [PATCH] mm: kfence: fix using kfence_metadata without initialization
in show_object()

The variable kfence_metadata is initialized in kfence_init_pool(), then, it is not initialized if kfence is disabled after booting. In this case, kfence_metadata will be used (e.g. ->lock and ->state fields) without initialization when reading /sys/kernel/debug/kfence/objects. There will be a warning if you enable CONFIG_DEBUG_SPINLOCK. Fix it by creating debugfs files when necessary.

Fixes 0ce20dd84089 ("mm: add Kernel Electric-Fence infrastructure")
Cc Alexander Potapenko <[email protected]>
Cc Dmitry Vyukov <[email protected]>
Cc Jann Horn <[email protected]>
Cc SeongJae Park <[email protected]>
mm/kfence/core.c +6 -2
index 5349c37a5dac..79c94ee55f97 100644
@@ -726,10 +726,14 @@ static const struct seq_operations objects_sops = {
  };
  DEFINE_SEQ_ATTRIBUTE(objects);
-static int __init kfence_debugfs_init(void)
+static int kfence_debugfs_init(void)
  {
-	struct dentry *kfence_dir = debugfs_create_dir("kfence", NULL);
+	struct dentry *kfence_dir;
+	if (!READ_ONCE(kfence_enabled))
+		return 0;
+
+	kfence_dir = debugfs_create_dir("kfence", NULL);
  	debugfs_create_file("stats", 0444, kfence_dir, NULL, &stats_fops);
  	debugfs_create_file("objects", 0400, kfence_dir, NULL, &objects_fops);
  	return 0;

mm/kfence/core.c static int kfence_init_late(void) · line 892

Quoted 6 lines
mm/kfence/core.c +2 -0
@@ -883,6 +887,8 @@ static int kfence_init_late(void)
  	}
  	kfence_init_enable();
+	kfence_debugfs_init();
+
  	return 0;
  }

I have implemented a following patch based on v5.15 branch.

From ba26f344fa3e477456a3cc60488a7b8e5af0e88d Mon Sep 17 00:00:00 2001
From: Muchun Song <[email protected]>
Date: Wed, 15 Mar 2023 11:44:41 +0800
Subject: [PATCH] mm: kfence: fix using kfence_metadata without initialization
 in show_object()

The variable kfence_metadata is initialized in kfence_init_pool(), then, it is not initialized if kfence is disabled after booting.  In this case, kfence_metadata will be used (e.g.  ->lock and ->state fields) without initialization when reading /sys/kernel/debug/kfence/objects.  There will be a warning if you enable CONFIG_DEBUG_SPINLOCK.  Fix it by creating debugfs files when necessary.

Link:
https://lkml.kernel.org/r/[email protected]

Fixes 0ce20dd84089 ("mm: add Kernel Electric-Fence infrastructure")
Cc Alexander Potapenko <[email protected]>
Cc Dmitry Vyukov <[email protected]>
Cc Jann Horn <[email protected]>
Cc SeongJae Park <[email protected]>

---
 mm/kfence/core.c | 8 ++++++--

 1 file changed, 6 insertions(+), 2 deletions(-)
mm/kfence/core.c +0 -0
index 39a6c434e355..573f34e6af0b 100644

mm/kfence/core.c static const struct file_operations objects_fops = { · line 680

Quoted 3 lines
mm/kfence/core.c +0 -0
@@ -678,10 +678,14 @@ static const struct file_operations objects_fops = {
      .release = seq_release,
  };
 

Patch is corrupted with the whitespace eaten by your email client. Can you resend this in a format that it can be applied?

thanks,

greg k-h

Tested-by Marco Elver Reviewed-by Marco Elver
#3 lore raw
Quoted 122 lines · Greg KH
Quoted 117 lines · Muchun Song
Quoted 75 lines · On 2023/3/28 20:01, [email protected] wrote:

The patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

To reproduce the conflict and resubmit, you may use the following commands:

git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y
git checkout FETCH_HEAD
git cherry-pick -x 1c86a188e03156223a34d09ce290b49bd4dd0403
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '[email protected]' --subject-prefix 'PATCH 5.15.y' HEAD^..

Possible dependencies:

1c86a188e031 ("mm: kfence: fix using kfence_metadata without initialization in show_object()") b33f778bba5e ("kfence: alloc kfence_pool after system startup")
698361bca2d5 ("kfence: allow re-enabling KFENCE after system startup") 07e8481d3c38 ("kfence: always use static branches to guard kfence_alloc()") 08f6b10630f2 ("kfence: limit currently covered allocations when pool nearly full") a9ab52bbcb52 ("kfence: move saving stack trace of allocations into __kfence_alloc()") 9a19aeb56650 ("kfence: count unexpectedly skipped allocations")

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 1c86a188e03156223a34d09ce290b49bd4dd0403 Mon Sep 17 00:00:00 2001
From: Muchun Song <[email protected]>
Date: Wed, 15 Mar 2023 11:44:41 +0800
Subject: [PATCH] mm: kfence: fix using kfence_metadata without initialization
in show_object()

The variable kfence_metadata is initialized in kfence_init_pool(), then, it is not initialized if kfence is disabled after booting. In this case, kfence_metadata will be used (e.g. ->lock and ->state fields) without initialization when reading /sys/kernel/debug/kfence/objects. There will be a warning if you enable CONFIG_DEBUG_SPINLOCK. Fix it by creating debugfs files when necessary.

Fixes 0ce20dd84089 ("mm: add Kernel Electric-Fence infrastructure")
Cc Alexander Potapenko <[email protected]>
Cc Dmitry Vyukov <[email protected]>
Cc Jann Horn <[email protected]>
Cc SeongJae Park <[email protected]>
mm/kfence/core.c +6 -2
index 5349c37a5dac..79c94ee55f97 100644
@@ -726,10 +726,14 @@ static const struct seq_operations objects_sops = {
 };
 DEFINE_SEQ_ATTRIBUTE(objects);
-static int __init kfence_debugfs_init(void)
+static int kfence_debugfs_init(void)
 {
- struct dentry *kfence_dir = debugfs_create_dir("kfence", NULL);
+ struct dentry *kfence_dir;
+ if (!READ_ONCE(kfence_enabled))
+ return 0;
+
+ kfence_dir = debugfs_create_dir("kfence", NULL);
  debugfs_create_file("stats", 0444, kfence_dir, NULL, &stats_fops);
  debugfs_create_file("objects", 0400, kfence_dir, NULL, &objects_fops);
  return 0;

mm/kfence/core.c static int kfence_init_late(void) · line 892

Quoted 6 lines
mm/kfence/core.c +2 -0
@@ -883,6 +887,8 @@ static int kfence_init_late(void)
  }
  kfence_init_enable();
+ kfence_debugfs_init();
+
  return 0;
 }

I have implemented a following patch based on v5.15 branch.

From ba26f344fa3e477456a3cc60488a7b8e5af0e88d Mon Sep 17 00:00:00 2001
From: Muchun Song <[email protected]>
Date: Wed, 15 Mar 2023 11:44:41 +0800
Subject: [PATCH] mm: kfence: fix using kfence_metadata without initialization
in show_object()

The variable kfence_metadata is initialized in kfence_init_pool(), then, it is not initialized if kfence is disabled after booting. In this case, kfence_metadata will be used (e.g. ->lock and ->state fields) without initialization when reading /sys/kernel/debug/kfence/objects. There will be a warning if you enable CONFIG_DEBUG_SPINLOCK. Fix it by creating debugfs files when necessary.

Link:
https://lkml.kernel.org/r/[email protected]

Fixes 0ce20dd84089 ("mm: add Kernel Electric-Fence infrastructure")
Cc Alexander Potapenko <[email protected]>
Cc Dmitry Vyukov <[email protected]>
Cc Jann Horn <[email protected]>
Cc SeongJae Park <[email protected]>
---
 mm/kfence/core.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
Quoted 11 lines

mm/kfence/core.c static const struct file_operations objects_fops = { · line 680

Quoted 8 lines
mm/kfence/core.c +0 -0
index 39a6c434e355..573f34e6af0b 100644
@@ -678,10 +678,14 @@ static const struct file_operations objects_fops = {
     .release = seq_release,
 };
 

Patch is corrupted with the whitespace eaten by your email client. Can you resend this in a format that it can be applied?

I attach it here. Could you apply it? Thanks.

From ba26f344fa3e477456a3cc60488a7b8e5af0e88d Mon Sep 17 00:00:00 2001
From: Muchun Song <[email protected]>
Date: Wed, 15 Mar 2023 11:44:41 +0800
Subject: [PATCH] mm: kfence: fix using kfence_metadata without initialization
in show_object()

The variable kfence_metadata is initialized in kfence_init_pool(), then, it is not initialized if kfence is disabled after booting. In this case, kfence_metadata will be used (e.g. ->lock and ->state fields) without initialization when reading /sys/kernel/debug/kfence/objects. There will be a warning if you enable CONFIG_DEBUG_SPINLOCK. Fix it by creating debugfs files when necessary.

Fixes 0ce20dd84089 ("mm: add Kernel Electric-Fence infrastructure")
Cc Alexander Potapenko <[email protected]>
Cc Dmitry Vyukov <[email protected]>
Cc Jann Horn <[email protected]>
Cc SeongJae Park <[email protected]>
---
 mm/kfence/core.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
mm/kfence/core.c +6 -2
index 39a6c434e355..573f34e6af0b 100644
@@ -678,10 +678,14 @@ static const struct file_operations objects_fops = {
 	.release = seq_release,
 };
 
-static int __init kfence_debugfs_init(void)
+static int kfence_debugfs_init(void)
 {
-	struct dentry *kfence_dir = debugfs_create_dir("kfence", NULL);
+	struct dentry *kfence_dir;
 
+	if (!READ_ONCE(kfence_enabled))
+		return 0;
+
+	kfence_dir = debugfs_create_dir("kfence", NULL);
 	debugfs_create_file("stats", 0444, kfence_dir, NULL, &stats_fops);
 	debugfs_create_file("objects", 0400, kfence_dir, NULL, &objects_fops);
 	return 0;
Signature · 1 line
2.11.0
Quoted 5 lines

thanks,

greg k-h

author maintainer
#4 lore raw
Quoted 134 lines · Muchun Song
Quoted 122 lines · Greg KH
Quoted 117 lines · Muchun Song
Quoted 75 lines · On 2023/3/28 20:01, [email protected] wrote:

The patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

To reproduce the conflict and resubmit, you may use the following commands:

git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.15.y
git checkout FETCH_HEAD
git cherry-pick -x 1c86a188e03156223a34d09ce290b49bd4dd0403
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '[email protected]' --subject-prefix 'PATCH 5.15.y' HEAD^..

Possible dependencies:

1c86a188e031 ("mm: kfence: fix using kfence_metadata without initialization in show_object()") b33f778bba5e ("kfence: alloc kfence_pool after system startup")
698361bca2d5 ("kfence: allow re-enabling KFENCE after system startup") 07e8481d3c38 ("kfence: always use static branches to guard kfence_alloc()") 08f6b10630f2 ("kfence: limit currently covered allocations when pool nearly full") a9ab52bbcb52 ("kfence: move saving stack trace of allocations into __kfence_alloc()") 9a19aeb56650 ("kfence: count unexpectedly skipped allocations")

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 1c86a188e03156223a34d09ce290b49bd4dd0403 Mon Sep 17 00:00:00 2001
From: Muchun Song <[email protected]>
Date: Wed, 15 Mar 2023 11:44:41 +0800
Subject: [PATCH] mm: kfence: fix using kfence_metadata without initialization
in show_object()

The variable kfence_metadata is initialized in kfence_init_pool(), then, it is not initialized if kfence is disabled after booting. In this case, kfence_metadata will be used (e.g. ->lock and ->state fields) without initialization when reading /sys/kernel/debug/kfence/objects. There will be a warning if you enable CONFIG_DEBUG_SPINLOCK. Fix it by creating debugfs files when necessary.

Fixes 0ce20dd84089 ("mm: add Kernel Electric-Fence infrastructure")
Cc Alexander Potapenko <[email protected]>
Cc Dmitry Vyukov <[email protected]>
Cc Jann Horn <[email protected]>
Cc SeongJae Park <[email protected]>
mm/kfence/core.c +6 -2
index 5349c37a5dac..79c94ee55f97 100644
@@ -726,10 +726,14 @@ static const struct seq_operations objects_sops = {
 };
 DEFINE_SEQ_ATTRIBUTE(objects);
-static int __init kfence_debugfs_init(void)
+static int kfence_debugfs_init(void)
 {
- struct dentry *kfence_dir = debugfs_create_dir("kfence", NULL);
+ struct dentry *kfence_dir;
+ if (!READ_ONCE(kfence_enabled))
+ return 0;
+
+ kfence_dir = debugfs_create_dir("kfence", NULL);
  debugfs_create_file("stats", 0444, kfence_dir, NULL, &stats_fops);
  debugfs_create_file("objects", 0400, kfence_dir, NULL, &objects_fops);
  return 0;

mm/kfence/core.c static int kfence_init_late(void) · line 892

Quoted 6 lines
mm/kfence/core.c +2 -0
@@ -883,6 +887,8 @@ static int kfence_init_late(void)
  }
  kfence_init_enable();
+ kfence_debugfs_init();
+
  return 0;
 }

I have implemented a following patch based on v5.15 branch.

From ba26f344fa3e477456a3cc60488a7b8e5af0e88d Mon Sep 17 00:00:00 2001
From: Muchun Song <[email protected]>
Date: Wed, 15 Mar 2023 11:44:41 +0800
Subject: [PATCH] mm: kfence: fix using kfence_metadata without initialization
in show_object()

The variable kfence_metadata is initialized in kfence_init_pool(), then, it is not initialized if kfence is disabled after booting. In this case, kfence_metadata will be used (e.g. ->lock and ->state fields) without initialization when reading /sys/kernel/debug/kfence/objects. There will be a warning if you enable CONFIG_DEBUG_SPINLOCK. Fix it by creating debugfs files when necessary.

Link:
https://lkml.kernel.org/r/[email protected]

Fixes 0ce20dd84089 ("mm: add Kernel Electric-Fence infrastructure")
Cc Alexander Potapenko <[email protected]>
Cc Dmitry Vyukov <[email protected]>
Cc Jann Horn <[email protected]>
Cc SeongJae Park <[email protected]>
---
 mm/kfence/core.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
Quoted 11 lines

mm/kfence/core.c static const struct file_operations objects_fops = { · line 680

Quoted 8 lines
mm/kfence/core.c +0 -0
index 39a6c434e355..573f34e6af0b 100644
@@ -678,10 +678,14 @@ static const struct file_operations objects_fops = {
     .release = seq_release,
 };
 

Patch is corrupted with the whitespace eaten by your email client. Can you resend this in a format that it can be applied?

Quoted 1 line

I attach it here. Could you apply it? Thanks.

That worked, thanks!