cregit-Linux how code gets into the kernel

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

Directory: arch/x86/um/asm
/* SPDX-License-Identifier: GPL-2.0 */
#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 Viro7678.35%116.67%
Richard Weinberger99.28%116.67%
Alexander Duyck77.22%116.67%
Michael S. Tsirkin33.09%116.67%
Greg Kroah-Hartman11.03%116.67%
Borislav Petkov11.03%116.67%
Total97100.00%6100.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.
Created with cregit.