• N
    KVM: x86: avoid large stack allocations in em_fxrstor · 9d643f63
    Nick Desaulniers 提交于
    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: NNick Desaulniers <nick.desaulniers@gmail.com>
    [Clean up calculation of offsets and fix it for 64-bit mode. - Paolo]
    Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
    9d643f63
emulate.c 146.6 KB