cregit-Linux how code gets into the kernel

Release 4.10 arch/x86/um/asm/barrier.h

Directory: arch/x86/um/asm
#ifndef _ASM_UM_BARRIER_H_

#define _ASM_UM_BARRIER_H_

#include <asm/asm.h>
#include <asm/segment.h>
#include <asm/cpufeatures.h>
#include <asm/cmpxchg.h>
#include <asm/nops.h>

#include <linux/kernel.h>
#include <linux/irqflags.h>

/*
 * Force strict CPU ordering.
 * And yes, this is required on UP too when we're talking
 * to devices.
 */
#ifdef CONFIG_X86_32


#define mb()	alternative("lock; addl $0,0(%%esp)", "mfence", X86_FEATURE_XMM2)

#define rmb()	alternative("lock; addl $0,0(%%esp)", "lfence", X86_FEATURE_XMM2)

#define wmb()	alternative("lock; addl $0,0(%%esp)", "sfence", X86_FEATURE_XMM)

#else /* CONFIG_X86_32 */


#define mb()	asm volatile("mfence" : : : "memory")

#define rmb()	asm volatile("lfence" : : : "memory")

#define wmb()	asm volatile("sfence" : : : "memory")

#endif /* CONFIG_X86_32 */

#ifdef CONFIG_X86_PPRO_FENCE

#define dma_rmb()	rmb()
#else /* CONFIG_X86_PPRO_FENCE */

#define dma_rmb()	barrier()
#endif /* CONFIG_X86_PPRO_FENCE */

#define dma_wmb()	barrier()

#include <asm-generic/barrier.h>

#endif

Overall Contributors

PersonTokensPropCommitsCommitProp
al viroal viro7679.17%120.00%
richard weinbergerrichard weinberger99.38%120.00%
alexander duyckalexander duyck77.29%120.00%
michael s. tsirkinmichael s. tsirkin33.12%120.00%
borislav petkovborislav petkov11.04%120.00%
Total96100.00%5100.00%
Directory: arch/x86/um/asm
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.