[PATCH 1/2] x86/boot/e820: not necessary to iterate whole overlap_list

From: Wei Yang
Date: Wed Mar 27 2024 - 22:29:04 EST


We are sure there is only one entry to be removed from overlap_list.

Signed-off-by: Wei Yang <richard.weiyang@xxxxxxxxx>
---
arch/x86/kernel/e820.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
index 6f1b379e3b38..ecbeb76ed08f 100644
--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -377,10 +377,11 @@ int __init e820__update_table(struct e820_table *table)
} else {
/* Remove entry from list (order independent, so swap with last): */
for (i = 0; i < overlap_entries; i++) {
- if (overlap_list[i] == change_point[chg_idx]->entry)
- overlap_list[i] = overlap_list[overlap_entries-1];
+ if (overlap_list[i] == change_point[chg_idx]->entry) {
+ overlap_list[i] = overlap_list[--overlap_entries];
+ break;
+ }
}
- overlap_entries--;
}
/*
* If there are overlapping entries, decide which
--
2.34.1