This is an experimental patch to put kmod in Ring 3, rather than Ring 0.
Here it is, below the dashed lines:

---------------------------------------------------------------------------------------------------------------------------

Signed-off-by: Christopher P. Sacchi <christophersac...@gmail.com>

--- kmod.old    2015-04-12 18:12:50.000000000 -0400
+++ kmod.c    2015-04-25 17:52:47.629844677 -0400
@@ -43,6 +43,14 @@

 #include <trace/events/module.h>

+#ifdef CONFIG_X64
+asm("sysret");
+#endif
+
+#ifndef CONFIG_X64
+asm("sysexit");
+#endif
+
 extern int max_threads;

 static struct workqueue_struct *khelper_wq;
@@ -692,3 +700,11 @@ void __init usermodehelper_init(void)
     khelper_wq = create_singlethread_workqueue("khelper");
     BUG_ON(!khelper_wq);
 }
+
+#ifdef CONFIG_X64
+asm("syscall");
+#endif
+
+#ifndef CONFIG_X64
+asm("sysenter");
+#endif

---------------------------------------------------------------------------------------------------------------------------

Regards,
Christopher P. Sacchi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to