LO reg. gets trashed by kgdb in 2.4.x and older kernels
Hi.
I have discovered that the gdb-low.S trashes the LO reg. instead of
restoring it. This was fixed for the 2.6 kernels but, as it seems, was left unfixed in the earlier ones (run into this on 2.4.18/2.4.20). Here's the patch against the lastest 2.4.x revision of the file...
Index: linux/arch/mips/kernel/gdb-low.S
===================================================================
RCS file: /home/cvs/linux/arch/mips/kernel/gdb-low.S,v retrieving revision 1.11.2.3
arch/mips/kernel/gdb-low.S +1 -1
@@ -283,7 +283,7 @@ lw v0,GDB_FR_HI(sp) lw v1,GDB_FR_LO(sp) mthi v0 - mtlo v0 + mtlo v1 lw ra,GDB_FR_REG31(sp) lw fp,GDB_FR_REG30(sp) lw gp,GDB_FR_REG28(sp)
Quoted 5 lines · Sergei Shtylyov
I have discovered that the
gdb-low.Strashes the LO reg. instead of
restoring it. This was fixed for the 2.6 kernels but, as it seems, was left unfixed in the earlier ones (run into this on 2.4.18/2.4.20). Here's the patch
against the lastest 2.4.x revision of the file...
Thanks. This also was an ancient bug probably dating back to late '94 or early '95 so all branches other than 2.6 were affected.
Ralf