On Wed, May 22, 2013 at 11:56:12AM +0900, HATAYAMA Daisuke wrote:

[..]
> -static u64 __init get_vmcore_size_elf64(char *elfptr, size_t elfsz)
> +static u64 __init get_vmcore_size_elf64(size_t elfsz, size_t elfnotesegsz,
> +                                     struct list_head *vc_list)
>  {
> -     int i;
>       u64 size;
> -     Elf64_Ehdr *ehdr_ptr;
> -     Elf64_Phdr *phdr_ptr;
> +     struct vmcore *m;
>  
> -     ehdr_ptr = (Elf64_Ehdr *)elfptr;
> -     phdr_ptr = (Elf64_Phdr*)(elfptr + sizeof(Elf64_Ehdr));
> -     size = elfsz;
> -     for (i = 0; i < ehdr_ptr->e_phnum; i++) {
> -             size += phdr_ptr->p_memsz;
> -             phdr_ptr++;
> +     size = elfsz + elfnotesegsz;
> +     list_for_each_entry(m, vc_list, list) {
> +             size += m->size;
>       }
>       return size;
>  }
>  
> -static u64 __init get_vmcore_size_elf32(char *elfptr, size_t elfsz)
> +static u64 __init get_vmcore_size_elf32(size_t elfsz, size_t elfnotesegsz,
> +                                     struct list_head *vc_list)
>  {
> -     int i;
>       u64 size;
> -     Elf32_Ehdr *ehdr_ptr;
> -     Elf32_Phdr *phdr_ptr;
> +     struct vmcore *m;
>  
> -     ehdr_ptr = (Elf32_Ehdr *)elfptr;
> -     phdr_ptr = (Elf32_Phdr*)(elfptr + sizeof(Elf32_Ehdr));
> -     size = elfsz;
> -     for (i = 0; i < ehdr_ptr->e_phnum; i++) {
> -             size += phdr_ptr->p_memsz;
> -             phdr_ptr++;
> +     size = elfsz + elfnotesegsz;
> +     list_for_each_entry(m, vc_list, list) {
> +             size += m->size;


Now get_vmcore_size_elf64() and get_vmcore_size_elf32() function are same.
We can get rid of one and rename other get_vmcore_size().

Thanks
Vivek

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to