mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	ia64: Use preempt_schedule_irq
Use the proper core function instead of fiddling with PREEMPT_ACTIVE and enable/disable interrupts in the low level code. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Tony Luck <tony.luck@intel.com> Cc: Fenghua Yu <fenghua.yu@intel.com> Cc: linux-ia64@vger.kernel.org Link: http://lkml.kernel.org/r/20130917183628.857145384@linutronix.de
This commit is contained in:
		
							parent
							
								
									650e4dc2a7
								
							
						
					
					
						commit
						aa0d532605
					
				
					 1 changed files with 1 additions and 14 deletions
				
			
		| 
						 | 
				
			
			@ -1169,21 +1169,8 @@ skip_rbs_switch:
 | 
			
		|||
.work_pending:
 | 
			
		||||
	tbit.z p6,p0=r31,TIF_NEED_RESCHED	// is resched not needed?
 | 
			
		||||
(p6)	br.cond.sptk.few .notify
 | 
			
		||||
#ifdef CONFIG_PREEMPT
 | 
			
		||||
(pKStk) dep r21=-1,r0,PREEMPT_ACTIVE_BIT,1
 | 
			
		||||
	;;
 | 
			
		||||
(pKStk) st4 [r20]=r21
 | 
			
		||||
#endif
 | 
			
		||||
	SSM_PSR_I(p0, p6, r2)	// enable interrupts
 | 
			
		||||
	br.call.spnt.many rp=schedule
 | 
			
		||||
	br.call.spnt.many rp=preempt_schedule_irq
 | 
			
		||||
.ret9:	cmp.eq p6,p0=r0,r0	// p6 <- 1 (re-check)
 | 
			
		||||
	RSM_PSR_I(p0, r2, r20)	// disable interrupts
 | 
			
		||||
	;;
 | 
			
		||||
#ifdef CONFIG_PREEMPT
 | 
			
		||||
(pKStk)	adds r20=TI_PRE_COUNT+IA64_TASK_SIZE,r13
 | 
			
		||||
	;;
 | 
			
		||||
(pKStk)	st4 [r20]=r0		// preempt_count() <- 0
 | 
			
		||||
#endif
 | 
			
		||||
(pLvSys)br.cond.sptk.few  __paravirt_pending_syscall_end
 | 
			
		||||
	br.cond.sptk.many .work_processed_kernel
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue