forked from mirrors/linux
		
	powerpc/irq: remove inline assembly in hard_irq_disable macro
Use WRITE_ONCE() instead of opencoding the saving of current stack pointeur. Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/9f05937d8722ddd2064a7c2362d8f9000e15e1ba.1652863723.git.christophe.leroy@csgroup.eu
This commit is contained in:
		
							parent
							
								
									78ffe6a7e2
								
							
						
					
					
						commit
						077fc62b2b
					
				
					 1 changed files with 1 additions and 3 deletions
				
			
		| 
						 | 
					@ -282,9 +282,7 @@ static inline bool pmi_irq_pending(void)
 | 
				
			||||||
	flags = irq_soft_mask_set_return(IRQS_ALL_DISABLED);		\
 | 
						flags = irq_soft_mask_set_return(IRQS_ALL_DISABLED);		\
 | 
				
			||||||
	local_paca->irq_happened |= PACA_IRQ_HARD_DIS;			\
 | 
						local_paca->irq_happened |= PACA_IRQ_HARD_DIS;			\
 | 
				
			||||||
	if (!arch_irqs_disabled_flags(flags)) {				\
 | 
						if (!arch_irqs_disabled_flags(flags)) {				\
 | 
				
			||||||
		asm ("stdx %%r1, 0, %1 ;"				\
 | 
							WRITE_ONCE(local_paca->saved_r1, current_stack_pointer);\
 | 
				
			||||||
		     : "=m" (local_paca->saved_r1)			\
 | 
					 | 
				
			||||||
		     : "b" (&local_paca->saved_r1));			\
 | 
					 | 
				
			||||||
		trace_hardirqs_off();					\
 | 
							trace_hardirqs_off();					\
 | 
				
			||||||
	}								\
 | 
						}								\
 | 
				
			||||||
} while(0)
 | 
					} while(0)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue