[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