27 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 974a769cc135bcfb1ea751db34a84ed6b5ceb509 Mon Sep 17 00:00:00 2001
 | 
						|
From: Haavard Skinnemoen <hskinnemoen@atmel.com>
 | 
						|
Date: Fri, 7 Dec 2007 14:02:19 +0100
 | 
						|
Subject: [PATCH] AVR32: Fix sa_restorer when SA_ONSTACK is set
 | 
						|
 | 
						|
I don't remember exactly why we decided to pick the caller's value of
 | 
						|
sa_restorer when SA_ONSTACK is set, but it seems to break LTP's
 | 
						|
sigaltstack testcase. Some users have reported problems with
 | 
						|
sigaltstack as well; hopefully this will fix it.
 | 
						|
 | 
						|
Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
 | 
						|
---
 | 
						|
 libc/sysdeps/linux/avr32/sigaction.c |    2 +-
 | 
						|
 1 files changed, 1 insertions(+), 1 deletions(-)
 | 
						|
 | 
						|
--- a/libc/sysdeps/linux/avr32/sigaction.c
 | 
						|
+++ b/libc/sysdeps/linux/avr32/sigaction.c
 | 
						|
@@ -30,7 +30,7 @@ int __libc_sigaction(int signum, const s
 | 
						|
 		kact.k_sa_handler = act->sa_handler;
 | 
						|
 		memcpy(&kact.sa_mask, &act->sa_mask, sizeof (kact.sa_mask));
 | 
						|
 		kact.sa_flags = act->sa_flags;
 | 
						|
-		if (kact.sa_flags & (SA_RESTORER | SA_ONSTACK))
 | 
						|
+		if (kact.sa_flags & SA_RESTORER)
 | 
						|
 			kact.sa_restorer = act->sa_restorer;
 | 
						|
 		else
 | 
						|
 			kact.sa_restorer = __default_rt_sa_restorer;
 |