Skip to content

Commit 10f4902

Browse files
committed
Merge tag 'trace-v5.0-rc4-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
Pull tracing fixes from Steven Rostedt: "Two more tracing fixes - Have kprobes not use copy_from_user() to access kernel addresses, because kprobes can legitimately poke at bad kernel memory, which will fault. Copy from user code should never fault in kernel space. Using probe_mem_read() can handle kernel address space faulting. - Put back the entries counter in the tracing output that was accidentally removed" * tag 'trace-v5.0-rc4-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing: Fix number of entries in trace header kprobe: Do not use uaccess functions to access kernel memory that can fault
2 parents a3b22b9 + 9e73821 commit 10f4902

File tree

2 files changed

+3
-9
lines changed

2 files changed

+3
-9
lines changed

kernel/trace/trace.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3384,6 +3384,8 @@ static void print_func_help_header_irq(struct trace_buffer *buf, struct seq_file
33843384
const char tgid_space[] = " ";
33853385
const char space[] = " ";
33863386

3387+
print_event_info(buf, m);
3388+
33873389
seq_printf(m, "# %s _-----=> irqs-off\n",
33883390
tgid ? tgid_space : space);
33893391
seq_printf(m, "# %s / _----=> need-resched\n",

kernel/trace/trace_kprobe.c

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -861,22 +861,14 @@ static const struct file_operations kprobe_profile_ops = {
861861
static nokprobe_inline int
862862
fetch_store_strlen(unsigned long addr)
863863
{
864-
mm_segment_t old_fs;
865864
int ret, len = 0;
866865
u8 c;
867866

868-
old_fs = get_fs();
869-
set_fs(KERNEL_DS);
870-
pagefault_disable();
871-
872867
do {
873-
ret = __copy_from_user_inatomic(&c, (u8 *)addr + len, 1);
868+
ret = probe_mem_read(&c, (u8 *)addr + len, 1);
874869
len++;
875870
} while (c && ret == 0 && len < MAX_STRING_SIZE);
876871

877-
pagefault_enable();
878-
set_fs(old_fs);
879-
880872
return (ret < 0) ? ret : len;
881873
}
882874

0 commit comments

Comments
 (0)