linux_dsm_epyc7002/include/asm-x86/edac.h
Thomas Gleixner 1f7afb08a5 x86: unify include/asm/cache_32/64.h
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>
2007-10-17 20:17:19 +02:00

19 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