uml: throw out CONFIG_MODE_TT
This patchset throws out tt mode, which has been non-functional for a while. This is done in phases, interspersed with code cleanups on the affected files. The removal is done as follows: remove all code, config options, and files which depend on CONFIG_MODE_TT get rid of the CHOOSE_MODE macro, which decided whether to call tt-mode or skas-mode code, and replace invocations with their skas portions replace all now-trivial procedures with their skas equivalents There are now a bunch of now-redundant pieces of data structures, including mode-specific pieces of the thread structure, pt_regs, and mm_context. These are all replaced with their skas-specific contents. As part of the ongoing style compliance project, I made a style pass over all files that were changed. There are three such patches, one for each phase, covering the files affected by that phase but no later ones. I noticed that we weren't freeing the LDT state associated with a process when it exited, so that's fixed in one of the later patches. The last patch is a tidying patch which I've had for a while, but which caused inexplicable crashes under tt mode. Since that is no longer a problem, this can now go in. This patch: Start getting rid of tt mode support. This patch throws out CONFIG_MODE_TT and all config options, code, and files which depend on it. CONFIG_MODE_SKAS is gone and everything that depends on it is included unconditionally. The few changed lines are in re-written Kconfig help, lines which needed something skas-related removed from them, and a few more which weren't strictly deletions. Signed-off-by: Jeff Dike <jdike@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
a1ff5878d2
commit
42fda66387
@@ -19,72 +19,6 @@
|
||||
|
||||
extern int modify_ldt(int func, void *ptr, unsigned long bytecount);
|
||||
|
||||
#ifdef CONFIG_MODE_TT
|
||||
|
||||
static long do_modify_ldt_tt(int func, void __user *ptr,
|
||||
unsigned long bytecount)
|
||||
{
|
||||
struct user_desc info;
|
||||
int res = 0;
|
||||
void *buf = NULL;
|
||||
void *p = NULL; /* What we pass to host. */
|
||||
|
||||
switch(func){
|
||||
case 1:
|
||||
case 0x11: /* write_ldt */
|
||||
/* Do this check now to avoid overflows. */
|
||||
if (bytecount != sizeof(struct user_desc)) {
|
||||
res = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if(copy_from_user(&info, ptr, sizeof(info))) {
|
||||
res = -EFAULT;
|
||||
goto out;
|
||||
}
|
||||
|
||||
p = &info;
|
||||
break;
|
||||
case 0:
|
||||
case 2: /* read_ldt */
|
||||
|
||||
/* The use of info avoids kmalloc on the write case, not on the
|
||||
* read one. */
|
||||
buf = kmalloc(bytecount, GFP_KERNEL);
|
||||
if (!buf) {
|
||||
res = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
p = buf;
|
||||
break;
|
||||
default:
|
||||
res = -ENOSYS;
|
||||
goto out;
|
||||
}
|
||||
|
||||
res = modify_ldt(func, p, bytecount);
|
||||
if(res < 0)
|
||||
goto out;
|
||||
|
||||
switch(func){
|
||||
case 0:
|
||||
case 2:
|
||||
/* Modify_ldt was for reading and returned the number of read
|
||||
* bytes.*/
|
||||
if(copy_to_user(ptr, p, res))
|
||||
res = -EFAULT;
|
||||
break;
|
||||
}
|
||||
|
||||
out:
|
||||
kfree(buf);
|
||||
return res;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MODE_SKAS
|
||||
|
||||
#include "skas.h"
|
||||
#include "skas_ptrace.h"
|
||||
#include "asm/mmu_context.h"
|
||||
@@ -569,7 +503,6 @@ void free_ldt(struct mmu_context_skas * mm)
|
||||
}
|
||||
mm->ldt.entry_count = 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
int sys_modify_ldt(int func, void __user *ptr, unsigned long bytecount)
|
||||
{
|
||||
|
Reference in New Issue
Block a user