summaryrefslogtreecommitdiffstats
path: root/purgatory
diff options
context:
space:
mode:
authorSimon Horman <horms@verge.net.au>2006-09-22 16:45:32 +0900
committerSimon Horman <horms@verge.net.au>2006-10-06 12:46:16 +0900
commitef14c5794bed504f83d2a0721a88993f0c64099b (patch)
treeab3a25af89c174b9fc218e562e52a85880f7665d /purgatory
parentb41b838100bd7ab01d802cb9e3ebe2c4ad210485 (diff)
downloadkexec-tools-ef14c5794bed504f83d2a0721a88993f0c64099b.tar.gz
kexec-ktools: somewhat less nested code in patch_efi_memmap()
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 <horms@verge.net.au>
Diffstat (limited to 'purgatory')
-rw-r--r--purgatory/arch/ia64/purgatory-ia64.c78
1 files changed, 39 insertions, 39 deletions
diff --git a/purgatory/arch/ia64/purgatory-ia64.c b/purgatory/arch/ia64/purgatory-ia64.c
index 81e7d29c..eafb2d54 100644
--- a/purgatory/arch/ia64/purgatory-ia64.c
+++ b/purgatory/arch/ia64/purgatory-ia64.c
@@ -179,48 +179,48 @@ patch_efi_memmap(struct kexec_boot_params *params,
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 = &params->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;
}
}