linux/drivers/gpu/drm/vmwgfx
Josh Poimboeuf 0b0d81e3b7 objtool, drm/vmwgfx: Fix "duplicate frame pointer save" warning
objtool reports the following warnings:

  drivers/gpu/drm/vmwgfx/vmwgfx_msg.o: warning: objtool: vmw_send_msg()+0x107: duplicate frame pointer save
  drivers/gpu/drm/vmwgfx/vmwgfx_msg.o: warning: objtool: vmw_host_get_guestinfo()+0x252: duplicate frame pointer save

To quote Linus:

 "The reason is that VMW_PORT_HB_OUT() uses a magic instruction sequence
  (a "rep outsb") to communicate with the hypervisor (it's a virtual GPU
  driver for vmware), and %rbp is part of the communication. So the
  inline asm does a save-and-restore of the frame pointer around the
  instruction sequence.

  I actually find the objtool warning to be quite reasonable, so it's
  not exactly a false positive, since in this case it actually does
  point out that the frame pointer won't be reliable over that
  instruction sequence.

  But in this particular case it just ends up being the wrong thing -
  the code is what it is, and %rbp just can't have the frame information
  due to annoying magic calling conventions."

Silence the warnings by telling objtool to ignore the two functions
which use the VMW_PORT_HB_{IN,OUT} macros.

Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: DRI <dri-devel@lists.freedesktop.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/20160526184343.fdtjjjg67smmeekt@treble
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2016-06-08 15:36:18 +02:00
..
device_include drm/vmwgfx: remove userland definition of DIV_ROUND_UP 2016-03-04 16:10:36 -05:00
Kconfig drm/vmwgfx: Only build on X86 2015-09-17 02:13:42 -07:00
Makefile drm/vmwgfx: Report vmwgfx version to vmware.log 2016-05-20 17:40:07 +02:00
vmwgfx_binding.c drm/vmwgfx: Initial DX support 2015-08-12 10:06:32 -07:00
vmwgfx_binding.h drm/vmwgfx: Initial DX support 2015-08-12 10:06:32 -07:00
vmwgfx_buffer.c drm/ttm: implement LRU add callbacks v2 2016-05-04 20:21:38 -04:00
vmwgfx_cmdbuf_res.c drm/vmwgfx: Fix copyright headers 2015-08-12 10:06:56 -07:00
vmwgfx_cmdbuf.c drm/vmwgfx: Fix an incorrect lock check 2016-01-14 07:56:44 +10:00
vmwgfx_context.c Merge branch 'vmwgfx-next' of git://people.freedesktop.org/~thomash/linux into drm-next 2015-08-17 16:03:48 +10:00
vmwgfx_cotable.c drm/ttm: remove lazy parameter from ttm_bo_wait 2016-05-04 20:21:26 -04:00
vmwgfx_dmabuf.c drm/ttm: remove use_ticket parameter from ttm_bo_reserve 2016-05-04 20:21:21 -04:00
vmwgfx_drv.c drm/vmwgfx: Report vmwgfx version to vmware.log 2016-05-20 17:40:07 +02:00
vmwgfx_drv.h drm/vmwgfx: Report vmwgfx version to vmware.log 2016-05-20 17:40:07 +02:00
vmwgfx_execbuf.c drm/vmwgfx: use vmw_cmd_dx_cid_check for query commands. 2016-04-28 11:07:23 -07:00
vmwgfx_fb.c drm/vmwgfx: Fix order of operation 2016-04-28 11:07:30 -07:00
vmwgfx_fence.c drm/vmwgfx: Nuke preclose hook 2016-02-08 09:55:53 +01:00
vmwgfx_fence.h drm/vmwgfx: Nuke preclose hook 2016-02-08 09:55:53 +01:00
vmwgfx_fifo.c drm/vmwgfx: fix a warning message 2015-11-26 17:40:00 +01:00
vmwgfx_gmr.c drm/vmwgfx: Fix copyright headers 2015-08-12 10:06:56 -07:00
vmwgfx_gmrid_manager.c drm/ttm: move fpfn and lpfn into each placement v2 2014-08-27 13:16:04 +02:00
vmwgfx_ioctl.c drm/vmwgfx: Replace iowrite/ioread with volatile memory accesses 2015-11-02 00:16:05 -08:00
vmwgfx_irq.c drm/vmwgfx: Relax irq locking somewhat 2015-11-06 16:15:40 +01:00
vmwgfx_kms.c drm/vmwgfx: Kill some lockdep warnings 2016-05-20 17:05:55 +02:00
vmwgfx_kms.h drm/vmwgfx: Calculate the cursor position based on the crtc gui origin 2016-03-14 14:59:10 +01:00
vmwgfx_ldu.c drm/vmwgfx: Calculate the cursor position based on the crtc gui origin 2016-03-14 14:59:10 +01:00
vmwgfx_marker.c
vmwgfx_mob.c drm/ttm: remove use_ticket parameter from ttm_bo_reserve 2016-05-04 20:21:21 -04:00
vmwgfx_msg.c objtool, drm/vmwgfx: Fix "duplicate frame pointer save" warning 2016-06-08 15:36:18 +02:00
vmwgfx_msg.h drm/vmwgfx: Add VMWare host messaging capability 2016-05-20 17:12:33 +02:00
vmwgfx_overlay.c drm/vmwgfx: Fix up user_dmabuf refcounting 2015-09-14 01:13:11 -07:00
vmwgfx_prime.c
vmwgfx_reg.h drm/vmwgfx: Fix copyright headers 2015-08-12 10:06:56 -07:00
vmwgfx_resource_priv.h drm/vmwgfx: Fix copyright headers 2015-08-12 10:06:56 -07:00
vmwgfx_resource.c drm/ttm: remove lazy parameter from ttm_bo_wait 2016-05-04 20:21:26 -04:00
vmwgfx_scrn.c drm/vmwgfx: Kill some lockdep warnings 2016-05-20 17:05:55 +02:00
vmwgfx_shader.c drm/ttm: remove use_ticket parameter from ttm_bo_reserve 2016-05-04 20:21:21 -04:00
vmwgfx_so.c drm/vmwgfx: Fix copyright headers 2015-08-12 10:06:56 -07:00
vmwgfx_so.h drm/vmwgfx: Fix copyright headers 2015-08-12 10:06:56 -07:00
vmwgfx_stdu.c drm/vmwgfx: Kill some lockdep warnings 2016-05-20 17:05:55 +02:00
vmwgfx_surface.c drm/vmwgfx: check kmalloc return value 2015-12-15 13:37:57 +01:00
vmwgfx_ttm_glue.c drm/vmwgfx: Fix copyright headers 2015-08-12 10:06:56 -07:00