• Michael Holzheu's avatar
    s390/kdump: Add final note · dcc00b79
    Michael Holzheu authored
    Since linux v3.14 with commit 38dfac84 ("vmcore: prevent PT_NOTE
    p_memsz overflow during header update") on s390 we get the following
    message in the kdump kernel:
    
      Warning: Exceeded p_memsz, dropping PT_NOTE entry n_namesz=0x6b6b6b6b,
      n_descsz=0x6b6b6b6b
    
    The reason for this is that we don't create a final zero note in
    the ELF header which the proc/vmcore code uses to find out the end
    of the notes section (see also kernel/kexec_core.c:final_note()).
    
    It still worked on s390 by chance because we (most of the time?) have the
    byte pattern 0x6b6b6b6b after the notes section which also makes the notes
    parsing code stop in update_note_header_size_elf64() because 0x6b6b6b6b is
    interpreded as note size:
    
      if ((real_sz + sz) > max_sz) {
              pr_warn("Warning: Exceeded p_memsz, dropping P ...);
              break;
      }
    
    So fix this and add the missing final note to the ELF header.
    We don't have to adjust the memory size for ELF header ("alloc_size")
    because the new ELF note still fits into the 0x1000 base memory.
    
    Cc: stable@vger.kernel.org # v4.4+
    Signed-off-by: default avatarMichael Holzheu <holzheu@linux.vnet.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    dcc00b79
crash_dump.c 15 KB