Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752721AbbBXLp0 (ORCPT ); Tue, 24 Feb 2015 06:45:26 -0500 Received: from mx1.redhat.com ([209.132.183.28]:41689 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750850AbbBXLpY (ORCPT ); Tue, 24 Feb 2015 06:45:24 -0500 Message-ID: <54EC643D.3040005@redhat.com> Date: Tue, 24 Feb 2015 12:45:01 +0100 From: Denys Vlasenko User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: Andy Lutomirski CC: Borislav Petkov , "H. Peter Anvin" , X86 ML , LKML , Linus Torvalds , Alexander van Heukelum Subject: Re: RFC: (almost) getting rid of FIXUP/RESTORE_TOP_OF_STACK? References: <54EB96AB.5050808@redhat.com> In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1544 Lines: 46 On 02/24/2015 12:58 AM, Andy Lutomirski wrote: >> - Next possible change is to use PUSH insns to build the stack. Something along the lines of >> swapgs >> mov %rsp,%gs:old_rsp >> mov %gs:kernel_stack,%rsp >> sti >> push $__USER_DS /* pt_regs->ss */ >> push %gs:old_rsp /* ->rsp */ >> push %r11 /* ->rflags */ >> push $__USER_CS /* ->cs */ >> push %rcx /* ->rip */ >> push %rax /* ->orig_rax */ >> push %rdi >> push %rsi >> push %rdx >> push %rcx >> push $-ENOSYS /* ->rax */ >> push %r8 >> push %r9 >> push %r10 >> push %r11 >> sub $(6*8),%rsp /* rbx, rbp, r12-r15 not saved */ Correction: push %r11 sub $(6*8),%rsp /* rbx, rbp, r12-r15 not saved */ should be sub $(7*8),%rsp /* r11, rbx, rbp, r12-r15 not saved */ since we don't need to save r11 either. > > Yay! "yay!" as in "I like this!" or as in "I am surprised" ? > Can we have a macro PUSH_XYZ for most of this? Yes, it can be a macro. I'm not sure we'll have more than one such place, tho. Do you want a macro even if it will be once-use only? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/