This patch reduces the nesting in patch_efi_memmap() by
jumping to the next interation of the inner for loop
if the following condition is true.
if (seg->start < mstart || seg->start >= mend)
This is instead of a reasonably large ammount of code inside the if
conditional if the converse is true.
This makes things somewhat easier to read as the nesting is already
quite deep, and many lines do not fit easily within 80 columns.
Signed-Off-By: Simon Horman <[EMAIL PROTECTED]>
Index: kexec-tools-patch-boot-params/purgatory/arch/ia64/purgatory-ia64.c
===================================================================
--- kexec-tools-patch-boot-params.orig/purgatory/arch/ia64/purgatory-ia64.c
2006-09-20 15:27:01.000000000 +0900
+++ kexec-tools-patch-boot-params/purgatory/arch/ia64/purgatory-ia64.c
2006-09-20 15:27:10.000000000 +0900
@@ -173,48 +179,48 @@
orig_type = md2->type;
for (i = 0; i < params->loaded_segments_num; i++) {
struct loaded_segment *seg;
+ unsigned long start_pages, mid_pages, end_pages;
+
seg = ¶ms->loaded_segments[i];
- if (seg->start >= mstart && seg->start < mend) {
- unsigned long start_pages, mid_pages, end_pages;
- if (seg->end > mend) {
- p1 += memdesc_size;
- for(; p1 < src_end;
- p1 += memdesc_size) {
- md1 = p1;
- /* TODO check contig and
attribute here */
- mend = md1->phys_addr
- + (md1->num_pages <<
EFI_PAGE_SHIFT);
- if (seg->end < mend)
- break;
- }
- }
- start_pages = (seg->start - mstart)
- >> EFI_PAGE_SHIFT;
- mid_pages = (seg->end - seg->start)
- >> EFI_PAGE_SHIFT;
- end_pages = (mend - seg->end)
- >> EFI_PAGE_SHIFT;
- if (start_pages) {
- md2->num_pages = start_pages;
- p2 += memdesc_size;
- md2 = p2;
- *md2 = *md1;
+ if (seg->start < mstart || seg->start >= mend)
+ continue;
+
+ if (seg->end > mend) {
+ p1 += memdesc_size;
+ for(; p1 < src_end; p1 += memdesc_size) {
+ md1 = p1;
+ /* TODO check contig and
+ attribute here */
+ mend = md1->phys_addr
+ + (md1->num_pages <<
+ EFI_PAGE_SHIFT);
+ if (seg->end < mend)
+ break;
}
- md2->phys_addr = seg->start;
- md2->num_pages = mid_pages;
- md2->type = seg->reserved ?
- EFI_UNUSABLE_MEMORY:EFI_LOADER_DATA;
- if (end_pages) {
- p2 += memdesc_size;
- md2 = p2;
- *md2 = *md1;
- md2->phys_addr = seg->end;
- md2->num_pages = end_pages;
- md2->type = orig_type;
- mstart = seg->end;
- } else
- break;
}
+ start_pages = (seg->start - mstart) >> EFI_PAGE_SHIFT;
+ mid_pages = (seg->end - seg->start) >> EFI_PAGE_SHIFT;
+ end_pages = (mend - seg->end) >> EFI_PAGE_SHIFT;
+ if (start_pages) {
+ md2->num_pages = start_pages;
+ p2 += memdesc_size;
+ md2 = p2;
+ *md2 = *md1;
+ }
+ md2->phys_addr = seg->start;
+ md2->num_pages = mid_pages;
+ md2->type = seg->reserved ?
+ EFI_UNUSABLE_MEMORY:EFI_LOADER_DATA;
+ if (end_pages) {
+ p2 += memdesc_size;
+ md2 = p2;
+ *md2 = *md1;
+ md2->phys_addr = seg->end;
+ md2->num_pages = end_pages;
+ md2->type = orig_type;
+ mstart = seg->end;
+ } else
+ break;
}
}
--
--
Horms
H: http://www.vergenet.net/~horms/
W: http://www.valinux.co.jp/en/
_______________________________________________
fastboot mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/fastboot