Signed-off-by: Jamey Sharp <[EMAIL PROTECTED]>
---
Some of GCC's warnings are clearly pointless in this code, but because
the "die" function is not declared "noreturn", GCC can't tell. In those
cases, I chose to initialize variables uselessly, rather than worry
about convinving the compiler that the existing code was actually OK.

 kexec/arch/i386/crashdump-x86.c       |    7 +++----
 kexec/arch/i386/kexec-beoboot-x86.c   |    2 +-
 kexec/arch/i386/kexec-bzImage.c       |    8 ++++----
 kexec/arch/i386/kexec-elf-x86.c       |    6 +++---
 kexec/arch/i386/kexec-multiboot-x86.c |    2 +-
 kexec/kexec-elf-rel.c                 |    8 ++++----
 kexec/kexec.c                         |    2 +-
 7 files changed, 17 insertions(+), 18 deletions(-)

diff --git a/kexec/arch/i386/crashdump-x86.c b/kexec/arch/i386/crashdump-x86.c
index 86dc166..7717219 100644
--- a/kexec/arch/i386/crashdump-x86.c
+++ b/kexec/arch/i386/crashdump-x86.c
@@ -151,7 +151,7 @@ static int exclude_crash_reserve_region(int *nr_ranges)
 {
        int i, j, tidx = -1;
        unsigned long long cstart, cend;
-       struct memory_range temp_region;
+       struct memory_range temp_region = { };
 
        /* Crash reserved region. */
        cstart = crash_reserved_mem.start;
@@ -185,9 +185,7 @@ static int exclude_crash_reserve_region(int *nr_ranges)
                }
                for (j = (*nr_ranges - 1); j >= tidx; j--)
                        crash_memory_range[j+1] = crash_memory_range[j];
-               crash_memory_range[tidx].start = temp_region.start;
-               crash_memory_range[tidx].end = temp_region.end;
-               crash_memory_range[tidx].type = temp_region.type;
+               crash_memory_range[tidx] = temp_region;
                (*nr_ranges)++;
        }
        return 0;
@@ -291,6 +289,7 @@ static int delete_memmap(struct memory_range *memmap_p, 
unsigned long long addr,
                                memmap_p[i].end = addr - 1;
                                temp_region.start = addr + size;
                                temp_region.end = mend;
+                               temp_region.type = memmap_p[i].type;
                                operation = 1;
                                tidx = i;
                                break;
diff --git a/kexec/arch/i386/kexec-beoboot-x86.c 
b/kexec/arch/i386/kexec-beoboot-x86.c
index a73a3cb..2b1c34b 100644
--- a/kexec/arch/i386/kexec-beoboot-x86.c
+++ b/kexec/arch/i386/kexec-beoboot-x86.c
@@ -79,7 +79,7 @@ int beoboot_load(int argc, char **argv, const char *buf, 
off_t len,
        struct kexec_info *info)
 {
        struct beoboot_header bb_header;
-       const unsigned char *command_line, *kernel, *initrd;
+       const char *command_line, *kernel, *initrd;
 
        int debug, real_mode_entry;
        int opt;
diff --git a/kexec/arch/i386/kexec-bzImage.c b/kexec/arch/i386/kexec-bzImage.c
index abb094c..9ca3cea 100644
--- a/kexec/arch/i386/kexec-bzImage.c
+++ b/kexec/arch/i386/kexec-bzImage.c
@@ -128,7 +128,7 @@ int do_bzImage_load(struct kexec_info *info,
        }
 
        kern16_size = (setup_sects +1) *512;
-       kernel_version = ((unsigned char *)&setup_header) + 512 + 
setup_header.kver_addr;
+       kernel_version = ((char *)&setup_header) + 512 + setup_header.kver_addr;
        if (kernel_len < kern16_size) {
                fprintf(stderr, "BzImage truncated?\n");
                return -1;
@@ -198,10 +198,10 @@ int do_bzImage_load(struct kexec_info *info,
         * overflow takes place while applying relocations.
         */
        if (!real_mode_entry && relocatable_kernel)
-               elf_rel_build_load(info, &info->rhdr, purgatory, purgatory_size,
+               elf_rel_build_load(info, &info->rhdr, (char *) purgatory, 
purgatory_size,
                                        0x3000, 0x7fffffff, -1, 0);
        else
-               elf_rel_build_load(info, &info->rhdr, purgatory, purgatory_size,
+               elf_rel_build_load(info, &info->rhdr, (char *) purgatory, 
purgatory_size,
                                        0x3000, 640*1024, -1, 0);
        dbgprintf("Loaded purgatory at addr 0x%lx\n", info->rhdr.rel_addr);
        /* The argument/parameter segment */
@@ -262,7 +262,7 @@ int do_bzImage_load(struct kexec_info *info,
        /* Tell the kernel what is going on */
        setup_linux_bootloader_parameters(info, real_mode, setup_base,
                kern16_size, command_line, command_line_len,
-               initrd, initrd_len);
+               (unsigned char *) initrd, initrd_len);
 
        /* Get the initial register values */
        elf_rel_get_symbol(&info->rhdr, "entry16_regs", &regs16, 
sizeof(regs16));
diff --git a/kexec/arch/i386/kexec-elf-x86.c b/kexec/arch/i386/kexec-elf-x86.c
index 76ea0e2..249dfa6 100644
--- a/kexec/arch/i386/kexec-elf-x86.c
+++ b/kexec/arch/i386/kexec-elf-x86.c
@@ -185,7 +185,7 @@ int elf_x86_load(int argc, char **argv, const char *buf, 
off_t len,
        /* Do we want arguments? */
        if (arg_style != ARG_STYLE_NONE) {
                /* Load the setup code */
-               elf_rel_build_load(info, &info->rhdr, purgatory, purgatory_size,
+               elf_rel_build_load(info, &info->rhdr, (char *) purgatory, 
purgatory_size,
                        0, ULONG_MAX, 1, 0);
        }
        if (arg_style == ARG_STYLE_NONE) {
@@ -199,7 +199,7 @@ int elf_x86_load(int argc, char **argv, const char *buf, 
off_t len,
 
                /* Setup the ELF boot notes */
                note_base = elf_boot_notes(info, max_addr,
-                       command_line, command_line_len);
+                       (unsigned char *) command_line, command_line_len);
 
                /* Initialize the stack arguments */
                arg2 = 0; /* No return address */
@@ -247,7 +247,7 @@ int elf_x86_load(int argc, char **argv, const char *buf, 
off_t len,
                ramdisk_buf = NULL;
                ramdisk_length = 0;
                if (ramdisk) {
-                       ramdisk_buf = slurp_file(ramdisk, &ramdisk_length);
+                       ramdisk_buf = (unsigned char *) slurp_file(ramdisk, 
&ramdisk_length);
                }
 
                /* If panic kernel is being loaded, additional segments need
diff --git a/kexec/arch/i386/kexec-multiboot-x86.c 
b/kexec/arch/i386/kexec-multiboot-x86.c
index 5ad279a..1618c82 100644
--- a/kexec/arch/i386/kexec-multiboot-x86.c
+++ b/kexec/arch/i386/kexec-multiboot-x86.c
@@ -210,7 +210,7 @@ int multiboot_x86_load(int argc, char **argv, const char 
*buf, off_t len,
        elf_exec_build_load(info, &ehdr, buf, len, 0);
 
        /* Load the setup code */
-       elf_rel_build_load(info, &info->rhdr, purgatory, purgatory_size, 0,
+       elf_rel_build_load(info, &info->rhdr, (char *) purgatory, 
purgatory_size, 0,
                                ULONG_MAX, 1, 0);
        
        /* The first segment will contain the multiboot headers:
diff --git a/kexec/kexec-elf-rel.c b/kexec/kexec-elf-rel.c
index 4419937..74c4b35 100644
--- a/kexec/kexec-elf-rel.c
+++ b/kexec/kexec-elf-rel.c
@@ -58,7 +58,7 @@ static size_t elf_rela_size(struct mem_ehdr *ehdr)
 
 static struct mem_sym elf_sym(struct mem_ehdr *ehdr, const unsigned char *ptr)
 {
-       struct mem_sym sym;
+       struct mem_sym sym = { };
        if (ehdr->ei_class == ELFCLASS32) {
                Elf32_Sym lsym;
                memcpy(&lsym, ptr, sizeof(lsym));
@@ -87,7 +87,7 @@ static struct mem_sym elf_sym(struct mem_ehdr *ehdr, const 
unsigned char *ptr)
 
 static struct mem_rela elf_rel(struct mem_ehdr *ehdr, const unsigned char *ptr)
 {
-       struct mem_rela rela;
+       struct mem_rela rela = { };
        if (ehdr->ei_class == ELFCLASS32) {
                Elf32_Rel lrel;
                memcpy(&lrel, ptr, sizeof(lrel));
@@ -112,7 +112,7 @@ static struct mem_rela elf_rel(struct mem_ehdr *ehdr, const 
unsigned char *ptr)
 
 static struct mem_rela elf_rela(struct mem_ehdr *ehdr, const unsigned char 
*ptr)
 {
-       struct mem_rela rela;
+       struct mem_rela rela = { };
        if (ehdr->ei_class == ELFCLASS32) {
                Elf32_Rela lrela;
                memcpy(&lrela, ptr, sizeof(lrela));
@@ -339,7 +339,7 @@ int elf_rel_load(struct mem_ehdr *ehdr, struct kexec_info 
*info,
                        struct mem_rela rel;
                        struct mem_sym sym;
                        const void *location;
-                       const char *name;
+                       const unsigned char *name;
                        unsigned long address, value, sec_base;
                        if (shdr->sh_type == SHT_REL) {
                                rel = elf_rel(ehdr, ptr);
diff --git a/kexec/kexec.c b/kexec/kexec.c
index 0647295..20b2ae4 100644
--- a/kexec/kexec.c
+++ b/kexec/kexec.c
@@ -584,7 +584,7 @@ static void update_purgatory(struct kexec_info *info)
                        sha256_update(&ctx, null_buf, bytes);
                        nullsz -= bytes;
                }
-               region[j].start = info->segment[i].mem;
+               region[j].start = (unsigned long) info->segment[i].mem;
                region[j].len   = info->segment[i].memsz;
                j++;
        }
-- 
1.5.4.1


_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to