aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um/include
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2019-08-23 07:16:23 -0400
committerRichard Weinberger <richard@nod.at>2019-09-15 15:37:11 -0400
commit0dafcbe128d2af48919619f79332ef219b5e5514 (patch)
tree2f95274135b2485bb13dea1dcbe6d86c31b206e7 /arch/um/include
parent276d75c4aff3ade04f0f78769dd895a78f03edd9 (diff)
um: Implement TRACE_IRQFLAGS_SUPPORT
UML enables TRACE_IRQFLAGS_SUPPORT but doesn't actually implement it. It seems to have been added for lockdep support, but that can't actually really work well without IRQ flags tracing, as is also very noisily reported when enabling CONFIG_DEBUG_LOCKDEP. Implement it now. Fixes: 711553efa5b8 ("[PATCH] uml: declare in Kconfig our partial LOCKDEP support") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'arch/um/include')
-rw-r--r--arch/um/include/shared/longjmp.h2
-rw-r--r--arch/um/include/shared/os.h7
2 files changed, 8 insertions, 1 deletions
diff --git a/arch/um/include/shared/longjmp.h b/arch/um/include/shared/longjmp.h
index b3315c1f198b..85a1cc290ecb 100644
--- a/arch/um/include/shared/longjmp.h
+++ b/arch/um/include/shared/longjmp.h
@@ -18,7 +18,7 @@ extern void longjmp(jmp_buf, int);
18 enable = get_signals(); \ 18 enable = get_signals(); \
19 n = setjmp(*buf); \ 19 n = setjmp(*buf); \
20 if(n != 0) \ 20 if(n != 0) \
21 set_signals(enable); \ 21 set_signals_trace(enable); \
22 n; }) 22 n; })
23 23
24#endif 24#endif
diff --git a/arch/um/include/shared/os.h b/arch/um/include/shared/os.h
index 4a62ac4251a5..fa1909365666 100644
--- a/arch/um/include/shared/os.h
+++ b/arch/um/include/shared/os.h
@@ -232,6 +232,7 @@ extern void block_signals(void);
232extern void unblock_signals(void); 232extern void unblock_signals(void);
233extern int get_signals(void); 233extern int get_signals(void);
234extern int set_signals(int enable); 234extern int set_signals(int enable);
235extern int set_signals_trace(int enable);
235extern int os_is_signal_stack(void); 236extern int os_is_signal_stack(void);
236extern void deliver_alarm(void); 237extern void deliver_alarm(void);
237 238
@@ -317,4 +318,10 @@ extern unsigned long os_get_top_address(void);
317 318
318long syscall(long number, ...); 319long syscall(long number, ...);
319 320
321/* irqflags tracing */
322extern void block_signals_trace(void);
323extern void unblock_signals_trace(void);
324extern void um_trace_signals_on(void);
325extern void um_trace_signals_off(void);
326
320#endif 327#endif