[PATCH 0/2] Fix ftracetest issues
Alex Shi
alex.shi at linaro.org
Tue Nov 28 05:17:07 PST 2017
> Case 1: Build PASS on linux-4.14.y
> -----------
> Tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
> Branch: linux-4.14.y
> Commit id: f9f0b03dedc1 (HEAD -> linux-4.14.y, tag: v4.14.2,
> origin/linux-4.14.y) Linux 4.14.2
>
> Patches 1 and 2 applies smooth and build PASS with defconfig.
> Ftrace test did not hang on beagleboard x15.
>
Thanks Naresh, could you like to give a 'tested-by:' for theses patches?
>
>
> Case 2: Build failed on linux-4.9.y and linux-4.4.y
> -----------
> Tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
> Branch: linux-4.9.y
> Commit id: 133e6ccf46f1 (HEAD -> linux-4.9.y, tag: v4.9.65,
> origin/linux-4.9.y) Linux 4.9.65
>
> Tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
> Branch: linux-4.4.y
> Commit id: 29ffb9c1fb4a (HEAD, tag: v4.4.102, origin/linux-4.4.y) Linux 4.4.102
>
> Patch-1 : Patch applied smooth.
> Patch-2: Patch failed to apply. Manually changed this file
> "arch/arm/include/asm/traps.h"
>
> Build failed on linux-4.9.y and linux-4.4.y with defconfig.
>
> Build Error
> ---------------
> arch/arm/kernel/traps.c: In function ‘dump_backtrace_entry’:
> arch/arm/kernel/traps.c:73:2: error: implicit declaration of function
> ‘in_entry_text’ [-Werror=implicit-function-declaration]
> cc1: some warnings being treated as errors
> make[1]: *** [arch/arm/kernel/traps.o] Error 1
> make: *** [arch/arm/kernel] Error 2
>
> - Naresh
>
>> On 11/25/2017 07:33 PM, Russell King - ARM Linux wrote:
>>> ftracetest provokes the kernel to try and return to userspace addresses
>>> in kernel mode. These two patches prevent that.
>>>
>>> The first patch, which I intend merging with Linus tonight, ensures that
>>> we catch the condition before we hit userspace, meaning that there is no
>>> possibility of executing user code while in kernel mode.
>>>
>>> The second patch fixes the ftracetest issue itself by ensuring that it
>>> is not possible to set a kprobe on any of the "special" assembler code.
>>> Such code includes:
>>> - the kernel primary/secondary CPU startup code
>>> - exception entry code
>>> - idmap code
>>>
>>> This is because the conditions under which this code is executed does
>>> not meet the kprobes requirements, which is basically that the
>>> "function" is C-like - it does something and then returns to the parent,
>>> and has a stack. This is just not universally true of the above code.
>>>
>>> This patch is larger than one may desire as we re-organise the sections
>>> that some code ends up in, the way the unwinder works, and how we print
>>> stack frames.
>>>
>>> arch/arm/include/asm/assembler.h | 18 ++++++++++++++++++
>>> arch/arm/include/asm/exception.h | 3 +--
>>> arch/arm/include/asm/sections.h | 21 +++++++++++++++++++++
>>> arch/arm/include/asm/traps.h | 12 ------------
>>> arch/arm/kernel/entry-armv.S | 6 +-----
>>> arch/arm/kernel/entry-common.S | 1 +
>>> arch/arm/kernel/entry-header.S | 6 ++++++
>>> arch/arm/kernel/stacktrace.c | 14 ++------------
>>> arch/arm/kernel/traps.c | 4 ++--
>>> arch/arm/kernel/vmlinux.lds.S | 6 +++---
>>> arch/arm/mm/fault.c | 5 ++---
>>> arch/arm/probes/kprobes/core.c | 14 +++++++++++---
>>> 12 files changed, 68 insertions(+), 42 deletions(-)
>>>
More information about the linux-arm-kernel
mailing list