 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>
		
			
				
	
	
		
			18 lines
		
	
	
	
		
			430 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			18 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 */
 |