summaryrefslogtreecommitdiff
path: root/src/boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot')
-rw-r--r--src/boot/selfboot.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/boot/selfboot.c b/src/boot/selfboot.c
index b904e31a21..d87fe50c82 100644
--- a/src/boot/selfboot.c
+++ b/src/boot/selfboot.c
@@ -411,7 +411,7 @@ static int load_self_segments(
return 0;
}
for(ptr = head->next; ptr != head; ptr = ptr->next) {
- unsigned char *dest, *middle, *end, *src;
+ unsigned char *dest,*src;
printk_debug("Loading Segment: addr: 0x%016lx memsz: 0x%016lx filesz: 0x%016lx\n",
ptr->s_dstaddr, ptr->s_memsz, ptr->s_filesz);
@@ -428,6 +428,7 @@ static int load_self_segments(
/* Copy data from the initial buffer */
if (ptr->s_filesz) {
+ unsigned char *middle, *end;
size_t len;
len = ptr->s_filesz;
switch(ptr->compression) {
@@ -464,14 +465,15 @@ static int load_self_segments(
(unsigned long)middle,
(unsigned long)end,
(unsigned long)src);
- }
- /* Zero the extra bytes between middle & end */
- if (middle < end) {
- printk_debug("Clearing Segment: addr: 0x%016lx memsz: 0x%016lx\n",
- (unsigned long)middle, (unsigned long)(end - middle));
+
+ /* Zero the extra bytes between middle & end */
+ if (middle < end) {
+ printk_debug("Clearing Segment: addr: 0x%016lx memsz: 0x%016lx\n",
+ (unsigned long)middle, (unsigned long)(end - middle));
- /* Zero the extra bytes */
- memset(middle, 0, end - middle);
+ /* Zero the extra bytes */
+ memset(middle, 0, end - middle);
+ }
}
}
return 1;