]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: x86: avoid large stack allocations in em_fxrstor
authorNick Desaulniers <nick.desaulniers@gmail.com>
Wed, 31 May 2017 03:08:38 +0000 (20:08 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 1 Jun 2017 09:23:12 +0000 (11:23 +0200)
commit990227a62f974c637f721e4cd4a7bdcaaa8e57ab
treecf7e7a41e34f85446d6a66c73dcbb5965b48cea3
parent9b547eb166c7a05d98f560bd965c8108291af9f1
KVM: x86: avoid large stack allocations in em_fxrstor

em_fxstor previously called fxstor_fixup.  Both created instances of
struct fxregs_state on the stack, which triggered the warning:

arch/x86/kvm/emulate.c:4018:12: warning: stack frame size of 1080 bytes
in function
      'em_fxrstor' [-Wframe-larger-than=]
static int em_fxrstor(struct x86_emulate_ctxt *ctxt)
           ^
with CONFIG_FRAME_WARN set to 1024.

This patch does the fixup in em_fxstor now, avoiding one additional
struct fxregs_state, and now fxstor_fixup can be removed as it has no
other call sites.

Further, the calculation for offsets into xmm_space can be shared
between em_fxstor and em_fxsave.

Signed-off-by: Nick Desaulniers <nick.desaulniers@gmail.com>
[Clean up calculation of offsets and fix it for 64-bit mode. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/emulate.c