Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d5e4cc8f authored by Russell King's avatar Russell King
Browse files

Merge commit 'v3.6' into fixes

parents 7253b85c a0d271cb
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
VERSION = 3
PATCHLEVEL = 6
SUBLEVEL = 0
EXTRAVERSION = -rc7
EXTRAVERSION =
NAME = Terrified Chipmunk

# *DOCUMENTATION*
+0 −9
Original line number Diff line number Diff line
@@ -20,14 +20,6 @@ struct mm_struct;

struct thread_struct {
	struct task_struct *saved_task;
	/*
	 * This flag is set to 1 before calling do_fork (and analyzed in
	 * copy_thread) to mark that we are begin called from userspace (fork /
	 * vfork / clone), and reset to 0 after. It is left to 0 when called
	 * from kernelspace (i.e. kernel_thread() or fork_idle(),
	 * as of 2.6.11).
	 */
	int forking;
	struct pt_regs regs;
	int singlestep_syscall;
	void *fault_addr;
@@ -58,7 +50,6 @@ struct thread_struct {

#define INIT_THREAD \
{ \
	.forking		= 0, \
	.regs		   	= EMPTY_REGS,	\
	.fault_addr		= NULL, \
	.prev_sched		= NULL, \
+0 −10
Original line number Diff line number Diff line
@@ -7,16 +7,6 @@ DEFINE(UM_KERN_PAGE_MASK, PAGE_MASK);
DEFINE(UM_KERN_PAGE_SHIFT, PAGE_SHIFT);
DEFINE(UM_NSEC_PER_SEC, NSEC_PER_SEC);

DEFINE_STR(UM_KERN_EMERG, KERN_EMERG);
DEFINE_STR(UM_KERN_ALERT, KERN_ALERT);
DEFINE_STR(UM_KERN_CRIT, KERN_CRIT);
DEFINE_STR(UM_KERN_ERR, KERN_ERR);
DEFINE_STR(UM_KERN_WARNING, KERN_WARNING);
DEFINE_STR(UM_KERN_NOTICE, KERN_NOTICE);
DEFINE_STR(UM_KERN_INFO, KERN_INFO);
DEFINE_STR(UM_KERN_DEBUG, KERN_DEBUG);
DEFINE_STR(UM_KERN_CONT, KERN_CONT);

DEFINE(UM_ELF_CLASS, ELF_CLASS);
DEFINE(UM_ELFCLASS32, ELFCLASS32);
DEFINE(UM_ELFCLASS64, ELFCLASS64);
+11 −0
Original line number Diff line number Diff line
@@ -26,6 +26,17 @@
extern void panic(const char *fmt, ...)
	__attribute__ ((format (printf, 1, 2)));

/* Requires preincluding include/linux/kern_levels.h */
#define UM_KERN_EMERG	KERN_EMERG
#define UM_KERN_ALERT	KERN_ALERT
#define UM_KERN_CRIT	KERN_CRIT
#define UM_KERN_ERR	KERN_ERR
#define UM_KERN_WARNING	KERN_WARNING
#define UM_KERN_NOTICE	KERN_NOTICE
#define UM_KERN_INFO	KERN_INFO
#define UM_KERN_DEBUG	KERN_DEBUG
#define UM_KERN_CONT	KERN_CONT

#ifdef UML_CONFIG_PRINTK
extern int printk(const char *fmt, ...)
	__attribute__ ((format (printf, 1, 2)));
+6 −19
Original line number Diff line number Diff line
@@ -39,34 +39,21 @@ void flush_thread(void)

void start_thread(struct pt_regs *regs, unsigned long eip, unsigned long esp)
{
	get_safe_registers(regs->regs.gp, regs->regs.fp);
	PT_REGS_IP(regs) = eip;
	PT_REGS_SP(regs) = esp;
}
EXPORT_SYMBOL(start_thread);

static long execve1(const char *file,
		    const char __user *const __user *argv,
		    const char __user *const __user *env)
{
	long error;

	error = do_execve(file, argv, env, &current->thread.regs);
	if (error == 0) {
		task_lock(current);
	current->ptrace &= ~PT_DTRACE;
#ifdef SUBARCH_EXECVE1
		SUBARCH_EXECVE1(&current->thread.regs.regs);
	SUBARCH_EXECVE1(regs->regs);
#endif
		task_unlock(current);
	}
	return error;
}
EXPORT_SYMBOL(start_thread);

long um_execve(const char *file, const char __user *const __user *argv, const char __user *const __user *env)
{
	long err;

	err = execve1(file, argv, env);
	err = do_execve(file, argv, env, &current->thread.regs);
	if (!err)
		UML_LONGJMP(current->thread.exec_buf, 1);
	return err;
@@ -81,7 +68,7 @@ long sys_execve(const char __user *file, const char __user *const __user *argv,
	filename = getname(file);
	error = PTR_ERR(filename);
	if (IS_ERR(filename)) goto out;
	error = execve1(filename, argv, env);
	error = do_execve(filename, argv, env, &current->thread.regs);
	putname(filename);
 out:
	return error;
Loading