Revision a09935b878dc8efd4b030ed1ffa0553fc9011fb8 authored by Namhyung Kim on 31 May 2017, 12:01:05 UTC, committed by Arnaldo Carvalho de Melo on 05 June 2017, 17:17:59 UTC
The decompress_kmodule() decompresses kernel modules in order to load
symbols from it.  In the DSO_BINARY_TYPE__BUILD_ID_CACHE case, it needs
the full file path to extract the file extension to determine the
decompression method.  But overwriting 'name' will fail the
decompression since it might point to a non-existing old file.

Instead, use dso->long_name for having the correct extension and use the
real filename to decompress.

In the DSO_BINARY_TYPE__SYSTEM_PATH_KMODULE_COMP case, both names should
be the same.  This allows resolving symbols in the old modules.

Before:

  $ perf report -i perf.data.old | grep scsi_mod
     0.00%  cc1      [scsi_mod]    [k] 0x0000000000004aa6
     0.00%  as       [scsi_mod]    [k] 0x00000000000099e1
     0.00%  cc1      [scsi_mod]    [k] 0x0000000000009830
     0.00%  cc1      [scsi_mod]    [k] 0x0000000000001b8f

After:

     0.00%  cc1      [scsi_mod]    [k] scsi_handle_queue_ramp_up
     0.00%  as       [scsi_mod]    [k] scsi_sg_alloc
     0.00%  cc1      [scsi_mod]    [k] scsi_setup_cmnd
     0.00%  cc1      [scsi_mod]    [k] scsi_get_command

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: kernel-team@lge.com
Link: http://lkml.kernel.org/r/20170531120105.21731-3-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
1 parent 6b335e8
History
File Mode Size
BUGS-parport -rw-r--r-- 319 bytes
Kconfig -rw-r--r-- 5.4 KB
Makefile -rw-r--r-- 693 bytes
TODO-parport -rw-r--r-- 594 bytes
daisy.c -rw-r--r-- 12.3 KB
ieee1284.c -rw-r--r-- 22.6 KB
ieee1284_ops.c -rw-r--r-- 23.3 KB
multiface.h -rw-r--r-- 387 bytes
parport_amiga.c -rw-r--r-- 6.3 KB
parport_atari.c -rw-r--r-- 5.4 KB
parport_ax88796.c -rw-r--r-- 9.3 KB
parport_cs.c -rw-r--r-- 5.5 KB
parport_gsc.c -rw-r--r-- 11.0 KB
parport_gsc.h -rw-r--r-- 6.1 KB
parport_ip32.c -rw-r--r-- 67.0 KB
parport_mfc3.c -rw-r--r-- 9.9 KB
parport_pc.c -rw-r--r-- 85.5 KB
parport_serial.c -rw-r--r-- 20.1 KB
parport_sunbpp.c -rw-r--r-- 9.3 KB
probe.c -rw-r--r-- 7.4 KB
procfs.c -rw-r--r-- 12.6 KB
share.c -rw-r--r-- 36.8 KB

back to top