Displaying 20 results from an estimated 5000 matches similar to: "[PATCH 15/21] i386 Deprecate useless bug"
2007 Apr 18
1
[PATCH 2/6] i386 virtualization - Remove some dead debugging code
* zach@vmware.com (zach@vmware.com) wrote:
> This code is quite dead. Release_thread is always guaranteed that the mm has
> already been released, thus dead_task->mm will always be NULL.
>
> Signed-off-by: Zachary Amsden <zach@vmware.com>
> Index: linux-2.6.13/arch/i386/kernel/process.c
> ===================================================================
> ---
2007 Apr 18
1
[PATCH 2/6] i386 virtualization - Remove some dead debugging code
* zach@vmware.com (zach@vmware.com) wrote:
> This code is quite dead. Release_thread is always guaranteed that the mm has
> already been released, thus dead_task->mm will always be NULL.
>
> Signed-off-by: Zachary Amsden <zach@vmware.com>
> Index: linux-2.6.13/arch/i386/kernel/process.c
> ===================================================================
> ---
2007 Apr 18
0
[PATCH 9/21] i386 Deprecate obsolete ldt accessors
Old accessors to fetch LDT descriptors are unused and outdated and in
the wrong header file.
Signed-off-by: Zachary Amsden <zach@vmware.com>
Index: linux-2.6.14-zach-work/include/asm-i386/system.h
===================================================================
--- linux-2.6.14-zach-work.orig/include/asm-i386/system.h 2005-11-04 17:45:04.000000000 -0800
+++
2007 Apr 18
0
[PATCH 9/21] i386 Deprecate obsolete ldt accessors
Old accessors to fetch LDT descriptors are unused and outdated and in
the wrong header file.
Signed-off-by: Zachary Amsden <zach@vmware.com>
Index: linux-2.6.14-zach-work/include/asm-i386/system.h
===================================================================
--- linux-2.6.14-zach-work.orig/include/asm-i386/system.h 2005-11-04 17:45:04.000000000 -0800
+++
2007 Apr 18
3
[PATCH 12/21] i386 Deprecate descriptor asm
Ancient inline assembler that manipulates descriptor tables is unreadable
and has no type checking. Doing this in C actually generates better code,
saves code space, and improves readability.
The fact that you must cast descriptors to (char *) for the inline assembler
to work properly caused me no end of grief working on these patches.
Note that GCC does not generate rotations to utilize
2007 Apr 18
3
[PATCH 12/21] i386 Deprecate descriptor asm
Ancient inline assembler that manipulates descriptor tables is unreadable
and has no type checking. Doing this in C actually generates better code,
saves code space, and improves readability.
The fact that you must cast descriptors to (char *) for the inline assembler
to work properly caused me no end of grief working on these patches.
Note that GCC does not generate rotations to utilize
2007 Apr 18
0
[PATCH 17/21] i386 Ldt cleanups 1
Big cleanup of LDT code. This code has very little type checking and is
not frequently used, so I audited the code, added type checking and size
optimizations to generate smaller assembly code.
First, just introduce some small definitions that will be used later.
Signed-off-by: Zachary Amsden <zach@vmware.com>
Index: linux-2.6.14-zach-work/arch/i386/kernel/entry.S
2007 Apr 18
0
[PATCH 17/21] i386 Ldt cleanups 1
Big cleanup of LDT code. This code has very little type checking and is
not frequently used, so I audited the code, added type checking and size
optimizations to generate smaller assembly code.
First, just introduce some small definitions that will be used later.
Signed-off-by: Zachary Amsden <zach@vmware.com>
Index: linux-2.6.14-zach-work/arch/i386/kernel/entry.S
2007 Apr 18
0
[PATCH 8/21] i386 Segment protect properly
It is impossible to have a zero length segment in descriptor tables using
"normal" segments. One of many ways to properly protect segments to zero
length is to map the base to an umapped page. Create a nicer way to do
this, and stop subtracting 1 from the length passed to set_limit (note
calling set limit with a zero limit does something very bad! - not anymore).
Signed-off-by:
2007 Apr 18
0
[PATCH 8/21] i386 Segment protect properly
It is impossible to have a zero length segment in descriptor tables using
"normal" segments. One of many ways to properly protect segments to zero
length is to map the base to an umapped page. Create a nicer way to do
this, and stop subtracting 1 from the length passed to set_limit (note
calling set limit with a zero limit does something very bad! - not anymore).
Signed-off-by:
2007 Apr 18
2
[PATCH 21/21] i386 Ldt context inline
I was also able to get the LDT switching functionality out of the
critical path in switch_mm, which reduces the number of function calls,
potential TLB misses and code size.
Signed-off-by: Zachary Amsden <zach@vmware.com>
Index: linux-2.6.14-zach-work/include/asm-i386/desc.h
===================================================================
---
2007 Apr 18
2
[PATCH 21/21] i386 Ldt context inline
I was also able to get the LDT switching functionality out of the
critical path in switch_mm, which reduces the number of function calls,
potential TLB misses and code size.
Signed-off-by: Zachary Amsden <zach@vmware.com>
Index: linux-2.6.14-zach-work/include/asm-i386/desc.h
===================================================================
---
2007 Apr 18
0
[PATCH 20/21] i386 Ldt cleanups 3
Big cleanup of LDT code. This code has very little type checking and is
not frequently used, so I audited the code, added type checking and size
optimizations to generate smaller assembly code. I changed the ldt count
to be in pages, and converted the char * ldt into a desc_struct.
Signed-off-by: Zachary Amsden <zach@vmware.com>
Index: linux-2.6.14-zach-work/arch/i386/kernel/ldt.c
2007 Apr 18
0
[PATCH 20/21] i386 Ldt cleanups 3
Big cleanup of LDT code. This code has very little type checking and is
not frequently used, so I audited the code, added type checking and size
optimizations to generate smaller assembly code. I changed the ldt count
to be in pages, and converted the char * ldt into a desc_struct.
Signed-off-by: Zachary Amsden <zach@vmware.com>
Index: linux-2.6.14-zach-work/arch/i386/kernel/ldt.c
2007 Apr 18
0
[PATCH 5/21] i386 Pnp byte granularity
The one remaining caller of set_limit, the PnP BIOS code, calls into the PnP
BIOS, passing kernel parameters in and out. These parameteres may be passed
from arbitrary kernel virtual memory, so they deserve strict protection to
stop a bad BIOS from smashing beyond the object size.
Unfortunately, the use of set_limit was badly botching this by setting
the limit in terms of pages, when it really
2007 Apr 18
0
[PATCH 5/21] i386 Pnp byte granularity
The one remaining caller of set_limit, the PnP BIOS code, calls into the PnP
BIOS, passing kernel parameters in and out. These parameteres may be passed
from arbitrary kernel virtual memory, so they deserve strict protection to
stop a bad BIOS from smashing beyond the object size.
Unfortunately, the use of set_limit was badly botching this by setting
the limit in terms of pages, when it really
2007 Apr 18
2
[PATCH 19/21] i386 Kprobes semaphore fix
IA-32 linear address translation is loads of fun.
While cleaning up the LDT code, I noticed that kprobes code was very bogus
with respect to segment handling. Many, many bugs are fixed here. I chose
to combine the three separate functions that try to do linear address
conversion into one, nice and working functions. All of the versions had
bugs.
1) Taking an int3 from v8086 mode could cause
2007 Apr 18
2
[PATCH 19/21] i386 Kprobes semaphore fix
IA-32 linear address translation is loads of fun.
While cleaning up the LDT code, I noticed that kprobes code was very bogus
with respect to segment handling. Many, many bugs are fixed here. I chose
to combine the three separate functions that try to do linear address
conversion into one, nice and working functions. All of the versions had
bugs.
1) Taking an int3 from v8086 mode could cause
2007 Apr 18
0
[PATCH 18/21] i386 Ldt cleanups 2
Add an acessor function to get a pointer to an LDT descriptor. Add one for
the GDT too, while we are here, and a function to tell the difference.
Turns out on some GCC versions, converting to char * and back gives better
code output than gdt[seg >> 3]. Lets keep that trick in the header file
so the C-code can be clean.
Not used yet, but soon.
Signed-off-by: Zachary Amsden
2007 Apr 18
0
[PATCH 18/21] i386 Ldt cleanups 2
Add an acessor function to get a pointer to an LDT descriptor. Add one for
the GDT too, while we are here, and a function to tell the difference.
Turns out on some GCC versions, converting to char * and back gives better
code output than gdt[seg >> 3]. Lets keep that trick in the header file
so the C-code can be clean.
Not used yet, but soon.
Signed-off-by: Zachary Amsden