lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 12 Apr 2019 20:04:56 +0800
From:   Xiongfeng Wang <wangxiongfeng2@...wei.com>
To:     <wangxiongfeng2@...wei.com>, <huawei.libin@...wei.com>,
        <james.morse@....com>, <catalin.marinas@....com>,
        <will.deacon@....com>
CC:     <linux-arm-kernel@...ts.infradead.org>,
        <linux-kernel@...r.kernel.org>
Subject: [RFC PATCH 0/3] Enable kprobe to monitor sdei event handler

When I use kprobe to monitor a sdei event handler, the CPU will hang. It's
because when I probe the event handler, the instruction will be replaced with 
brk instruction and brk exception is unmaskable. But 'vbar_el1' contains 
'tramp_vectors' in '_sdei_handler' when SDEI events interrupt userspace, so
we will go to the wrong place if brk exception happens.

I notice that 'ghes_sdei_normal_callback' call several funtions that are not
marked as 'nokprobe'. So I was wondering if we can enable kprobe in '_sdei_handler'.


Xiongfeng Wang (3):
  Revert "arm64: debug: remove unused local_dbg_{enable, disable}
    macros"
  sdei: enable dbg in '_sdei_handler'
  stop_machine: mask sdei before running the callback

 arch/arm64/include/asm/debug-monitors.h |  1 +
 arch/arm64/include/asm/irqflags.h       |  4 +++
 arch/arm64/kernel/debug-monitors.c      |  8 ++++++
 arch/arm64/kernel/sdei.c                | 43 ++++++++++++++++++++++++++-------
 kernel/stop_machine.c                   |  9 +++++++
 5 files changed, 56 insertions(+), 9 deletions(-)

-- 
1.7.12.4

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ