mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 20:42:39 +00:00 
			
		
		
		
	 1965aae3c9
			
		
	
	
		1965aae3c9
		
	
	
	
	
		
			
			Change header guards named "ASM_X86__*" to "_ASM_X86_*" since: a. the double underscore is ugly and pointless. b. no leading underscore violates namespace constraints. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
		
			
				
	
	
		
			19 lines
		
	
	
		
			430 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			430 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _ASM_X86_EDAC_H
 | |
| #define _ASM_X86_EDAC_H
 | |
| 
 | |
| /* ECC atomic, DMA, SMP and interrupt safe scrub function */
 | |
| 
 | |
| static inline void atomic_scrub(void *va, u32 size)
 | |
| {
 | |
| 	u32 i, *virt_addr = va;
 | |
| 
 | |
| 	/*
 | |
| 	 * Very carefully read and write to memory atomically so we
 | |
| 	 * are interrupt, DMA and SMP safe.
 | |
| 	 */
 | |
| 	for (i = 0; i < size / 4; i++, virt_addr++)
 | |
| 		asm volatile("lock; addl $0, %0"::"m" (*virt_addr));
 | |
| }
 | |
| 
 | |
| #endif /* _ASM_X86_EDAC_H */
 |