On Wed, Mar 08, 2017 at 05:24:53PM -0800, Thomas Garnier wrote:
quoted hunk ↗ jump to hunk
@@ -191,6 +191,22 @@ extern struct trace_event_functions exit_syscall_print_funcs;
SYSCALL_METADATA(sname, x, __VA_ARGS__) \
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
+asmlinkage void verify_pre_usermode_state(void);
+
+#ifndef CONFIG_ARCH_NO_SYSCALL_VERIFY_PRE_USERMODE_STATE
+static inline bool has_user_ds(void) {
+ bool ret = segment_eq(get_fs(), USER_DS);
+ // Prevent re-ordering the call
This is not the kernel comments style. Use /* */ instead.
+ barrier();
+ return ret;
+}
+#else
+static inline bool has_user_ds(void) {
+ return false;
+}
+#endif
... and then you could slim down the ifdeffery a bit:
static inline bool has_user_ds(void) {
bool ret = false;
#ifndef CONFIG_ARCH_NO_SYSCALL_VERIFY_PRE_USERMODE_STATE
ret = segment_eq(get_fs(), USER_DS);
/* Prevent re-ordering the call. */
barrier();
#endif
return ret;
}
--
Regards/Gruss,
Boris.
Good mailing practices for 400: avoid top-posting and trim the reply.