diff options
author | Simon Horman <horms@verge.net.au> | 2006-09-22 16:45:32 +0900 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2006-10-06 12:46:16 +0900 |
commit | ef14c5794bed504f83d2a0721a88993f0c64099b (patch) | |
tree | ab3a25af89c174b9fc218e562e52a85880f7665d /purgatory | |
parent | b41b838100bd7ab01d802cb9e3ebe2c4ad210485 (diff) | |
download | kexec-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.c | 78 |
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 = ¶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; } } |