[PATCH v5 2/5] s390/vmcore: Use ELF header in new memory feature

HATAYAMA Daisuke d.hatayama at gmail.com
Mon Jun 10 09:36:57 EDT 2013


2013/6/8 Michael Holzheu <holzheu at linux.vnet.ibm.com>:
<cut>
> @@ -417,27 +416,44 @@ static void s390_elf_corehdr_create(char **elfcorebuf, size_t *elfcorebuf_sz)
>         ptr = notes_init(phdr_notes, ptr, ((unsigned long) hdr) + hdr_off);
>         /* Init loads */
>         hdr_off = PTR_DIFF(ptr, hdr);
> -       loads_init(phdr_loads, ((unsigned long) hdr) + hdr_off);
> -       *elfcorebuf_sz = hdr_off;
> -       *elfcorebuf = (void *) relocate((unsigned long) hdr);
> -       BUG_ON(*elfcorebuf_sz > alloc_size);
> +       loads_init(phdr_loads, hdr_off);
> +       elfcorehdr_addr = (unsigned long long) hdr;
> +       elfcorehdr_size = (unsigned long long) hdr_off;
> +       elfcorehdr_newmem = hdr;
> +       BUG_ON(elfcorehdr_size > alloc_size);
> +       return 0;
>  }
>
>  /*
> - * Create kdump ELF core header in new kernel, if it has not been passed via
> - * the "elfcorehdr" kernel parameter
> + * Free ELF core header (new kernel)
>   */
> -static int setup_kdump_elfcorehdr(void)
> +void elfcorehdr_free(void)
>  {
> -       size_t elfcorebuf_sz;
> -       char *elfcorebuf;
> -
> -       if (!OLDMEM_BASE || is_kdump_kernel())
> -               return -EINVAL;
> -       s390_elf_corehdr_create(&elfcorebuf, &elfcorebuf_sz);
> -       elfcorehdr_addr = (unsigned long long) elfcorebuf;
> -       elfcorehdr_size = elfcorebuf_sz;
> -       return 0;
> +       if (!elfcorehdr_newmem)
> +               return;
> +       vfree(elfcorehdr_newmem);

kfree is correct here?

Thanks.
HATAYAMA, Daisuke



More information about the kexec mailing list