Messages in this thread Patch in this message | | | From | David Hildenbrand <> | Subject | [PATCH] drivers/base/memory.c: Fix "mm/memory_hotplug: Move and simplify walk_memory_blocks()" | Date | Fri, 21 Jun 2019 21:38:34 +0200 |
| |
The start and the size are 0 for online nodes without any memory. Avoid the underflow, resulting in a very long loop and soft lockups.
Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: "Rafael J. Wysocki" <rafael@kernel.org> Cc: linux-mm@kvack.org Reported-by: Qian Cai <cai@lca.pw> Signed-off-by: David Hildenbrand <david@redhat.com> ---
@Andrew, Stephen - sorry for the noise *again*. Feel feel to either apply this patch or drop the respective patches for now.
--- drivers/base/memory.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/base/memory.c b/drivers/base/memory.c index 972c5336bebf..7595a4f0068f 100644 --- a/drivers/base/memory.c +++ b/drivers/base/memory.c @@ -868,6 +868,9 @@ int walk_memory_blocks(unsigned long start, unsigned long size, unsigned long block_id; int ret = 0; + if (!size) + return 0; + for (block_id = start_block_id; block_id <= end_block_id; block_id++) { mem = find_memory_block_by_id(block_id); if (!mem) -- 2.21.0
| |