--- /dev/null
+From 9cdc6423acb49055efb444ecd895d853a70ef931 Mon Sep 17 00:00:00 2001
+From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
+Date: Fri, 29 Nov 2024 11:13:47 +0200
+Subject: memblock: allow zero threshold in validate_numa_converage()
+
+From: Mike Rapoport (Microsoft) <rppt@kernel.org>
+
+commit 9cdc6423acb49055efb444ecd895d853a70ef931 upstream.
+
+Currently memblock validate_numa_converage() returns false negative when
+threshold set to zero.
+
+Make the check if the memory size with invalid node ID is greater than
+the threshold exclusive to fix that.
+
+Link: https://lore.kernel.org/all/Z0mIDBD4KLyxyOCm@kernel.org/
+Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ mm/memblock.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/mm/memblock.c
++++ b/mm/memblock.c
+@@ -735,7 +735,7 @@ int __init_memblock memblock_add(phys_ad
+ /**
+ * memblock_validate_numa_coverage - check if amount of memory with
+ * no node ID assigned is less than a threshold
+- * @threshold_bytes: maximal number of pages that can have unassigned node
++ * @threshold_bytes: maximal memory size that can have unassigned node
+ * ID (in bytes).
+ *
+ * A buggy firmware may report memory that does not belong to any node.
+@@ -755,7 +755,7 @@ bool __init_memblock memblock_validate_n
+ nr_pages += end_pfn - start_pfn;
+ }
+
+- if ((nr_pages << PAGE_SHIFT) >= threshold_bytes) {
++ if ((nr_pages << PAGE_SHIFT) > threshold_bytes) {
+ mem_size_mb = memblock_phys_mem_size() >> 20;
+ pr_err("NUMA: no nodes coverage for %luMB of %luMB RAM\n",
+ (nr_pages << PAGE_SHIFT) >> 20, mem_size_mb);