summaryrefslogtreecommitdiff
path: root/drivers/base/memory.c
diff options
context:
space:
mode:
authorGavin Shan <gshan@redhat.com>2025-03-12 09:30:43 +1000
committerAndrew Morton <akpm@linux-foundation.org>2025-03-17 22:07:01 -0700
commit61659efdb35ce6c6ac7639342098f3c4548b794b (patch)
tree7299fe37661b7ca9ace765360f6a15630bc38b58 /drivers/base/memory.c
parentc637c61c9ed0203d9a1f2ba21fb7a49ddca3ef8f (diff)
drivers/base/memory: improve add_boot_memory_block()
Patch series "drivers/base/memory: Two cleanups", v3. Two cleanups to drivers/base/memory. This patch (of 2)L It's unnecessary to count the present sections for the specified block since the block will be added if any section in the block is present. Besides, for_each_present_section_nr() can be reused as Andrew Morton suggested. Improve by using for_each_present_section_nr() and dropping the unnecessary @section_count. No functional changes intended. Link: https://lkml.kernel.org/r/20250311233045.148943-1-gshan@redhat.com Link: https://lkml.kernel.org/r/20250311233045.148943-2-gshan@redhat.com Signed-off-by: Gavin Shan <gshan@redhat.com> Acked-by: David Hildenbrand <david@redhat.com> Acked-by: Oscar Salvador <osalvador@suse.de> Cc: Danilo Krummrich <dakr@kernel.org> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: "Rafael J. Wysocki" <rafael@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'drivers/base/memory.c')
-rw-r--r--drivers/base/memory.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/base/memory.c b/drivers/base/memory.c
index 4765f2928725..8f3a41d9bfaa 100644
--- a/drivers/base/memory.c
+++ b/drivers/base/memory.c
@@ -818,18 +818,17 @@ static int add_memory_block(unsigned long block_id, unsigned long state,
static int __init add_boot_memory_block(unsigned long base_section_nr)
{
- int section_count = 0;
unsigned long nr;
- for (nr = base_section_nr; nr < base_section_nr + sections_per_block;
- nr++)
- if (present_section_nr(nr))
- section_count++;
+ for_each_present_section_nr(base_section_nr, nr) {
+ if (nr >= (base_section_nr + sections_per_block))
+ break;
- if (section_count == 0)
- return 0;
- return add_memory_block(memory_block_id(base_section_nr),
- MEM_ONLINE, NULL, NULL);
+ return add_memory_block(memory_block_id(base_section_nr),
+ MEM_ONLINE, NULL, NULL);
+ }
+
+ return 0;
}
static int add_hotplug_memory_block(unsigned long block_id,