Loading arch/arm/kernel/stacktrace.c +5 −0 Original line number Diff line number Diff line #include <linux/export.h> #include <linux/kasan.h> #include <linux/sched.h> #include <linux/stacktrace.h> Loading Loading @@ -35,11 +36,15 @@ int notrace unwind_frame(struct stackframe *frame) if (fp < low + 12 || fp > high - 4) return -EINVAL; kasan_disable_current(); /* restore the registers from the stack frame */ frame->fp = *(unsigned long *)(fp - 12); frame->sp = *(unsigned long *)(fp - 8); frame->pc = *(unsigned long *)(fp - 4); kasan_enable_current(); return 0; } #endif Loading arch/arm64/kernel/stacktrace.c +5 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include <linux/kasan.h> #include <linux/kernel.h> #include <linux/export.h> #include <linux/sched.h> Loading Loading @@ -46,6 +47,8 @@ int notrace unwind_frame(struct stackframe *frame) if (fp < low || fp > high - 0x18 || fp & 0xf) return -EINVAL; kasan_disable_current(); frame->sp = fp + 0x10; frame->fp = *(unsigned long *)(fp); /* Loading @@ -54,6 +57,8 @@ int notrace unwind_frame(struct stackframe *frame) */ frame->pc = *(unsigned long *)(fp + 8) - 4; kasan_enable_current(); return 0; } Loading Loading
arch/arm/kernel/stacktrace.c +5 −0 Original line number Diff line number Diff line #include <linux/export.h> #include <linux/kasan.h> #include <linux/sched.h> #include <linux/stacktrace.h> Loading Loading @@ -35,11 +36,15 @@ int notrace unwind_frame(struct stackframe *frame) if (fp < low + 12 || fp > high - 4) return -EINVAL; kasan_disable_current(); /* restore the registers from the stack frame */ frame->fp = *(unsigned long *)(fp - 12); frame->sp = *(unsigned long *)(fp - 8); frame->pc = *(unsigned long *)(fp - 4); kasan_enable_current(); return 0; } #endif Loading
arch/arm64/kernel/stacktrace.c +5 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include <linux/kasan.h> #include <linux/kernel.h> #include <linux/export.h> #include <linux/sched.h> Loading Loading @@ -46,6 +47,8 @@ int notrace unwind_frame(struct stackframe *frame) if (fp < low || fp > high - 0x18 || fp & 0xf) return -EINVAL; kasan_disable_current(); frame->sp = fp + 0x10; frame->fp = *(unsigned long *)(fp); /* Loading @@ -54,6 +57,8 @@ int notrace unwind_frame(struct stackframe *frame) */ frame->pc = *(unsigned long *)(fp + 8) - 4; kasan_enable_current(); return 0; } Loading