[IA64] restore_sigcontext is not preempt safe
restore_sigcontext calls ia64_set_local_fpu_owner() which requires that preempt be disabled. Signed-off-by: Keith Owens <kaos@sgi.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
		
							parent
							
								
									7fe4c1b168
								
							
						
					
					
						commit
						2ba3e3e65c
					
				| @ -143,6 +143,7 @@ restore_sigcontext (struct sigcontext __user *sc, struct sigscratch *scr) | ||||
| 
 | ||||
| 		__copy_from_user(current->thread.fph, &sc->sc_fr[32], 96*16); | ||||
| 		psr->mfh = 0;	/* drop signal handler's fph contents... */ | ||||
| 		preempt_disable(); | ||||
| 		if (psr->dfh) | ||||
| 			ia64_drop_fpu(current); | ||||
| 		else { | ||||
| @ -150,6 +151,7 @@ restore_sigcontext (struct sigcontext __user *sc, struct sigscratch *scr) | ||||
| 			__ia64_load_fpu(current->thread.fph); | ||||
| 			ia64_set_local_fpu_owner(current); | ||||
| 		} | ||||
| 		preempt_enable(); | ||||
| 	} | ||||
| 	return err; | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user