<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">
From: Paolo 'Blaisorblade' Giarrusso &lt;blaisorblade_spam@yahoo.it&gt;

From: Paolo 'Blaisorblade' Giarrusso &lt;blaisorblade_spam@yahoo.it&gt;
      Jeff Dike &lt;jdike@addtoit.com&gt;

Since local_irq_save() and local_irq_disable() should match (apart from saving
the flags), get/set_signals must match [un]block_signals, i.e. 
change_signals; since get/set_signals don't enable/disable SIGPROF (and this
behaviour is safe as explained in the comment the patch adds, since the
profiling code does not interact with the kernel code), not even
change_signals must toggle it.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso &lt;blaisorblade_spam@yahoo.it&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
---

 25-akpm/arch/um/kernel/signal_user.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletion(-)

diff -puN arch/um/kernel/signal_user.c~uml-remove-sigprof-from-change_signals arch/um/kernel/signal_user.c
--- 25/arch/um/kernel/signal_user.c~uml-remove-sigprof-from-change_signals	2004-11-03 19:27:56.109260592 -0800
+++ 25-akpm/arch/um/kernel/signal_user.c	2004-11-03 19:27:56.113259984 -0800
@@ -57,6 +57,10 @@ int change_sig(int signal, int on)
 	return(!sigismember(&amp;old, signal));
 }
 
+/* Both here and in set/get_signal we don't touch SIGPROF, because we must not
+ * disable profiling; it's safe because the profiling code does not interact
+ * with the kernel code at all.*/
+
 static void change_signals(int type)
 {
 	sigset_t mask;
@@ -65,7 +69,6 @@ static void change_signals(int type)
 	sigaddset(&amp;mask, SIGVTALRM);
 	sigaddset(&amp;mask, SIGALRM);
 	sigaddset(&amp;mask, SIGIO);
-	sigaddset(&amp;mask, SIGPROF);
 	if(sigprocmask(type, &amp;mask, NULL) &lt; 0)
 		panic("Failed to change signal mask - errno = %d", errno);
 }
_
</pre></body></html>