Skip to contentSkip to conversation

Patch "MIPS: Replace add and sub instructions in relocate_kernel.S with addiu" has been added to the 4.1-stable tree

PATCH [email protected] 1 participant 1 message Aug 10, 2015

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

MIPS: Replace add and sub instructions in relocate_kernel.S with addiu

to the 4.1-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
mips-replace-add-and-sub-instructions-in-relocate_kernel.s-with-addiu.patch
and it can be found in the queue-4.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From a4504755e7dc8d43ed2a934397032691cd03adf7 Mon Sep 17 00:00:00 2001

From: James Cowgill <[email protected]>
Date: Wed, 17 Jun 2015 17:12:50 +0100
Subject: MIPS: Replace add and sub instructions in relocate_kernel.S with addiu

From: James Cowgill <[email protected]>

commit a4504755e7dc8d43ed2a934397032691cd03adf7 upstream.

Fixes the assembler errors generated when compiling a MIPS R6 kernel with CONFIG_KEXEC on, by replacing the offending add and sub instructions with addiu instructions.

Build errors:
arch/mips/kernel/relocate_kernel.S: Assembler messages:
arch/mips/kernel/relocate_kernel.S:27: Error: invalid operands dadd $16,$16,8' arch/mips/kernel/relocate_kernel.S:64: Error: invalid operands dadd $20,$20,8' arch/mips/kernel/relocate_kernel.S:65: Error: invalid operands dadd $18,$18,8' arch/mips/kernel/relocate_kernel.S:66: Error: invalid operands dsub $22,$22,1' scripts/Makefile.build:294: recipe for target 'arch/mips/kernel/relocate_kernel.o' failed

Patchwork: https://patchwork.linux-mips.org/patch/10558/

---
 arch/mips/kernel/relocate_kernel.S |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
arch/mips/kernel/relocate_kernel.S +4 -4
@@ -24,7 +24,7 @@ LEAF(relocate_new_kernel)
 
 process_entry:
 	PTR_L		s2, (s0)
-	PTR_ADD		s0, s0, SZREG
+	PTR_ADDIU	s0, s0, SZREG
 
 	/*
 	 * In case of a kdump/crash kernel, the indirection page is not
@@ -61,9 +61,9 @@ copy_word:
 	/* copy page word by word */
 	REG_L		s5, (s2)
 	REG_S		s5, (s4)
-	PTR_ADD		s4, s4, SZREG
-	PTR_ADD		s2, s2, SZREG
-	LONG_SUB	s6, s6, 1
+	PTR_ADDIU	s4, s4, SZREG
+	PTR_ADDIU	s2, s2, SZREG
+	LONG_ADDIU	s6, s6, -1
 	beq		s6, zero, process_entry
 	b		copy_word
 	b		process_entry

Patches currently in stable-queue which might be from [email protected] are

queue-4.1/mips-replace-add-and-sub-instructions-in-relocate_kernel.s-with-addiu.patch queue-4.1/mips-unaligned-fix-build-error-on-big-endian-r6-kernels.patch