]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
um: export signals_enabled directly
authorJohannes Berg <johannes.berg@intel.com>
Fri, 5 Mar 2021 12:19:54 +0000 (13:19 +0100)
committerRichard Weinberger <richard@nod.at>
Thu, 17 Jun 2021 19:44:51 +0000 (21:44 +0200)
Use signals_enabled instead of always jumping through
a function call to read it, there's not much point in
that.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
arch/um/include/asm/irqflags.h
arch/um/include/shared/longjmp.h
arch/um/include/shared/os.h
arch/um/kernel/ksyms.c
arch/um/os-Linux/signal.c

index 0642ad9035d14bf34c672eb2f4850ca7807cc5ed..dab5744e9253da95b017a06c4ab4f82fc5e76979 100644 (file)
@@ -2,15 +2,15 @@
 #ifndef __UM_IRQFLAGS_H
 #define __UM_IRQFLAGS_H
 
-extern int get_signals(void);
-extern int set_signals(int enable);
-extern void block_signals(void);
-extern void unblock_signals(void);
+extern int signals_enabled;
+int set_signals(int enable);
+void block_signals(void);
+void unblock_signals(void);
 
 #define arch_local_save_flags arch_local_save_flags
 static inline unsigned long arch_local_save_flags(void)
 {
-       return get_signals();
+       return signals_enabled;
 }
 
 #define arch_local_irq_restore arch_local_irq_restore
index 85a1cc290ecb93a5dcd4d4f4e037992f697121d5..bdb2869b72b318b62091856b7f39a3bc1c2f4769 100644 (file)
@@ -5,6 +5,7 @@
 #include <sysdep/archsetjmp.h>
 #include <os.h>
 
+extern int signals_enabled;
 extern int setjmp(jmp_buf);
 extern void longjmp(jmp_buf, int);
 
@@ -12,13 +13,12 @@ extern void longjmp(jmp_buf, int);
        longjmp(*buf, val);     \
 } while(0)
 
-#define UML_SETJMP(buf) ({ \
-       int n;     \
-       volatile int enable;    \
-       enable = get_signals(); \
-       n = setjmp(*buf); \
-       if(n != 0) \
-               set_signals_trace(enable); \
+#define UML_SETJMP(buf) ({                             \
+       int n, enable;                                  \
+       enable = *(volatile int *)&signals_enabled;     \
+       n = setjmp(*buf);                               \
+       if(n != 0)                                      \
+               set_signals_trace(enable);              \
        n; })
 
 #endif
index 13d86f94cf0fba5c20d51d10b9ed040786d0c4d5..f9fbbddc38bb6b2fb97ff6c97bdd9ee355b66bf3 100644 (file)
@@ -237,7 +237,6 @@ extern void send_sigio_to_self(void);
 extern int change_sig(int signal, int on);
 extern void block_signals(void);
 extern void unblock_signals(void);
-extern int get_signals(void);
 extern int set_signals(int enable);
 extern int set_signals_trace(int enable);
 extern int os_is_signal_stack(void);
index 8ade54a86a7ef5896b3ae3c3f5718ecd9d0286fb..b1e5634398d094ae88bbda35a76861106deecb37 100644 (file)
@@ -7,7 +7,7 @@
 #include <os.h>
 
 EXPORT_SYMBOL(set_signals);
-EXPORT_SYMBOL(get_signals);
+EXPORT_SYMBOL(signals_enabled);
 
 EXPORT_SYMBOL(os_stat_fd);
 EXPORT_SYMBOL(os_stat_file);
index 96f511d1aabe6c0a42de6260a9c5e07cf820891c..8c9d162e6c517eb910d73b456149e48d4c493291 100644 (file)
@@ -62,7 +62,7 @@ static void sig_handler_common(int sig, struct siginfo *si, mcontext_t *mc)
 #define SIGALRM_BIT 1
 #define SIGALRM_MASK (1 << SIGALRM_BIT)
 
-static int signals_enabled;
+int signals_enabled;
 static unsigned int signals_pending;
 static unsigned int signals_active = 0;
 
@@ -334,11 +334,6 @@ void unblock_signals(void)
        }
 }
 
-int get_signals(void)
-{
-       return signals_enabled;
-}
-
 int set_signals(int enable)
 {
        int ret;