original_kernel/arch/mips
Maciej W. Rozycki c4fca4fdea MIPS: strnlen_user.S: Fix a CPU_DADDI_WORKAROUNDS regression
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>
2015-05-29 20:23:58 +02:00
..
alchemy
ar7
ath25
ath79 MIPS: ath79: fix build problem if CONFIG_BLK_DEV_INITRD is not set 2015-05-29 20:23:36 +02:00
bcm47xx
bcm63xx
bmips
boot
cavium-octeon
cobalt
configs MIPS: Fuloong 2E: Replace CONFIG_USB_ISP1760_HCD by CONFIG_USB_ISP1760 2015-05-26 16:46:53 +02:00
dec
emma
fw
include MIPS: Fix a preemption issue with thread's FPU defaults 2015-05-12 23:15:49 +02:00
jazz
jz4740
kernel MIPS: BMIPS: Fix bmips_wr_vec() 2015-05-29 20:23:43 +02:00
kvm MIPS: KVM: Fix unused variable build warning 2015-05-12 23:53:56 +02:00
lantiq
lasat
lib MIPS: strnlen_user.S: Fix a CPU_DADDI_WORKAROUNDS regression 2015-05-29 20:23:58 +02:00
loongson
loongson1
math-emu MIPS: Fix a preemption issue with thread's FPU defaults 2015-05-12 23:15:49 +02:00
mm MIPS: tlb-r4k: Fix PG_ELPA comment 2015-05-15 22:02:50 +02:00
mti-malta
mti-sead3
net
netlogic
oprofile
paravirt
pci
pistachio
pmcs-msp71xx
pnx833x
power
ralink
rb532
sgi-ip22
sgi-ip27
sgi-ip32 MIPS: IP32: Fix build errors in reset code in DS1685 platform hook. 2015-05-13 00:01:41 +02:00
sibyte
sni
txx9
vr41xx
Kbuild
Kbuild.platforms
Kconfig
Kconfig.debug
Makefile MIPS: Fix wrong CHECKFLAGS (sparse builds) with GCC 5.1 2015-05-12 23:22:39 +02:00