From: Paul Burton <paul.bur...@mips.com> Date: Thu, 20 Jun 2019 22:13:58 +0000
> Currently arch/mips/include/asm/io.h provides 64b memory accessor > functions such as readq & writeq even on MIPS32 platforms where those > accessors cannot actually perform a 64b memory access. They instead > BUG(). This is unfortunate for drivers which either #ifdef on the > presence of these accessors, or can function with non-atomic > implementations of them found in either linux/io-64-nonatomic-lo-hi.h or > linux/io-64-nonatomic-hi-lo.h. As such we're preparing to remove the > definitions of these 64b accessor functions for MIPS32 kernels. > > In preparation for this, include linux/io-64-nonatomic-lo-hi.h in > defza.c in order to provide a non-atomic implementation of the > readq_relaxed & writeq_relaxed functions that are used by this code. In > practice this will have no runtime effect, since use of the 64b accessor > functions is conditional upon sizeof(unsigned long) == 8, ie. upon > CONFIG_64BIT=y. This means the calls to these non-atomic readq & writeq > implementations will be optimized out anyway, but we need their > definitions to keep the compiler happy. > > For 64bit kernels using this code this change should also have no effect > because asm/io.h will continue to provide the definitions of > readq_relaxed & writeq_relaxed, which linux/io-64-nonatomic-lo-hi.h > checks for before defining itself. > > Signed-off-by: Paul Burton <paul.bur...@mips.com> ... > Maciej, David, if you'd be happy to provide an Ack so that I can take > this through the mips-next branch that would be great; that'll let me > apply it prior to the asm/io.h change. Acked-by: David S. Miller <da...@davemloft.net>