 1f7afb08a5
			
		
	
	
	1f7afb08a5
	
	
	
		
			
			Same file, except for whitespace, comment formatting and: 32-bit: unsigned long *virt_addr = va; 64-bit: unsigned int *virt_addr = va; Both can be safely replaced by: u32 i, *virt_addr = va; Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
		
			
				
	
	
		
			18 lines
		
	
	
	
		
			419 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			18 lines
		
	
	
	
		
			419 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
 |