Revision c4fca4fdea940bda2cff6b844cda6af8ef1c79cc authored by Maciej W. Rozycki on 28 May 2015, 16:46:49 UTC, committed by Ralf Baechle on 29 May 2015, 18:23:58 UTC
Correct a regression introduced with 8453eebd [MIPS: Fix strnlen_user() return value in case of overlong strings.] causing assembler warnings and broken code generated in __strnlen_kernel_nocheck_asm: arch/mips/lib/strnlen_user.S: Assembler messages: arch/mips/lib/strnlen_user.S:64: Warning: Macro instruction expanded into multiple instructions in a branch delay slot with the CPU_DADDI_WORKAROUNDS option set, resulting in the function looping indefinitely upon mounting NFS root. Use conditional assembly to avoid a microMIPS code size regression. Using $at unconditionally would cause such a regression as there are no 16-bit instruction encodings available for ALU operations using this register. Using $v1 unconditionally would produce short microMIPS encodings, but would prevent this register from being used across calls to this function. The extra LI operation introduced is free, replacing a NOP originally scheduled into the delay slot of the branch that follows. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10205/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
1 parent 57b4175
File | Mode | Size |
---|---|---|
aoa | ||
arm | ||
atmel | ||
core | ||
drivers | ||
firewire | ||
hda | ||
i2c | ||
isa | ||
mips | ||
oss | ||
parisc | ||
pci | ||
pcmcia | ||
ppc | ||
sh | ||
soc | ||
sparc | ||
spi | ||
synth | ||
usb | ||
Kconfig | -rw-r--r-- | 3.8 KB |
Makefile | -rw-r--r-- | 544 bytes |
ac97_bus.c | -rw-r--r-- | 1.6 KB |
last.c | -rw-r--r-- | 1.2 KB |
sound_core.c | -rw-r--r-- | 15.6 KB |
sound_firmware.c | -rw-r--r-- | 1.6 KB |
Computing file changes ...