Page MenuHomeFreeBSD

D7975.diff
No OneTemporary

D7975.diff

Index: sys/arm/arm/trap-v6.c
===================================================================
--- sys/arm/arm/trap-v6.c
+++ sys/arm/arm/trap-v6.c
@@ -28,6 +28,7 @@
*/
#include "opt_ktrace.h"
+#include "opt_compat.h"
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
@@ -58,6 +59,10 @@
#include <machine/machdep.h>
#include <machine/pcb.h>
+#ifdef COMPAT_LINUX
+#include <arm/linux/linux.h>
+#endif
+
#ifdef KDB
#include <sys/kdb.h>
#include <machine/db_machdep.h>
@@ -501,6 +506,15 @@
abort_fatal(tf, idx, fsr, far, prefetch, td, &ksig);
return;
}
+#ifdef COMPAT_LINUX
+ else {
+ if (far == LINUX_GETTLS_HELPER) {
+ tf->tf_r0 = linux_get_tls(td);
+ tf->tf_pc = tf->tf_r14;
+ goto out;
+ }
+ }
+#endif /* COMPAT_LINUX */
ksig.sig = SIGSEGV;
ksig.code = (rv == KERN_PROTECTION_FAILURE) ? SEGV_ACCERR : SEGV_MAPERR;

File Metadata

Mime Type
text/plain
Expires
Mon, Nov 18, 2:33 AM (21 h, 34 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14688704
Default Alt Text
D7975.diff (874 B)

Event Timeline