linux/drivers/gpu/drm/vmwgfx
Josh Poimboeuf a9da824762 drm/vmwgfx: Add unwind hints around RBP clobber
VMware high-bandwidth hypercalls take the RBP register as input.  This
breaks basic frame pointer convention, as RBP should never be clobbered.

So frame pointer unwinding is broken for the instructions surrounding
the hypercalls.  Fortunately this doesn't break live patching with
CONFIG_FRAME_POINTER, as it only unwinds from blocking tasks, and stack
traces from preempted tasks are already marked unreliable anyway.

However, for live patching with ORC, this could actually be a
theoretical problem if vmw_port_hb_{in,out}() were still compiled with a
frame pointer due to having an aligned stack.  In practice that hasn't
seemed to be an issue since the objtool warnings have only been seen
with CONFIG_FRAME_POINTER.

Add unwind hint annotations to tell the ORC unwinder to mark stack
traces as unreliable.

Fixes the following warnings:

  vmlinux.o: warning: objtool: vmw_port_hb_in+0x1df: return with modified stack frame
  vmlinux.o: warning: objtool: vmw_port_hb_out+0x1dd: return with modified stack frame

Fixes: 89da76fde6 ("drm/vmwgfx: Add VMWare host messaging capability")
Reported-by: kernel test robot <lkp@intel.com>
Link: https://lore.kernel.org/oe-kbuild-all/202305160135.97q0Elax-lkp@intel.com/
Link: https://lore.kernel.org/r/4c795f2d87bc0391cf6543bcb224fa540b55ce4b.1685981486.git.jpoimboe@kernel.org
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
2023-06-07 10:03:12 -07:00
..
device_include
Kconfig
Makefile
ttm_object.c
ttm_object.h
vmw_surface_cache.h
vmwgfx_binding.c
vmwgfx_binding.h
vmwgfx_blit.c
vmwgfx_bo.c drm/vmwgfx: Do not drop the reference to the handle too soon 2023-02-14 23:00:09 -05:00
vmwgfx_bo.h drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_cmd.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_cmdbuf.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_cmdbuf_res.c
vmwgfx_context.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_cotable.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_devcaps.c
vmwgfx_devcaps.h
vmwgfx_drv.c drm/vmwgfx: Print errors when running on broken/unsupported configs 2023-04-11 12:29:30 -04:00
vmwgfx_drv.h drm/vmwgfx: Print errors when running on broken/unsupported configs 2023-04-11 12:29:30 -04:00
vmwgfx_execbuf.c drm next for 6.3-rc1 2023-02-22 18:28:03 -08:00
vmwgfx_fence.c
vmwgfx_fence.h
vmwgfx_gem.c drm: Track clients by tgid and not tid 2023-03-15 14:03:00 +01:00
vmwgfx_gmr.c
vmwgfx_gmrid_manager.c
vmwgfx_ioctl.c
vmwgfx_irq.c
vmwgfx_kms.c drm/vmwgfx: Fix Legacy Display Unit atomic drm support 2023-04-11 12:29:30 -04:00
vmwgfx_kms.h drm/vmwgfx: Fix Legacy Display Unit atomic drm support 2023-04-11 12:29:30 -04:00
vmwgfx_ldu.c drm/vmwgfx: Fix Legacy Display Unit atomic drm support 2023-04-11 12:29:30 -04:00
vmwgfx_mksstat.h
vmwgfx_mob.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_msg.c drm/vmwgfx: Print errors when running on broken/unsupported configs 2023-04-11 12:29:30 -04:00
vmwgfx_msg_arm64.h
vmwgfx_msg_x86.h drm/vmwgfx: Add unwind hints around RBP clobber 2023-06-07 10:03:12 -07:00
vmwgfx_overlay.c drm/vmwgfx: remove unused vmw_overlay function 2023-04-11 13:48:55 -04:00
vmwgfx_page_dirty.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_prime.c
vmwgfx_reg.h
vmwgfx_resource.c drm/vmwgfx: Make the driver work without the dummy resources 2023-02-13 22:37:55 -05:00
vmwgfx_resource_priv.h drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_scrn.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_shader.c drm/vmwgfx: Do not drop the reference to the handle too soon 2023-02-14 23:00:09 -05:00
vmwgfx_simple_resource.c
vmwgfx_so.c flexible-array transformations for 6.4-rc1 2023-04-26 08:25:57 -07:00
vmwgfx_so.h
vmwgfx_stdu.c drm/vmwgfx: Fix src/dst_pitch confusion 2023-03-15 16:15:25 -04:00
vmwgfx_streamoutput.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_surface.c drm/vmwgfx: Do not drop the reference to the handle too soon 2023-02-14 23:00:09 -05:00
vmwgfx_system_manager.c
vmwgfx_ttm_buffer.c drm/vmwgfx: Make the driver work without the dummy resources 2023-02-13 22:37:55 -05:00
vmwgfx_ttm_glue.c
vmwgfx_va.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_validation.c drm/vmwgfx: Stop using raw ttm_buffer_object's 2023-02-13 22:37:55 -05:00
vmwgfx_validation.h