[PATCH 0/2] Fix ftracetest issues

Naresh Kamboju naresh.kamboju at linaro.org
Mon Nov 27 09:25:46 PST 2017


Hi Alex Shi,

On 26 November 2017 at 20:46, Alex Shi <alex.shi at linaro.org> wrote:
> CC Naresh,
>
> Could you like to test the patch for our bug 3297?
>
> BTW,
> The 2nd has 2 build error on stm32_defconfig:
>
> arch/arm/kernel/traps.o: In function `dump_backtrace_entry':
> /mmkernels/kernel/arch/arm/kernel/traps.c:77: undefined reference to
> `__entry_text_start'
> /mmkernels/kernel/arch/arm/kernel/traps.c:77: undefined reference to
> `__entry_text_end'
>

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.



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