| From: Paul Burton <paul.burton@imgtec.com> |
| Date: Mon, 7 Nov 2016 15:07:07 +0000 |
| Subject: MIPS: Handle microMIPS jumps in the same way as MIPS32/MIPS64 jumps |
| |
| commit 096a0de427ea333f56f0ee00328cff2a2731bcf1 upstream. |
| |
| is_jump_ins() checks for plain jump ("j") instructions since commit |
| e7438c4b893e ("MIPS: Fix sibling call handling in get_frame_info") but |
| that commit didn't make the same change to the microMIPS code, leaving |
| it inconsistent with the MIPS32/MIPS64 code. Handle the microMIPS |
| encoding of the jump instruction too such that it behaves consistently. |
| |
| Signed-off-by: Paul Burton <paul.burton@imgtec.com> |
| Fixes: e7438c4b893e ("MIPS: Fix sibling call handling in get_frame_info") |
| Cc: Tony Wu <tung7970@gmail.com> |
| Cc: linux-mips@linux-mips.org |
| Patchwork: https://patchwork.linux-mips.org/patch/14533/ |
| Signed-off-by: Ralf Baechle <ralf@linux-mips.org> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| arch/mips/kernel/process.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- a/arch/mips/kernel/process.c |
| +++ b/arch/mips/kernel/process.c |
| @@ -321,6 +321,8 @@ static inline int is_jump_ins(union mips |
| return 0; |
| } |
| |
| + if (ip->j_format.opcode == mm_j32_op) |
| + return 1; |
| if (ip->j_format.opcode == mm_jal32_op) |
| return 1; |
| if (ip->r_format.opcode != mm_pool32a_op || |