• Adrian Hunter's avatar
    perf tools: Fix copying of /proc/kcore · 3de5bd0b
    Adrian Hunter authored
    commit b5cabbcb upstream.
    
    A copy of /proc/kcore containing the kernel text can be made to the
    buildid cache. e.g.
    
    	perf buildid-cache -v -k /proc/kcore
    
    To workaround objdump limitations, a copy is also made when annotating
    against /proc/kcore.
    
    The copying process stops working from libelf about v1.62 onwards (the
    problem was found with v1.63).
    
    The cause is that a call to gelf_getphdr() in kcore__add_phdr() fails
    because additional validation has been added to gelf_getphdr().
    
    The use of gelf_getphdr() is a misguided attempt to get default
    initialization of the Gelf_Phdr structure.  That should not be
    necessary because every member of the Gelf_Phdr structure is
    subsequently assigned.  So just remove the call to gelf_getphdr().
    
    Similarly, a call to gelf_getehdr() in gelf_kcore__init() can be
    removed also.
    
    Committer notes:
    
    Note to stable@kernel.org, from Adrian in the cover letter for this
    patchkit:
    
    The "Fix copying of /proc/kcore" problem goes back to v3.13 if you think
    it is important enough for stable.
    Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Link: http://lkml.kernel.org/r/1443089122-19082-3-git-send-email-adrian.hunter@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    3de5bd0b
symbol-elf.c 36.1 KB