search for: restore_regs

Displaying 20 results from an estimated 25 matches for "restore_regs".

2007 May 21
2
changing definition of paravirt_ops.iret
...can set the event mask state in the vcpu_info structure, but unfortunately at the point where INTERRUPT_RETURN is used in entry.S, the usermode %fs has already been restored. How would you feel if we changed paravirt_ops.iret to make it also responsible for restoring %fs? In other words, change RESTORE_REGS to skip %fs, and then native_iret would look like: 1: popl %fs iret with the normal exception stuff. Fortunately, %fs is already the first thing to be saved and last to be restored, so there's no major rearrangements. Ideally I'd also like a register to play with, but that would requir...
2007 May 21
2
changing definition of paravirt_ops.iret
...can set the event mask state in the vcpu_info structure, but unfortunately at the point where INTERRUPT_RETURN is used in entry.S, the usermode %fs has already been restored. How would you feel if we changed paravirt_ops.iret to make it also responsible for restoring %fs? In other words, change RESTORE_REGS to skip %fs, and then native_iret would look like: 1: popl %fs iret with the normal exception stuff. Fortunately, %fs is already the first thing to be saved and last to be restored, so there's no major rearrangements. Ideally I'd also like a register to play with, but that would requir...
2007 Apr 18
1
[PATCH 1/2] Transparent entry.S IRQ holdoff handling
...value syscall_exit: - cli # make sure we don't miss an interrupt + CLI # make sure we don't miss an interrupt # setting need_resched or sigpending # between sampling and the iret #ifdef CONFIG_TRAP_BAD_SYSCALL_EXITS @@ -274,10 +273,10 @@ restore_all: restore_nocheck: RESTORE_REGS addl $4, %esp -1: iret +1: IRET .section .fixup,"ax" iret_exc: - sti + STI pushl $0 # no error code pushl $do_iret_error jmp error_code @@ -299,14 +298,14 @@ ldt_ss: * CPUs, which we can try to work around to make * dosemu and wine happy. */ subl $8, %esp # reserve sp...
2007 Apr 18
1
[PATCH 1/2] Transparent entry.S IRQ holdoff handling
...value syscall_exit: - cli # make sure we don't miss an interrupt + CLI # make sure we don't miss an interrupt # setting need_resched or sigpending # between sampling and the iret #ifdef CONFIG_TRAP_BAD_SYSCALL_EXITS @@ -274,10 +273,10 @@ restore_all: restore_nocheck: RESTORE_REGS addl $4, %esp -1: iret +1: IRET .section .fixup,"ax" iret_exc: - sti + STI pushl $0 # no error code pushl $do_iret_error jmp error_code @@ -299,14 +298,14 @@ ldt_ss: * CPUs, which we can try to work around to make * dosemu and wine happy. */ subl $8, %esp # reserve sp...
2007 Apr 18
1
Patch: use .pushsection/.popsection
...hl $0 # no error code pushl $do_iret_error jmp error_code -.previous -.section __ex_table,"a" +.popsection +.pushsection __ex_table,"a" .align 4 .long 1b,iret_exc -.previous +.popsection = CFI_RESTORE_STATE ldt_ss: @@ -415,11 +415,11 @@ ldt_ss: TRACE_IRQS_IRET RESTORE_REGS lss 20+4(%esp), %esp # switch to 16bit stack -1: INTERRUPT_RETURN -.section __ex_table,"a" +1: iret +.pushsection __ex_table,"a" .align 4 .long 1b,iret_exc -.previous +.popsection CFI_ENDPROC = # perform work that needs to be done immediately before resumption @@ -52...
2007 Apr 18
1
Patch: use .pushsection/.popsection
...hl $0 # no error code pushl $do_iret_error jmp error_code -.previous -.section __ex_table,"a" +.popsection +.pushsection __ex_table,"a" .align 4 .long 1b,iret_exc -.previous +.popsection = CFI_RESTORE_STATE ldt_ss: @@ -415,11 +415,11 @@ ldt_ss: TRACE_IRQS_IRET RESTORE_REGS lss 20+4(%esp), %esp # switch to 16bit stack -1: INTERRUPT_RETURN -.section __ex_table,"a" +1: iret +.pushsection __ex_table,"a" .align 4 .long 1b,iret_exc -.previous +.popsection CFI_ENDPROC = # perform work that needs to be done immediately before resumption @@ -52...
2007 Apr 18
1
[RFC, PATCH 8/24] i386 Vmi syscall assembly
...the return value syscall_exit: - cli # make sure we don't miss an interrupt + CLI # make sure we don't miss an interrupt # setting need_resched or sigpending # between sampling and the iret movl TI_flags(%ebp), %ecx @@ -256,14 +256,14 @@ restore_all: restore_nocheck: RESTORE_REGS addl $4, %esp -1: iret -.section .fixup,"ax" +1: IRET +.pushsection .fixup,"ax" iret_exc: - sti + STI pushl $0 # no error code pushl $do_iret_error jmp error_code -.previous +.popsection .section __ex_table,"a" .align 4 .long 1b,iret_exc @@ -281,14 +281...
2007 Apr 18
1
[RFC, PATCH 8/24] i386 Vmi syscall assembly
...the return value syscall_exit: - cli # make sure we don't miss an interrupt + CLI # make sure we don't miss an interrupt # setting need_resched or sigpending # between sampling and the iret movl TI_flags(%ebp), %ecx @@ -256,14 +256,14 @@ restore_all: restore_nocheck: RESTORE_REGS addl $4, %esp -1: iret -.section .fixup,"ax" +1: IRET +.pushsection .fixup,"ax" iret_exc: - sti + STI pushl $0 # no error code pushl $do_iret_error jmp error_code -.previous +.popsection .section __ex_table,"a" .align 4 .long 1b,iret_exc @@ -281,14 +281...
2013 Feb 14
2
[PATCH] x86/xen: don't assume %ds is usable in xen_iret for 32-bit PVOPS.
...otection+0x0/0x210 > [<c084a9b7>] ? error_code+0x73/ > ------------- > > Petr says: " > I've analysed the bug and I think that xen_iret() cannot cope with > mangled DS, in this case zeroed out (null selector/descriptor) by either > xen_failsafe_callback() or RESTORE_REGS because the corresponding LDT > entry was invalidated by the reproducer. " > > Jan took a look at the preliminary patch and came up a fix that solves > this problem: > > "This code gets called after all registers other than those handled by > IRET got already resto...
2013 Feb 14
2
[PATCH] x86/xen: don't assume %ds is usable in xen_iret for 32-bit PVOPS.
...otection+0x0/0x210 > [<c084a9b7>] ? error_code+0x73/ > ------------- > > Petr says: " > I've analysed the bug and I think that xen_iret() cannot cope with > mangled DS, in this case zeroed out (null selector/descriptor) by either > xen_failsafe_callback() or RESTORE_REGS because the corresponding LDT > entry was invalidated by the reproducer. " > > Jan took a look at the preliminary patch and came up a fix that solves > this problem: > > "This code gets called after all registers other than those handled by > IRET got already resto...
2007 Apr 18
0
[PATCH 17/21] i386 Ldt cleanups 1
...s. movb OLDSS(%esp), %ah movb CS(%esp), %al - andl $(VM_MASK | (4 << 8) | 3), %eax - cmpl $((4 << 8) | 3), %eax + andl $(VM_MASK | (LDT_SEGMENT << 8) | 3), %eax + cmpl $((LDT_SEGMENT << 8) | 3), %eax je ldt_ss # returning to user-space with LDT SS restore_nocheck: RESTORE_REGS Index: linux-2.6.14-zach-work/arch/i386/kernel/ptrace.c =================================================================== --- linux-2.6.14-zach-work.orig/arch/i386/kernel/ptrace.c 2005-11-04 18:30:27.000000000 -0800 +++ linux-2.6.14-zach-work/arch/i386/kernel/ptrace.c 2005-11-05 00:28:04.00000000...
2007 Apr 18
0
[PATCH 17/21] i386 Ldt cleanups 1
...s. movb OLDSS(%esp), %ah movb CS(%esp), %al - andl $(VM_MASK | (4 << 8) | 3), %eax - cmpl $((4 << 8) | 3), %eax + andl $(VM_MASK | (LDT_SEGMENT << 8) | 3), %eax + cmpl $((LDT_SEGMENT << 8) | 3), %eax je ldt_ss # returning to user-space with LDT SS restore_nocheck: RESTORE_REGS Index: linux-2.6.14-zach-work/arch/i386/kernel/ptrace.c =================================================================== --- linux-2.6.14-zach-work.orig/arch/i386/kernel/ptrace.c 2005-11-04 18:30:27.000000000 -0800 +++ linux-2.6.14-zach-work/arch/i386/kernel/ptrace.c 2005-11-05 00:28:04.00000000...
2007 Apr 18
1
[PATCH 6/14] i386 / Add some segment convenience functions
...s. movb OLDSS(%esp), %ah movb CS(%esp), %al - andl $(VM_MASK | (4 << 8) | 3), %eax - cmpl $((4 << 8) | 3), %eax + andl $(VM_MASK | (LDT_SEGMENT << 8) | 3), %eax + cmpl $((LDT_SEGMENT << 8) | 3), %eax je ldt_ss # returning to user-space with LDT SS restore_nocheck: RESTORE_REGS Index: linux-2.6.13/arch/i386/mm/fault.c =================================================================== --- linux-2.6.13.orig/arch/i386/mm/fault.c 2005-08-09 19:43:38.000000000 -0700 +++ linux-2.6.13/arch/i386/mm/fault.c 2005-08-10 20:42:20.000000000 -0700 @@ -101,7 +101,7 @@ /* Get the GDT/...
2007 Apr 18
1
[PATCH 6/14] i386 / Add some segment convenience functions
...s. movb OLDSS(%esp), %ah movb CS(%esp), %al - andl $(VM_MASK | (4 << 8) | 3), %eax - cmpl $((4 << 8) | 3), %eax + andl $(VM_MASK | (LDT_SEGMENT << 8) | 3), %eax + cmpl $((LDT_SEGMENT << 8) | 3), %eax je ldt_ss # returning to user-space with LDT SS restore_nocheck: RESTORE_REGS Index: linux-2.6.13/arch/i386/mm/fault.c =================================================================== --- linux-2.6.13.orig/arch/i386/mm/fault.c 2005-08-09 19:43:38.000000000 -0700 +++ linux-2.6.13/arch/i386/mm/fault.c 2005-08-10 20:42:20.000000000 -0700 @@ -101,7 +101,7 @@ /* Get the GDT/...
2007 Apr 18
8
[patch 0/8] Basic infrastructure patches for a paravirtualized kernel
Hi Andrew, This series of patches lays the basic ground work for the paravirtualized kernel patches coming later on. I think this lot is ready for the rough-and-tumble world of the -mm tree. The main change from the last posting is that all the page-table related patches have been moved out, and will be posted separately. Also, the off-by-one in reserving the top of address space has been
2007 Apr 18
8
[patch 0/8] Basic infrastructure patches for a paravirtualized kernel
Hi Andrew, This series of patches lays the basic ground work for the paravirtualized kernel patches coming later on. I think this lot is ready for the rough-and-tumble world of the -mm tree. The main change from the last posting is that all the page-table related patches have been moved out, and will be posted separately. Also, the off-by-one in reserving the top of address space has been
2007 Apr 18
2
[PATCH 1/3] Paravirtualization: Kernel Ring Cleanups
Hi all, I've been looking at finding common ground between the VMI, Xen and other paravirtualization approaches, and after some discussion, we're getting somewhere. These first two patches are the fundamentals, stolen mainly from the VMI patches: removing assumptions about the kernel running in ring 0, and macro-izing all the obvious para-virtualize-needing insns. The third patch is
2007 Apr 18
2
[PATCH 1/3] Paravirtualization: Kernel Ring Cleanups
Hi all, I've been looking at finding common ground between the VMI, Xen and other paravirtualization approaches, and after some discussion, we're getting somewhere. These first two patches are the fundamentals, stolen mainly from the VMI patches: removing assumptions about the kernel running in ring 0, and macro-izing all the obvious para-virtualize-needing insns. The third patch is
2007 Apr 18
15
[PATCH 0 of 13] Basic infrastructure patches for a paravirtualized kernel
[ REPOST: Apologies to anyone who has seen this before. It didn't make it onto any of the lists it should have. -J ] Hi Andrew, This series of patches lays the basic ground work for the paravirtualized kernel patches coming later on. I think this lot is ready for the rough-and-tumble world of the -mm tree. For the most part, these patches do nothing or very little. The patches should
2007 Apr 18
15
[PATCH 0 of 13] Basic infrastructure patches for a paravirtualized kernel
[ REPOST: Apologies to anyone who has seen this before. It didn't make it onto any of the lists it should have. -J ] Hi Andrew, This series of patches lays the basic ground work for the paravirtualized kernel patches coming later on. I think this lot is ready for the rough-and-tumble world of the -mm tree. For the most part, these patches do nothing or very little. The patches should