Displaying 10 results from an estimated 10 matches for "user_rpl".
2007 Apr 18
2
[patch 3/8] Allow a kernel to not be in ring 0.
...inge wrote:
> We allow for the fact that the guest kernel may not run in ring 0.
> This requires some abstraction in a few places when setting %cs or
> checking privilege level (user vs kernel).
I made some changes:
a. Added some comments about the SEGMENT_IS_*_CODE() macros.
b. Added a USER_RPL macro. (You were comparing a value to a mask
in some places and to the magic number 3 in other places.)
c. Changed the entry.S tests for LDT stack segment to use the macros.
From: Jeremy Fitzhardinge <jeremy@xensource.com>
We allow for the fact that the guest kernel may not run in rin...
2007 Apr 18
2
[patch 3/8] Allow a kernel to not be in ring 0.
...inge wrote:
> We allow for the fact that the guest kernel may not run in ring 0.
> This requires some abstraction in a few places when setting %cs or
> checking privilege level (user vs kernel).
I made some changes:
a. Added some comments about the SEGMENT_IS_*_CODE() macros.
b. Added a USER_RPL macro. (You were comparing a value to a mask
in some places and to the magic number 3 in other places.)
c. Changed the entry.S tests for LDT stack segment to use the macros.
From: Jeremy Fitzhardinge <jeremy@xensource.com>
We allow for the fact that the guest kernel may not run in rin...
2007 Apr 18
1
[PATCH] Slight cleanups for x86 ring macros (against rc3-mm2)
Clean up of patch for letting kernel run other than ring 0:
a. Add some comments about the SEGMENT_IS_*_CODE() macros.
b. Add a USER_RPL macro. (Code was comparing a value to a mask
in some places and to the magic number 3 in other places.)
c. Add macros for table indicator field and use them.
d. Change the entry.S tests for LDT stack segment to use the macros.
Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com>
Acked...
2007 Apr 18
1
[PATCH] Slight cleanups for x86 ring macros (against rc3-mm2)
Clean up of patch for letting kernel run other than ring 0:
a. Add some comments about the SEGMENT_IS_*_CODE() macros.
b. Add a USER_RPL macro. (Code was comparing a value to a mask
in some places and to the magic number 3 in other places.)
c. Add macros for table indicator field and use them.
d. Change the entry.S tests for LDT stack segment to use the macros.
Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com>
Acked...
2007 Jun 06
0
[PATCH UPDATE] xen: use iret directly where possible
...?
+ Definitely. Easy to avoid? Yes. The Intel documents
+ explicitly say that the reported EIP for a bad jump is the
+ jump instruction itself, not the destination, but some virtual
+ environments get this wrong.
+ */
+ movl PT_CS+4(%esp), %ecx
+ andl $SEGMENT_RPL_MASK, %ecx
+ cmpl $USER_RPL, %ecx
+ je 2f
+
+ lea PT_ORIG_EAX+4(%esp), %esi
+ lea PT_EFLAGS+4(%esp), %edi
+
+ /* If eip is before iret_restore_end then stack
+ hasn't been restored yet. */
+ cmp $iret_restore_end, %eax
+ jae 1f
+
+ movl 0+4(%edi),%eax /* copy EAX */
+ movl %eax, PT_EAX+4(%esp)
+
+ lea ESP_OFFSET(%edi)...
2007 Jun 06
0
[PATCH UPDATE] xen: use iret directly where possible
...?
+ Definitely. Easy to avoid? Yes. The Intel documents
+ explicitly say that the reported EIP for a bad jump is the
+ jump instruction itself, not the destination, but some virtual
+ environments get this wrong.
+ */
+ movl PT_CS+4(%esp), %ecx
+ andl $SEGMENT_RPL_MASK, %ecx
+ cmpl $USER_RPL, %ecx
+ je 2f
+
+ lea PT_ORIG_EAX+4(%esp), %esi
+ lea PT_EFLAGS+4(%esp), %edi
+
+ /* If eip is before iret_restore_end then stack
+ hasn't been restored yet. */
+ cmp $iret_restore_end, %eax
+ jae 1f
+
+ movl 0+4(%edi),%eax /* copy EAX */
+ movl %eax, PT_EAX+4(%esp)
+
+ lea ESP_OFFSET(%edi)...
2007 Jun 04
1
[PATCH] xen: use iret directly where possible
...jumps into
+ the critical range address, but just before the CPU
+ delivers a GP, it decides to deliver an interrupt
+ instead. Unlikely? Definitely. Easy to avoid?
+ Yes. (Some virtual environments get this wrong.) */
+ movl PT_CS+4(%esp), %ecx
+ andl $SEGMENT_RPL_MASK, %ecx
+ cmpl $USER_RPL, %ecx
+ je 2f
+
+ lea PT_ORIG_EAX+4(%esp), %esi
+ lea PT_EFLAGS+4(%esp), %edi
+
+ /* If eip is before iret_restore_end then stack
+ hasn't been restored yet. */
+ cmp $iret_restore_end, %eax
+ jae 1f
+
+ movl 0+4(%edi),%eax /* copy EAX */
+ movl %eax, PT_EAX+4(%esp)
+
+ lea ESP_OFFSET(%edi)...
2007 Jun 04
1
[PATCH] xen: use iret directly where possible
...jumps into
+ the critical range address, but just before the CPU
+ delivers a GP, it decides to deliver an interrupt
+ instead. Unlikely? Definitely. Easy to avoid?
+ Yes. (Some virtual environments get this wrong.) */
+ movl PT_CS+4(%esp), %ecx
+ andl $SEGMENT_RPL_MASK, %ecx
+ cmpl $USER_RPL, %ecx
+ je 2f
+
+ lea PT_ORIG_EAX+4(%esp), %esi
+ lea PT_EFLAGS+4(%esp), %edi
+
+ /* If eip is before iret_restore_end then stack
+ hasn't been restored yet. */
+ cmp $iret_restore_end, %eax
+ jae 1f
+
+ movl 0+4(%edi),%eax /* copy EAX */
+ movl %eax, PT_EAX+4(%esp)
+
+ lea ESP_OFFSET(%edi)...
2007 Jun 04
1
[PATCH] xen: use iret directly where possible
...jumps into
+ the critical range address, but just before the CPU
+ delivers a GP, it decides to deliver an interrupt
+ instead. Unlikely? Definitely. Easy to avoid?
+ Yes. (Some virtual environments get this wrong.) */
+ movl PT_CS+4(%esp), %ecx
+ andl $SEGMENT_RPL_MASK, %ecx
+ cmpl $USER_RPL, %ecx
+ je 2f
+
+ lea PT_ORIG_EAX+4(%esp), %esi
+ lea PT_EFLAGS+4(%esp), %edi
+
+ /* If eip is before iret_restore_end then stack
+ hasn't been restored yet. */
+ cmp $iret_restore_end, %eax
+ jae 1f
+
+ movl 0+4(%edi),%eax /* copy EAX */
+ movl %eax, PT_EAX+4(%esp)
+
+ lea ESP_OFFSET(%edi)...
2007 Apr 18
3
[PATCH 1/2] paravirt.h header
OK, this is the revised paravirt.h (Andi has seen this before), then the
second is the binary patching stuff. More things get added to the
paravirt struct in future patches, but this basic stuff hasn't changed
for some time.
====
This patch does the dumbest possible replacement of paravirtualized
instructions: calls through a "paravirt_ops" structure. Currently
these are function