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

Commit 9b25fcbd authored by Al Viro's avatar Al Viro Committed by Richard Weinberger
Browse files

um: switch stub_segv_handler to SA_SIGINFO variant, get rid of magic crap in there

parent adcfb985
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -255,8 +255,8 @@ static int userspace_tramp(void *stack)

		set_sigstack((void *) STUB_DATA, UM_KERN_PAGE_SIZE);
		sigemptyset(&sa.sa_mask);
		sa.sa_flags = SA_ONSTACK | SA_NODEFER;
		sa.sa_handler = (void *) v;
		sa.sa_flags = SA_ONSTACK | SA_NODEFER | SA_SIGINFO;
		sa.sa_sigaction = (void *) v;
		sa.sa_restorer = NULL;
		if (sigaction(SIGSEGV, &sa, NULL) < 0) {
			printk(UM_KERN_ERR "userspace_tramp - setting SIGSEGV "
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ endif

obj-y = bug.o bugs_$(BITS).o delay_$(BITS).o fault.o ksyms.o ldt.o \
	ptrace_$(BITS).o ptrace_user.o setjmp_$(BITS).o signal_$(BITS).o \
	stub_$(BITS).o stub_segv_$(BITS).o syscalls_$(BITS).o \
	stub_$(BITS).o stub_segv.o syscalls_$(BITS).o \
	sys_call_table_$(BITS).o sysrq_$(BITS).o tls_$(BITS).o mem_$(BITS).o

ifeq ($(CONFIG_X86_32),y)
+9 −0
Original line number Diff line number Diff line
#include <asm/unistd.h>
#include <sys/mman.h>
#include <signal.h>
#include "as-layout.h"
#include "stub-data.h"

#ifdef __i386__
#include "stub_32.h"
#else
#include "stub_64.h"
#endif

extern void stub_segv_handler(int, siginfo_t *, void *);
extern void stub_clone_handler(void);
+0 −7
Original line number Diff line number Diff line
@@ -6,14 +6,7 @@
#ifndef __SYSDEP_STUB_H
#define __SYSDEP_STUB_H

#include <sys/mman.h>
#include <asm/ptrace.h>
#include <asm/unistd.h>
#include "as-layout.h"
#include "stub-data.h"

extern void stub_segv_handler(int sig);
extern void stub_clone_handler(void);

#define STUB_SYSCALL_RET EAX
#define STUB_MMAP_NR __NR_mmap2
+0 −7
Original line number Diff line number Diff line
@@ -6,14 +6,7 @@
#ifndef __SYSDEP_STUB_H
#define __SYSDEP_STUB_H

#include <sys/mman.h>
#include <asm/unistd.h>
#include <sysdep/ptrace_user.h>
#include "as-layout.h"
#include "stub-data.h"

extern void stub_segv_handler(int sig);
extern void stub_clone_handler(void);

#define STUB_SYSCALL_RET PT_INDEX(RAX)
#define STUB_MMAP_NR __NR_mmap
Loading