Re: [PATCH] arm64: hw_breakpoint: Save privilege of access control via ptrace
From: Tiezhu Yang
Date: Wed Jun 19 2024 - 22:05:55 EST
On 06/19/2024 11:15 PM, Oleg Nesterov wrote:
I don't understand what this patch does, but...
Thanks for your reply.
ctrl->privilege in decode_ctrl_reg() is never be used later but
it can and should be used in arch_build_bp_info().
arch/arm64/include/asm/hw_breakpoint.h
static inline void decode_ctrl_reg(u32 reg,
struct arch_hw_breakpoint_ctrl *ctrl)
{
...
ctrl->privilege = reg & 0x3; // it is never be used later but ...
...
}
arch/arm64/kernel/hw_breakpoint.c
static int arch_build_bp_info(struct perf_event *bp,
const struct perf_event_attr *attr,
struct arch_hw_breakpoint *hw)
{
...
if (arch_check_bp_in_kernelspace(hw))
hw->ctrl.privilege = AARCH64_BREAKPOINT_EL1; // ... it can and should
be used here
else
hw->ctrl.privilege = AARCH64_BREAKPOINT_EL0; // and here.
...
}
On 06/18, Tiezhu Yang wrote:
--- a/include/uapi/linux/perf_event.h
+++ b/include/uapi/linux/perf_event.h
@@ -467,6 +467,7 @@ struct perf_event_attr {
__u32 wakeup_watermark; /* bytes before wakeup */
};
+ __u8 bp_priv;
__u32 bp_type;
Is it safe to add the new member in the middle of uapi struct?
This will break userspace...
Let me put the new member "bp_priv" at the end of uapi struct
perf_event_attr in the next version if you are OK with it.
Thanks,
Tiezhu