Zachary Amsden
f2f30ebca6
[PATCH] x86: introduce a write acessor for updating the current LDT
Introduce a write acessor for updating the current LDT. This is required
for hypervisors like Xen that do not allow LDT pages to be directly
written.
Testing - here's a fun little LDT test that can be trivially modified to
test limits as well.
/*
* Copyright (c) 2005, Zachary Amsden (zach@vmware.com)
* This is licensed under the GPL.
*/
#include <stdio.h>
#include <signal.h>
#include <asm/ldt.h>
#include <asm/segment.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/mman.h>
#define __KERNEL__
#include <asm/page.h>
void main(void)
{
struct user_desc desc;
char *code;
unsigned long long tsc;
code = (char *)mmap(0, 8192, PROT_EXEC|PROT_READ|PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
desc.entry_number = 0;
desc.base_addr = code;
desc.limit = 1;
desc.seg_32bit = 1;
desc.contents = MODIFY_LDT_CONTENTS_CODE;
desc.read_exec_only = 0;
desc.limit_in_pages = 1;
desc.seg_not_present = 0;
desc.useable = 1;
if (modify_ldt(1, &desc, sizeof(desc)) != 0) {
perror("modify_ldt");
}
printf("code base is 0x%08x\n", (unsigned)code);
code[0x0ffe] = 0x0f; /* rdtsc */
code[0x0fff] = 0x31;
code[0x1000] = 0xcb; /* lret */
__asm__ __volatile("lcall $7,$0xffe" : "=A" (tsc));
printf("TSC is 0x%016llx\n", tsc);
}
Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
2005-09-05 00:06:13 -07:00 |
| .. |
|
acpi
|
/home/lenb/src/to-linus branch 'acpi-2.6.12'
|
2005-07-29 23:31:17 -04:00 |
|
asm-alpha
|
[PATCH] sab: consolidate kmem_bufctl_t
|
2005-09-05 00:05:48 -07:00 |
|
asm-arm
|
[PATCH] sab: consolidate kmem_bufctl_t
|
2005-09-05 00:05:48 -07:00 |
|
asm-arm26
|
[PATCH] sab: consolidate kmem_bufctl_t
|
2005-09-05 00:05:48 -07:00 |
|
asm-cris
|
[PATCH] sab: consolidate kmem_bufctl_t
|
2005-09-05 00:05:48 -07:00 |
|
asm-frv
|
[PATCH] sab: consolidate kmem_bufctl_t
|
2005-09-05 00:05:48 -07:00 |
|
asm-generic
|
[PATCH] x86: ptep_clear optimization
|
2005-09-05 00:05:48 -07:00 |
|
asm-h8300
|
[PATCH] sab: consolidate kmem_bufctl_t
|
2005-09-05 00:05:48 -07:00 |
|
asm-i386
|
[PATCH] x86: introduce a write acessor for updating the current LDT
|
2005-09-05 00:06:13 -07:00 |
|
asm-ia64
|
[PATCH] sab: consolidate kmem_bufctl_t
|
2005-09-05 00:05:48 -07:00 |
|
asm-m32r
|
[PATCH] sab: consolidate kmem_bufctl_t
|
2005-09-05 00:05:48 -07:00 |
|
asm-m68k
|
[PATCH] sab: consolidate kmem_bufctl_t
|
2005-09-05 00:05:48 -07:00 |
|
asm-m68knommu
|
[PATCH] mm: consolidate get_order
|
2005-09-05 00:05:39 -07:00 |
|
asm-mips
|
[PATCH] mips: remove timex.h for vr41xx
|
2005-09-05 00:06:08 -07:00 |
|
asm-parisc
|
[PATCH] sab: consolidate kmem_bufctl_t
|
2005-09-05 00:05:48 -07:00 |
|
asm-powerpc
|
[PATCH] Move all the very similar files to asm-powerpc
|
2005-08-30 13:32:06 +10:00 |
|
asm-ppc
|
[PATCH] ppc32: mv64x60 updates & enhancements
|
2005-09-05 00:06:00 -07:00 |
|
asm-ppc64
|
[PATCH] ppc64: Add VMX save flag to VPA
|
2005-09-05 00:06:01 -07:00 |
|
asm-s390
|
[PATCH] sab: consolidate kmem_bufctl_t
|
2005-09-05 00:05:48 -07:00 |
|
asm-sh
|
[PATCH] sab: consolidate kmem_bufctl_t
|
2005-09-05 00:05:48 -07:00 |
|
asm-sh64
|
[PATCH] sab: consolidate kmem_bufctl_t
|
2005-09-05 00:05:48 -07:00 |
|
asm-sparc
|
[PATCH] sab: consolidate kmem_bufctl_t
|
2005-09-05 00:05:48 -07:00 |
|
asm-sparc64
|
[PATCH] sab: consolidate kmem_bufctl_t
|
2005-09-05 00:05:48 -07:00 |
|
asm-um
|
[PATCH] mm: correct _PAGE_FILE comment
|
2005-09-05 00:05:45 -07:00 |
|
asm-v850
|
[PATCH] sab: consolidate kmem_bufctl_t
|
2005-09-05 00:05:48 -07:00 |
|
asm-x86_64
|
[PATCH] i386: cleanup serialize msr
|
2005-09-05 00:06:11 -07:00 |
|
asm-xtensa
|
[PATCH] sab: consolidate kmem_bufctl_t
|
2005-09-05 00:05:48 -07:00 |
|
linux
|
[PATCH] x86: fix EFI memory map parsing
|
2005-09-05 00:06:09 -07:00 |
|
math-emu
|
|
|
|
media
|
[PATCH] V4L: Miscellaneous fixes
|
2005-08-01 19:13:59 -07:00 |
|
mtd
|
|
|
|
net
|
/spare/repo/netdev-2.6 branch 'master'
|
2005-09-01 18:02:01 -04:00 |
|
pcmcia
|
[PATCH] pcmcia: fix pcmcia-cs compilation
|
2005-07-12 16:00:59 -07:00 |
|
rdma
|
[PATCH] IB: move include files to include/rdma
|
2005-08-26 20:37:38 -07:00 |
|
rxrpc
|
|
|
|
scsi
|
[SCSI] fix target scanning oops with fc transport class
|
2005-08-08 17:14:55 -05:00 |
|
sound
|
[ALSA] version 1.0.10rc1
|
2005-08-30 08:48:35 +02:00 |
|
video
|
[PATCH] DEC PMAGB B framebuffer update
|
2005-09-05 00:06:03 -07:00 |