]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commit
MIPS: Fix get_frame_info() handling of microMIPS function size
authorPaul Burton <paul.burton@imgtec.com>
Mon, 7 Nov 2016 15:07:04 +0000 (15:07 +0000)
committerThadeu Lima de Souza Cascardo <cascardo@canonical.com>
Thu, 6 Apr 2017 08:20:37 +0000 (09:20 +0100)
commit5486d0e487bfc8b936594ab2378466b36a70241c
tree3af8f9528b02840865797e9b8d616df4a434abe4
parent7421b33959f6b44adae6d6bbf27692d187658b88
MIPS: Fix get_frame_info() handling of microMIPS function size

BugLink: http://bugs.launchpad.net/bugs/1673538
commit b6c7a324df37bf05ef7a2c1580683cf10d082d97 upstream.

get_frame_info() is meant to iterate over up to the first 128
instructions within a function, but for microMIPS kernels it will not
reach that many instructions unless the function is 512 bytes long since
we calculate the maximum number of instructions to check by dividing the
function length by the 4 byte size of a union mips_instruction. In
microMIPS kernels this won't do since instructions are variable length.

Fix this by instead checking whether the pointer to the current
instruction has reached the end of the function, and use max_insns as a
simple constant to check the number of iterations against.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Fixes: 34c2f668d0f6 ("MIPS: microMIPS: Add unaligned access support.")
Cc: Leonid Yegoshin <leonid.yegoshin@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14530/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
arch/mips/kernel/process.c