OpenCloudOS-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 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2015-02-21 19:41:38 -08:00
ar7 MIPS: AR7: Replace mac address parsing 2015-04-02 13:54:22 +02:00
ath25 MIPS: ath25: add Wireless device support 2014-11-24 07:45:29 +01:00
ath79 MIPS: ath79: fix build problem if CONFIG_BLK_DEV_INITRD is not set 2015-05-29 20:23:36 +02:00
bcm47xx Merge branch '4.0-fixes' into mips-for-linux-next 2015-04-13 16:03:32 +02:00
bcm63xx This is the final removal (after several years!) of the obsolete cpus_* 2015-04-20 10:19:03 -07:00
bmips MIPS: BMIPS: restrict DTB selection to BMIPS_GENERIC 2015-04-01 17:22:04 +02:00
boot MIPS: Reduce kernel image size for !CONFIG_DEBUG_ZBOOT 2015-04-02 13:54:25 +02:00
cavium-octeon This is the final removal (after several years!) of the obsolete cpus_* 2015-04-20 10:19:03 -07:00
cobalt MIPS: Cobalt: Move to 8250/16550 serial early printk driver 2013-10-29 21:24:38 +01:00
configs MIPS: Fuloong 2E: Replace CONFIG_USB_ISP1760_HCD by CONFIG_USB_ISP1760 2015-05-26 16:46:53 +02:00
dec MIPS: DEC: Do not set up the FPU interrupt if no FPU 2015-04-08 01:10:46 +02:00
emma MIPS: Remove panic_timeout settings 2013-11-26 12:12:27 +01:00
fw MIPS: ARC: Use __noreturn / unreachable in ARC termination functions. 2015-01-13 16:04:27 +01:00
include MIPS: Fix a preemption issue with thread's FPU defaults 2015-05-12 23:15:49 +02:00
jazz Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2013-03-02 07:44:16 -08:00
jz4740 MIPS: jz4740: Implement read_sched_clock 2015-04-01 17:21:31 +02:00
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 MIPS: mark prom_free_prom_memory() everywhere with __init 2015-04-01 17:21:58 +02:00
lasat Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2015-04-17 15:50:54 -04:00
lib MIPS: strnlen_user.S: Fix a CPU_DADDI_WORKAROUNDS regression 2015-05-29 20:23:58 +02:00
loongson This is the final removal (after several years!) of the obsolete cpus_* 2015-04-20 10:19:03 -07:00
loongson1 MIPS: Loongson1B: Add a clockevent/clocksource using PWM Timer 2014-11-24 07:45:09 +01:00
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 TTY/Serial patches for 4.1-rc1 2015-04-21 09:33:10 -07:00
mti-sead3 MIPS: SEAD3: Combine all platform device registrations in one file. 2015-04-02 17:07:26 +02:00
net module: remove mod arg from module_free, rename module_memfree(). 2015-01-20 11:38:33 +10:30
netlogic Merge branch '4.0-fixes' into mips-for-linux-next 2015-04-13 16:03:32 +02:00
oprofile MIPS: Add R16000 detection 2015-04-01 17:22:13 +02:00
paravirt mips: fix up obsolete cpu function usage. 2015-03-05 15:25:06 +10:30
pci Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2015-04-17 15:50:54 -04:00
pistachio MIPS: Add support for the IMG Pistachio SoC 2015-03-31 12:04:12 +02:00
pmcs-msp71xx kconfig: use bool instead of boolean for type definition attributes 2015-01-07 13:08:04 +01:00
pnx833x MIPS: PNX833x: Remove checks for CONFIG_I2C_PNX0105 2014-05-23 15:12:39 +02:00
power MIPS: Hibernate: flush TLB entries earlier 2015-04-10 15:41:52 +02:00
ralink MIPS: ralink: add missing symbol for RALINK_ILL_ACC 2015-04-10 15:41:51 +02:00
rb532 MIPS: Replace use of phys_t with phys_addr_t. 2014-11-24 22:47:31 +01:00
sgi-ip22 MIPS: ip22-gio: Remove legacy suspend/resume support 2015-02-20 13:30:55 +01:00
sgi-ip27 This is the final removal (after several years!) of the obsolete cpus_* 2015-04-20 10:19:03 -07:00
sgi-ip32 MIPS: IP32: Fix build errors in reset code in DS1685 platform hook. 2015-05-13 00:01:41 +02:00
sibyte MIPS: Replace use of phys_t with phys_addr_t. 2014-11-24 22:47:31 +01:00
sni MIPS: Cleanup CP0 PRId and CP1 FPIR register access masks 2013-09-18 20:25:19 +02:00
txx9 Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
vr41xx MIPS: Idle: Consolidate all declarations in <asm/idle.h>. 2013-05-22 01:34:27 +02:00
Kbuild MIPS: net: Add BPF JIT 2014-05-30 16:10:20 +02:00
Kbuild.platforms MIPS: bcm3384: Rename "bcm3384" target to "bmips" 2015-04-01 17:21:35 +02:00
Kconfig This is the bulk of GPIO changes for the v4.1 development 2015-04-18 08:22:10 -04:00
Kconfig.debug MIPS: kernel: elf: Improve the overall ABI and FPU mode checks 2015-02-17 15:37:39 +00:00
Makefile MIPS: Fix wrong CHECKFLAGS (sparse builds) with GCC 5.1 2015-05-12 23:22:39 +02:00