Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4614a3a3b638dfd7a67d0237944f6a76331af61d
Commit:     4614a3a3b638dfd7a67d0237944f6a76331af61d
Parent:     625efab1cd3d4da4634dfe26df6b4005385397e2
Author:     Jes Sorensen <[EMAIL PROTECTED]>
AuthorDate: Mon Oct 22 11:03:29 2007 +1000
Committer:  Rusty Russell <[EMAIL PROTECTED]>
CommitDate: Tue Oct 23 15:49:51 2007 +1000

    Reorder guest saved regs to match hyperall order
    
    Move eax next to ebx/ecx/edx in struct lguest_regs on i386, so they
    will be located together and allow it to map directly to a struct
    hcall_ring entry (which will be renamed struct hcall_args as in a
    subsequent patch).
    
    This is in preparation for making the code hcall code architecture
    independent.
    
    Signed-off-by: Jes Sorensen <[EMAIL PROTECTED]>
    Signed-off-by: Rusty Russell <[EMAIL PROTECTED]>
---
 drivers/lguest/x86/switcher_32.S |    4 ++--
 include/asm-x86/lguest.h         |    3 +--
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/lguest/x86/switcher_32.S b/drivers/lguest/x86/switcher_32.S
index e66cec5..1010b90 100644
--- a/drivers/lguest/x86/switcher_32.S
+++ b/drivers/lguest/x86/switcher_32.S
@@ -133,6 +133,7 @@ ENTRY(switch_to_guest)
        // The Guest's register page has been mapped
        // Writable onto our %esp (stack) --
        // We can simply pop off all Guest regs.
+       popl    %eax
        popl    %ebx
        popl    %ecx
        popl    %edx
@@ -140,7 +141,6 @@ ENTRY(switch_to_guest)
        popl    %edi
        popl    %ebp
        popl    %gs
-       popl    %eax
        popl    %fs
        popl    %ds
        popl    %es
@@ -168,7 +168,6 @@ ENTRY(switch_to_guest)
        pushl   %es;                                                    \
        pushl   %ds;                                                    \
        pushl   %fs;                                                    \
-       pushl   %eax;                                                   \
        pushl   %gs;                                                    \
        pushl   %ebp;                                                   \
        pushl   %edi;                                                   \
@@ -176,6 +175,7 @@ ENTRY(switch_to_guest)
        pushl   %edx;                                                   \
        pushl   %ecx;                                                   \
        pushl   %ebx;                                                   \
+       pushl   %eax;                                                   \
        /* Our stack and our code are using segments                    \
         * Set in the TSS and IDT                                       \
         * Yet if we were to touch data we'd use                        \
diff --git a/include/asm-x86/lguest.h b/include/asm-x86/lguest.h
index f10f1c6..ccd3384 100644
--- a/include/asm-x86/lguest.h
+++ b/include/asm-x86/lguest.h
@@ -26,10 +26,9 @@ extern unsigned long default_idt_entries[];
 struct lguest_regs
 {
        /* Manually saved part. */
-       unsigned long ebx, ecx, edx;
+       unsigned long eax, ebx, ecx, edx;
        unsigned long esi, edi, ebp;
        unsigned long gs;
-       unsigned long eax;
        unsigned long fs, ds, es;
        unsigned long trapnum, errcode;
        /* Trap pushed part */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to