Commit cb84318b authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'loongarch-fixes-5.19-3' of...

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

Pull LoongArch fixes from Huacai Chen:
 "Some bug fixes and a trivial cleanup"

* tag 'loongarch-fixes-5.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson:
  LoongArch: Make compute_return_era() return void
  LoongArch: Fix wrong fpu version
  LoongArch: Fix EENTRY/MERRENTRY setting in setup_tlb_handler()
  LoongArch: Fix sleeping in atomic context in setup_tlb_handler()
  LoongArch: Fix the _stext symbol address
  LoongArch: Fix the !THP build
parents 29eeafc6 ea18d434
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -12,10 +12,9 @@ static inline unsigned long exception_era(struct pt_regs *regs)
	return regs->csr_era;
}

static inline int compute_return_era(struct pt_regs *regs)
static inline void compute_return_era(struct pt_regs *regs)
{
	regs->csr_era += 4;
	return 0;
}

#endif /* _ASM_BRANCH_H */
+5 −5
Original line number Diff line number Diff line
@@ -426,6 +426,11 @@ static inline void update_mmu_cache_pmd(struct vm_area_struct *vma,

#define kern_addr_valid(addr)	(1)

static inline unsigned long pmd_pfn(pmd_t pmd)
{
	return (pmd_val(pmd) & _PFN_MASK) >> _PFN_SHIFT;
}

#ifdef CONFIG_TRANSPARENT_HUGEPAGE

/* We don't have hardware dirty/accessed bits, generic_pmdp_establish is fine.*/
@@ -497,11 +502,6 @@ static inline pmd_t pmd_mkyoung(pmd_t pmd)
	return pmd;
}

static inline unsigned long pmd_pfn(pmd_t pmd)
{
	return (pmd_val(pmd) & _PFN_MASK) >> _PFN_SHIFT;
}

static inline struct page *pmd_page(pmd_t pmd)
{
	if (pmd_trans_huge(pmd))
+1 −1
Original line number Diff line number Diff line
@@ -263,7 +263,7 @@ void cpu_probe(void)

	c->cputype	= CPU_UNKNOWN;
	c->processor_id = read_cpucfg(LOONGARCH_CPUCFG0);
	c->fpu_vers	= (read_cpucfg(LOONGARCH_CPUCFG2) >> 3) & 0x3;
	c->fpu_vers     = (read_cpucfg(LOONGARCH_CPUCFG2) & CPUCFG2_FPVERS) >> 3;

	c->fpu_csr0	= FPU_CSR_RN;
	c->fpu_mask	= FPU_CSR_RSVD;
+0 −2
Original line number Diff line number Diff line
@@ -14,8 +14,6 @@

	__REF

SYM_ENTRY(_stext, SYM_L_GLOBAL, SYM_A_NONE)

SYM_CODE_START(kernel_entry)			# kernel entry point

	/* Config direct window and set PG */
+1 −2
Original line number Diff line number Diff line
@@ -475,8 +475,7 @@ asmlinkage void noinstr do_ri(struct pt_regs *regs)

	die_if_kernel("Reserved instruction in kernel code", regs);

	if (unlikely(compute_return_era(regs) < 0))
		goto out;
	compute_return_era(regs);

	if (unlikely(get_user(opcode, era) < 0)) {
		status = SIGSEGV;
Loading