Commit 09ef2957 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'loongarch-fixes-6.9-2' of...

Merge tag 'loongarch-fixes-6.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson

Pull LoongArch fixes from Huacai Chen:
 "Fix some build errors and some trivial runtime bugs"

* tag 'loongarch-fixes-6.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson:
  LoongArch: Lately init pmu after smp is online
  LoongArch: Fix callchain parse error with kernel tracepoint events
  LoongArch: Fix access error when read fault on a write-only VMA
  LoongArch: Fix a build error due to __tlb_remove_tlb_entry()
  LoongArch: Fix Kconfig item and left code related to CRASH_CORE
parents 084c473c f3334ebb
...@@ -595,7 +595,7 @@ config ARCH_SELECTS_CRASH_DUMP ...@@ -595,7 +595,7 @@ config ARCH_SELECTS_CRASH_DUMP
select RELOCATABLE select RELOCATABLE
config ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION config ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION
def_bool CRASH_CORE def_bool CRASH_RESERVE
config RELOCATABLE config RELOCATABLE
bool "Relocatable kernel" bool "Relocatable kernel"
......
/* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */
#ifndef _LOONGARCH_CRASH_CORE_H #ifndef _LOONGARCH_CRASH_RESERVE_H
#define _LOONGARCH_CRASH_CORE_H #define _LOONGARCH_CRASH_RESERVE_H
#define CRASH_ALIGN SZ_2M #define CRASH_ALIGN SZ_2M
......
...@@ -7,6 +7,14 @@ ...@@ -7,6 +7,14 @@
#ifndef __LOONGARCH_PERF_EVENT_H__ #ifndef __LOONGARCH_PERF_EVENT_H__
#define __LOONGARCH_PERF_EVENT_H__ #define __LOONGARCH_PERF_EVENT_H__
#include <asm/ptrace.h>
#define perf_arch_bpf_user_pt_regs(regs) (struct user_pt_regs *)regs #define perf_arch_bpf_user_pt_regs(regs) (struct user_pt_regs *)regs
#define perf_arch_fetch_caller_regs(regs, __ip) { \
(regs)->csr_era = (__ip); \
(regs)->regs[3] = current_stack_pointer; \
(regs)->regs[22] = (unsigned long) __builtin_frame_address(0); \
}
#endif /* __LOONGARCH_PERF_EVENT_H__ */ #endif /* __LOONGARCH_PERF_EVENT_H__ */
...@@ -132,8 +132,6 @@ static __always_inline void invtlb_all(u32 op, u32 info, u64 addr) ...@@ -132,8 +132,6 @@ static __always_inline void invtlb_all(u32 op, u32 info, u64 addr)
); );
} }
#define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0)
static void tlb_flush(struct mmu_gather *tlb); static void tlb_flush(struct mmu_gather *tlb);
#define tlb_flush tlb_flush #define tlb_flush tlb_flush
......
...@@ -884,4 +884,4 @@ static int __init init_hw_perf_events(void) ...@@ -884,4 +884,4 @@ static int __init init_hw_perf_events(void)
return 0; return 0;
} }
early_initcall(init_hw_perf_events); pure_initcall(init_hw_perf_events);
...@@ -202,10 +202,10 @@ static void __kprobes __do_page_fault(struct pt_regs *regs, ...@@ -202,10 +202,10 @@ static void __kprobes __do_page_fault(struct pt_regs *regs,
if (!(vma->vm_flags & VM_WRITE)) if (!(vma->vm_flags & VM_WRITE))
goto bad_area; goto bad_area;
} else { } else {
if (!(vma->vm_flags & VM_READ) && address != exception_era(regs))
goto bad_area;
if (!(vma->vm_flags & VM_EXEC) && address == exception_era(regs)) if (!(vma->vm_flags & VM_EXEC) && address == exception_era(regs))
goto bad_area; goto bad_area;
if (!(vma->vm_flags & (VM_READ | VM_WRITE)) && address != exception_era(regs))
goto bad_area;
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment