On Tue, Oct 16, 2018 at 10:51:10PM +0100, Maciej W. Rozycki wrote: > Fix a commit 8a8158c85e1e ("MIPS: memset.S: EVA & fault support for > small_memset") regression and remove assembly warnings: > > arch/mips/lib/memset.S: Assembler messages: > arch/mips/lib/memset.S:243: Warning: Macro instruction expanded into multiple instructions in a branch delay slot > > triggering with the CPU_DADDI_WORKAROUNDS option set and this code: > > PTR_SUBU a2, t1, a0 > jr ra > PTR_ADDIU a2, 1 > > This is because with that option in place the DADDIU instruction, which > the PTR_ADDIU CPP macro expands to, becomes a GAS macro, which in turn > expands to an LI/DADDU (or actually ADDIU/DADDU) sequence: > > 13c: 01a4302f dsubu a2,t1,a0 > 140: 03e00008 jr ra > 144: 24010001 li at,1 > 148: 00c1302d daddu a2,a2,at > ... > > Correct this by switching off the `noreorder' assembly mode and letting > GAS schedule this jump's delay slot, as there is nothing special about > it that would require manual scheduling. With this change in place > correct code is produced: > > 13c: 01a4302f dsubu a2,t1,a0 > 140: 24010001 li at,1 > 144: 03e00008 jr ra > 148: 00c1302d daddu a2,a2,at > ... > > Signed-off-by: Maciej W. Rozycki <macro@xxxxxxxxxxxxxx> > Fixes: 8a8158c85e1e ("MIPS: memset.S: EVA & fault support for small_memset") > Cc: stable@xxxxxxxxxxxxxxx # 4.17+ > --- > Hi, > > This is a version (one I originally made actually) of commit 148b9aba99e0 > for 4.18-stable and before. No functional changes. Please apply. Now queued up, thanks. greg k-h