From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754355AbXKEUXK (ORCPT ); Mon, 5 Nov 2007 15:23:10 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753459AbXKEUW5 (ORCPT ); Mon, 5 Nov 2007 15:22:57 -0500 Received: from ebiederm.dsl.xmission.com ([166.70.28.69]:56125 "EHLO ebiederm.dsl.xmission.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753299AbXKEUW4 (ORCPT ); Mon, 5 Nov 2007 15:22:56 -0500 From: ebiederm@xmission.com (Eric W. Biederman) To: Linus Torvalds Cc: "H. Peter Anvin" , Linux Kernel Mailing List , Thomas Gleixner , Ingo Molnar , Mikael Petterson , Jeremy Fitzhardinge Subject: Re: [GIT PULL] x86 setup: correct booting on 486 (revised) References: <200711050358.lA53wlho003349@tazenda.hos.anvin.org> <472F5941.2060507@zytor.com> <472F61C8.4040300@zytor.com> Date: Mon, 05 Nov 2007 13:21:33 -0700 In-Reply-To: (Linus Torvalds's message of "Mon, 5 Nov 2007 10:36:50 -0800 (PST)") Message-ID: User-Agent: Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Linus Torvalds writes: > On Mon, 5 Nov 2007, H. Peter Anvin wrote: >> >> Well, the 32-bit code needs to set up its own stack, and only it knows where >> it wants its stack; we don't guarantee that the stack is valid when we enter >> the 32-bit code and we're entering with both INT and NMI disabled (requiring a >> stack would probably break all existing users of the 32-bit entrypoint.) > > I agree. But it would be nice if some basic instructions still worked: as > is, you cannot even do things like reloading %eflags, because the only way > to do that requires a stack. > >> However, that being said, doing so is trivial, and it might help some >> debugging hack; anything that makes debugging easier is a Good Thing[TM]. > > Yeah. Even if it was just re-using the boot-time stack area temporarily, > just to give code the choice to use a common set of instructions. If I had to do it from scratch today I would make the 32-bit entry point require a stack, segments and use C calling conventions to pass struct boot_params *. Besides %esi I'm not really fond of requiring anything in the 32bit entrypoint. At the same time I totally agree that it is always nice to provide way more then you need. Eric