mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 22:54:05 +08:00
e9e8543fec
The mmiowb() macro is horribly difficult to use and drivers will continue to work most of the time if they omit a call when it is required. Rather than rely on driver authors getting this right, push mmiowb() into arch_spin_unlock() for sh. If this is deemed to be a performance issue, a subsequent optimisation could make use of ARCH_HAS_MMIOWB to elide the barrier in cases where no I/O writes were performed inside the critical section. Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Cc: Rich Felker <dalias@libc.org> Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Will Deacon <will.deacon@arm.com>
13 lines
246 B
C
13 lines
246 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __ASM_SH_MMIOWB_H
|
|
#define __ASM_SH_MMIOWB_H
|
|
|
|
#include <asm/barrier.h>
|
|
|
|
/* synco on SH-4A, otherwise a nop */
|
|
#define mmiowb() wmb()
|
|
|
|
#include <asm-generic/mmiowb.h>
|
|
|
|
#endif /* __ASM_SH_MMIOWB_H */
|