uml: throw out CHOOSE_MODE
The next stage after removing code which depends on CONFIG_MODE_TT is removing the CHOOSE_MODE abstraction, which provided both compile-time and run-time branching to either tt-mode or skas-mode code. This patch removes choose-mode.h and all inclusions of it, and replaces all CHOOSE_MODE invocations with the skas branch. This leaves a number of trivial functions which will be dealt with in a later patch. There are some changes in the uaccess and tls support which go somewhat beyond this and eliminate some of the now-redundant functions. 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
4c9e138513
commit
6aa802ce6a
@@ -320,11 +320,6 @@ static int init_aio(void)
|
||||
{
|
||||
int err;
|
||||
|
||||
CHOOSE_MODE(({ if(!aio_24){
|
||||
printk("Disabling 2.6 AIO in tt mode\n");
|
||||
aio_24 = 1;
|
||||
} }), (void) 0);
|
||||
|
||||
if(!aio_24){
|
||||
err = init_aio_26();
|
||||
if(err && (errno == ENOSYS)){
|
||||
|
@@ -19,7 +19,6 @@
|
||||
#include "user.h"
|
||||
#include "init.h"
|
||||
#include "mode.h"
|
||||
#include "choose-mode.h"
|
||||
#include "uml-config.h"
|
||||
#include "os.h"
|
||||
#include "um_malloc.h"
|
||||
@@ -189,16 +188,13 @@ int __init main(int argc, char **argv, char **envp)
|
||||
return uml_exitcode;
|
||||
}
|
||||
|
||||
#define CAN_KMALLOC() \
|
||||
(kmalloc_ok && CHOOSE_MODE((os_getpid() != tracing_pid), 1))
|
||||
|
||||
extern void *__real_malloc(int);
|
||||
|
||||
void *__wrap_malloc(int size)
|
||||
{
|
||||
void *ret;
|
||||
|
||||
if(!CAN_KMALLOC())
|
||||
if(!kmalloc_ok)
|
||||
return __real_malloc(size);
|
||||
else if(size <= UM_KERN_PAGE_SIZE)
|
||||
/* finding contiguous pages can be hard*/
|
||||
@@ -251,11 +247,11 @@ void __wrap_free(void *ptr)
|
||||
*/
|
||||
|
||||
if((addr >= uml_physmem) && (addr < high_physmem)){
|
||||
if(CAN_KMALLOC())
|
||||
if(kmalloc_ok)
|
||||
kfree(ptr);
|
||||
}
|
||||
else if((addr >= start_vm) && (addr < end_vm)){
|
||||
if(CAN_KMALLOC())
|
||||
if(kmalloc_ok)
|
||||
vfree(ptr);
|
||||
}
|
||||
else __real_free(ptr);
|
||||
|
@@ -53,8 +53,7 @@ void sig_handler(int sig, struct sigcontext *sc)
|
||||
|
||||
block_signals();
|
||||
|
||||
CHOOSE_MODE_PROC(sig_handler_common_tt, sig_handler_common_skas,
|
||||
sig, sc);
|
||||
sig_handler_common_skas(sig, sc);
|
||||
|
||||
set_signals(enabled);
|
||||
}
|
||||
@@ -257,8 +256,7 @@ void unblock_signals(void)
|
||||
* back here.
|
||||
*/
|
||||
if(save_pending & SIGIO_MASK)
|
||||
CHOOSE_MODE_PROC(sig_handler_common_tt,
|
||||
sig_handler_common_skas, SIGIO, NULL);
|
||||
sig_handler_common_skas(SIGIO, NULL);
|
||||
|
||||
if(save_pending & SIGALRM_MASK)
|
||||
real_alarm_handler(SIGALRM, NULL);
|
||||
|
@@ -31,7 +31,6 @@
|
||||
#include "init.h"
|
||||
#include "os.h"
|
||||
#include "uml-config.h"
|
||||
#include "choose-mode.h"
|
||||
#include "mode.h"
|
||||
#include "tempfile.h"
|
||||
#include "kern_constants.h"
|
||||
|
@@ -12,7 +12,6 @@
|
||||
|
||||
void usr2_handler(int sig, union uml_pt_regs *regs)
|
||||
{
|
||||
CHOOSE_MODE(syscall_handler_tt(sig, regs), (void) 0);
|
||||
}
|
||||
|
||||
/* Initialized from linux_main() */
|
||||
|
Reference in New Issue
Block a user