[patch 3/5] openmosix/fix-mig-syscall-return.patch

Florian Delizy <[email protected]> Fri, 22 Dec 2006 23:46:43 +0100
Newsgroups gmane.linux.cluster.openmosix.devel
Message-ID <[email protected]>
Fix wrong sysret_signal in x86_64

---
arch/x86_64/kernel/entry.S | 15 +++++++++++++++
1 file changed, 15 insertions(+)

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

_______________________________________________
openMosix-devel mailing list
openMosix-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
https://lists.sourceforge.net/lists/listinfo/openmosix-devel
fix-mig-syscall-return.patch (text/x-patch, 1.1 KB)
Subject: [patch @num@/@total@] @name@

Fix wrong sysret_signal in x86_64 

---
 arch/x86_64/kernel/entry.S |   15 +++++++++++++++
 1 file changed, 15 insertions(+)


Index: linux/arch/x86_64/kernel/entry.S
===================================================================
--- linux.orig/arch/x86_64/kernel/entry.S	2006-12-19 16:59:26.000000000 +0100
+++ linux/arch/x86_64/kernel/entry.S	2006-12-22 23:43:39.000000000 +0100
@@ -162,6 +162,7 @@
 #ifdef CONFIG_OPENMOSIX
 ENTRY(ret_from_kickstart)
 	CFI_STARTPROC
+	cli
 	swapgs
 	RESTORE_ALL 8
 	iretq
@@ -288,6 +289,20 @@
 
 	/* Handle a signal */ 
 sysret_signal:
+#ifdef CONFIG_OPENMOSIX
+	/* Check if the process have pending oM requests     */
+	/* Must be after schedule() for real time sake       */
+	/* Once here, the current task struct may have moved */
+	cli
+	GET_THREAD_INFO(%rcx)
+	bt $TIF_NEED_OM_REFRESH,threadinfo_flags(%rcx)
+	jnc 1f
+	SAVE_REST
+	call openmosix_pre_usermode
+	RESTORE_REST
+	jmp sysret_check
+1:
+#endif /* CONFIG_OPENMOSIX */
 	sti
 	testl $(_TIF_SIGPENDING|_TIF_NOTIFY_RESUME|_TIF_SINGLESTEP),%edx
 	jz    1f