~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/powerpc/include/asm/synch.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/powerpc/include/asm/synch.h (Architecture mips) and /arch/ppc/include/asm-ppc/synch.h (Architecture ppc)


  1 /* SPDX-License-Identifier: GPL-2.0 */              1 
  2 #ifndef _ASM_POWERPC_SYNCH_H                      
  3 #define _ASM_POWERPC_SYNCH_H                      
  4 #ifdef __KERNEL__                                 
  5                                                   
  6 #include <asm/cputable.h>                         
  7 #include <asm/feature-fixups.h>                   
  8 #include <asm/ppc-opcode.h>                       
  9                                                   
 10 #ifndef __ASSEMBLY__                              
 11 extern unsigned int __start___lwsync_fixup, __    
 12 extern void do_lwsync_fixups(unsigned long val    
 13                              void *fixup_end);    
 14                                                   
 15 static inline void eieio(void)                    
 16 {                                                 
 17         if (IS_ENABLED(CONFIG_BOOKE))             
 18                 __asm__ __volatile__ ("mbar" :    
 19         else                                      
 20                 __asm__ __volatile__ ("eieio"     
 21 }                                                 
 22                                                   
 23 static inline void isync(void)                    
 24 {                                                 
 25         __asm__ __volatile__ ("isync" : : : "m    
 26 }                                                 
 27                                                   
 28 static inline void ppc_after_tlbiel_barrier(vo    
 29 {                                                 
 30         asm volatile("ptesync": : :"memory");     
 31         /*                                        
 32          * POWER9, POWER10 need a cp_abort aft    
 33          * invalidated correctly. If this is n    
 34          * from the physical address that was     
 35          *                                        
 36          * POWER9 in practice does not need th    
 37          * accelerators mapped will use tlbie     
 38          * to invalidate translations. It's no    
 39          * way due to local copy-paste.           
 40          */                                       
 41         asm volatile(ASM_FTR_IFSET(PPC_CP_ABOR    
 42 }                                                 
 43 #endif /* __ASSEMBLY__ */                         
 44                                                   
 45 #if defined(__powerpc64__)                        
 46 #    define LWSYNC      lwsync                    
 47 #elif defined(CONFIG_PPC_E500)                    
 48 #    define LWSYNC                                
 49         START_LWSYNC_SECTION(96);                 
 50         sync;                                     
 51         MAKE_LWSYNC_SECTION_ENTRY(96, __lwsync    
 52 #else                                             
 53 #    define LWSYNC      sync                      
 54 #endif                                            
 55                                                   
 56 #ifdef CONFIG_SMP                                 
 57 #define __PPC_ACQUIRE_BARRIER                     
 58         START_LWSYNC_SECTION(97);                 
 59         isync;                                    
 60         MAKE_LWSYNC_SECTION_ENTRY(97, __lwsync    
 61 #define PPC_ACQUIRE_BARRIER      "\n" stringif    
 62 #define PPC_RELEASE_BARRIER      stringify_in_    
 63 #define PPC_ATOMIC_ENTRY_BARRIER "\n" stringif    
 64 #define PPC_ATOMIC_EXIT_BARRIER  "\n" stringif    
 65 #else                                             
 66 #define PPC_ACQUIRE_BARRIER                       
 67 #define PPC_RELEASE_BARRIER                       
 68 #define PPC_ATOMIC_ENTRY_BARRIER                  
 69 #define PPC_ATOMIC_EXIT_BARRIER                   
 70 #endif                                            
 71                                                   
 72 #endif /* __KERNEL__ */                           
 73 #endif  /* _ASM_POWERPC_SYNCH_H */                
 74                                                   

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php