1 #ifndef _ASM_X86_EDAC_H
2 #define _ASM_X86_EDAC_H
4 /* ECC atomic, DMA, SMP and interrupt safe scrub function */
6 static __inline__
void atomic_scrub(void *va
, u32 size
)
8 u32 i
, *virt_addr
= va
;
11 * Very carefully read and write to memory atomically so we
12 * are interrupt, DMA and SMP safe.
14 for (i
= 0; i
< size
/ 4; i
++, virt_addr
++)
15 __asm__
__volatile__("lock; addl $0, %0"::"m"(*virt_addr
));