Revision 3f938ee2f6c4fff8d95b24636a0964b5a93cf547 authored by Jiri Olsa on 26 June 2017, 09:51:53 UTC, committed by Arnaldo Carvalho de Melo on 26 June 2017, 14:52:37 UTC
Michael reported the segfault when kernel.kptr_restrict=2 is set. $ perf record ls ... perf: Segmentation fault Obtained 16 stack frames. ./perf(dump_stack+0x2d) [0x5068df] ./perf(sighandler_dump_stack+0x2d) [0x5069bf] ./perf() [0x43e47b] /lib64/libc.so.6(+0x3594f) [0x7f762004794f] /lib64/libc.so.6(strlen+0x26) [0x7f762009ef86] /lib64/libc.so.6(__strdup+0xd) [0x7f762009ecbd] ./perf(maps__set_kallsyms_ref_reloc_sym+0x4d) [0x51590f] ./perf(machine__create_kernel_maps+0x136) [0x50a7de] ./perf(perf_session__create_kernel_maps+0x2c) [0x510a81] ./perf(perf_session__new+0x13d) [0x510e23] ./perf() [0x43fd61] ./perf(cmd_record+0x704) [0x441823] ./perf() [0x4bc1a0] ./perf() [0x4bc40d] ./perf() [0x4bc55f] ./perf(main+0x2d5) [0x4bc939] Segmentation fault (core dumped) The reason is that with kernel.kptr_restrict=2, we don't get the symbol from machine__get_running_kernel_start, which we want to use in maps__set_kallsyms_ref_reloc_sym and we crash. Check the symbol name value before calling maps__set_kallsyms_ref_reloc_sym() and succeed without ref_reloc_sym being set. It's safe because we check its existence before we use it. Reported-by: Michael Petlan <mpetlan@redhat.com> Signed-off-by: Jiri Olsa <jolsa@kernel.org> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: David Ahern <dsahern@gmail.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/20170626095153.553-1-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
1 parent 977282e
File | Mode | Size |
---|---|---|
bridge | ||
i2c | ||
tinydrm | ||
ttm | ||
ati_pcigart.h | -rw-r--r-- | 692 bytes |
drmP.h | -rw-r--r-- | 15.9 KB |
drm_agpsupport.h | -rw-r--r-- | 3.8 KB |
drm_atomic.h | -rw-r--r-- | 27.9 KB |
drm_atomic_helper.h | -rw-r--r-- | 10.6 KB |
drm_auth.h | -rw-r--r-- | 2.6 KB |
drm_blend.h | -rw-r--r-- | 2.6 KB |
drm_bridge.h | -rw-r--r-- | 8.0 KB |
drm_cache.h | -rw-r--r-- | 1.9 KB |
drm_color_mgmt.h | -rw-r--r-- | 1.5 KB |
drm_connector.h | -rw-r--r-- | 33.2 KB |
drm_crtc.h | -rw-r--r-- | 30.5 KB |
drm_crtc_helper.h | -rw-r--r-- | 3.2 KB |
drm_debugfs.h | -rw-r--r-- | 3.4 KB |
drm_debugfs_crc.h | -rw-r--r-- | 2.6 KB |
drm_displayid.h | -rw-r--r-- | 2.8 KB |
drm_dp_dual_mode_helper.h | -rw-r--r-- | 4.4 KB |
drm_dp_helper.h | -rw-r--r-- | 34.5 KB |
drm_dp_mst_helper.h | -rw-r--r-- | 15.6 KB |
drm_drv.h | -rw-r--r-- | 18.9 KB |
drm_edid.h | -rw-r--r-- | 14.7 KB |
drm_encoder.h | -rw-r--r-- | 7.9 KB |
drm_encoder_slave.h | -rw-r--r-- | 6.5 KB |
drm_fb_cma_helper.h | -rw-r--r-- | 1.8 KB |
drm_fb_helper.h | -rw-r--r-- | 14.8 KB |
drm_file.h | -rw-r--r-- | 10.4 KB |
drm_fixed.h | -rw-r--r-- | 4.7 KB |
drm_flip_work.h | -rw-r--r-- | 3.0 KB |
drm_fourcc.h | -rw-r--r-- | 2.8 KB |
drm_framebuffer.h | -rw-r--r-- | 9.6 KB |
drm_gem.h | -rw-r--r-- | 10.1 KB |
drm_gem_cma_helper.h | -rw-r--r-- | 3.6 KB |
drm_global.h | -rw-r--r-- | 1.9 KB |
drm_hashtab.h | -rw-r--r-- | 3.0 KB |
drm_ioctl.h | -rw-r--r-- | 6.2 KB |
drm_irq.h | -rw-r--r-- | 6.1 KB |
drm_legacy.h | -rw-r--r-- | 6.8 KB |
drm_mem_util.h | -rw-r--r-- | 2.3 KB |
drm_mipi_dsi.h | -rw-r--r-- | 10.1 KB |
drm_mm.h | -rw-r--r-- | 16.5 KB |
drm_mode_config.h | -rw-r--r-- | 25.6 KB |
drm_mode_object.h | -rw-r--r-- | 5.6 KB |
drm_modes.h | -rw-r--r-- | 16.8 KB |
drm_modeset_helper.h | -rw-r--r-- | 1.6 KB |
drm_modeset_helper_vtables.h | -rw-r--r-- | 43.4 KB |
drm_modeset_lock.h | -rw-r--r-- | 3.9 KB |
drm_of.h | -rw-r--r-- | 2.3 KB |
drm_os_linux.h | -rw-r--r-- | 2.2 KB |
drm_panel.h | -rw-r--r-- | 7.0 KB |
drm_pci.h | -rw-r--r-- | 2.6 KB |
drm_pciids.h | -rw-r--r-- | 66.4 KB |
drm_plane.h | -rw-r--r-- | 19.6 KB |
drm_plane_helper.h | -rw-r--r-- | 3.2 KB |
drm_prime.h | -rw-r--r-- | 2.9 KB |
drm_print.h | -rw-r--r-- | 3.6 KB |
drm_property.h | -rw-r--r-- | 11.8 KB |
drm_rect.h | -rw-r--r-- | 5.0 KB |
drm_scdc_helper.h | -rw-r--r-- | 5.1 KB |
drm_simple_kms_helper.h | -rw-r--r-- | 4.0 KB |
drm_sysfs.h | -rw-r--r-- | 248 bytes |
drm_vma_manager.h | -rw-r--r-- | 7.6 KB |
gma_drm.h | -rw-r--r-- | 1.0 KB |
i915_component.h | -rw-r--r-- | 4.1 KB |
i915_drm.h | -rw-r--r-- | 3.5 KB |
i915_pciids.h | -rw-r--r-- | 12.6 KB |
intel-gtt.h | -rw-r--r-- | 948 bytes |
intel_lpe_audio.h | -rw-r--r-- | 1.7 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...