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

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
...@@ -12,6 +12,7 @@ extern void pgd_free(struct mm_struct *mm, pgd_t *pgd); ...@@ -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 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 pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address);
extern void pmd_free(struct mm_struct *mm, pmd_t *pmd); extern void pmd_free(struct mm_struct *mm, pmd_t *pmd);
#define __pmd_free_tlb(tlb, pmdp, addr) pmd_free((tlb)->mm, (pmdp))
#endif #endif
static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
...@@ -33,13 +34,4 @@ do { \ ...@@ -33,13 +34,4 @@ do { \
tlb_remove_page((tlb), (pte)); \ tlb_remove_page((tlb), (pte)); \
} while (0) } 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 */ #endif /* __ASM_SH_PGALLOC_H */
...@@ -199,7 +199,7 @@ syscall_trace_entry: ...@@ -199,7 +199,7 @@ syscall_trace_entry:
mov.l @(OFF_R7,r15), r7 ! arg3 mov.l @(OFF_R7,r15), r7 ! arg3
mov.l @(OFF_R3,r15), r3 ! syscall_nr 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 cmp/hs r10, r3
bf syscall_call bf syscall_call
mov #-ENOSYS, r0 mov #-ENOSYS, r0
...@@ -353,7 +353,7 @@ ENTRY(system_call) ...@@ -353,7 +353,7 @@ ENTRY(system_call)
tst r9, r8 tst r9, r8
bf syscall_trace_entry bf syscall_trace_entry
! !
mov.l 2f, r8 ! Number of syscalls mov.l 6f, r8 ! Number of syscalls
cmp/hs r8, r3 cmp/hs r8, r3
bt syscall_badsys bt syscall_badsys
! !
...@@ -392,7 +392,7 @@ syscall_exit: ...@@ -392,7 +392,7 @@ syscall_exit:
#if !defined(CONFIG_CPU_SH2) #if !defined(CONFIG_CPU_SH2)
1: .long TRA 1: .long TRA
#endif #endif
2: .long NR_syscalls 6: .long NR_syscalls
3: .long sys_call_table 3: .long sys_call_table
7: .long do_syscall_trace_enter 7: .long do_syscall_trace_enter
8: .long do_syscall_trace_leave 8: .long do_syscall_trace_leave
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