Commit 4764e61e authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'sh-for-5.8-part2' of git://git.libc.org/linux-sh into master

Pull arch/sh fixes from Rich Felker:
 "Two last-minute fixes: one is for a boot regression (mmu code broken)
  and the other fixes a long-standing broken syscall number bounds
  check"

* tag 'sh-for-5.8-part2' of git://git.libc.org/linux-sh:
  sh: Fix validation of system call number
  sh/tlb: Fix PGTABLE_LEVELS > 2
parents 92ed3019 04a8a3d0
Loading
Loading
Loading
Loading
+1 −9
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ extern void pgd_free(struct mm_struct *mm, pgd_t *pgd);
extern void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd);
extern pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address);
extern void pmd_free(struct mm_struct *mm, pmd_t *pmd);
#define __pmd_free_tlb(tlb, pmdp, addr)		pmd_free((tlb)->mm, (pmdp))
#endif

static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
@@ -33,13 +34,4 @@ do { \
	tlb_remove_page((tlb), (pte));			\
} while (0)

#if CONFIG_PGTABLE_LEVELS > 2
#define __pmd_free_tlb(tlb, pmdp, addr)			\
do {							\
	struct page *page = virt_to_page(pmdp);		\
	pgtable_pmd_page_dtor(page);			\
	tlb_remove_page((tlb), page);			\
} while (0);
#endif

#endif /* __ASM_SH_PGALLOC_H */
+3 −3
Original line number Diff line number Diff line
@@ -199,7 +199,7 @@ syscall_trace_entry:
	mov.l	@(OFF_R7,r15), r7   ! arg3
	mov.l	@(OFF_R3,r15), r3   ! syscall_nr
	!
	mov.l	2f, r10			! Number of syscalls
	mov.l	6f, r10			! Number of syscalls
	cmp/hs	r10, r3
	bf	syscall_call
	mov	#-ENOSYS, r0
@@ -353,7 +353,7 @@ ENTRY(system_call)
	tst	r9, r8
	bf	syscall_trace_entry
	!
	mov.l	2f, r8			! Number of syscalls
	mov.l	6f, r8			! Number of syscalls
	cmp/hs	r8, r3
	bt	syscall_badsys
	!
@@ -392,7 +392,7 @@ syscall_exit:
#if !defined(CONFIG_CPU_SH2)
1:	.long	TRA
#endif
2:	.long	NR_syscalls
6:	.long	NR_syscalls
3:	.long	sys_call_table
7:	.long	do_syscall_trace_enter
8:	.long	do_syscall_trace_leave