Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

Pull arm64 fixes from Catalin Marinas:

- re-introduce the arm64 get_current() optimisation

- KERN_CONT fallout fix in show_pte()

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
arm64: restore get_current() optimisation
arm64: mm: fix show_pte KERN_CONT fallout

+13 -5
+9 -1
arch/arm64/include/asm/current.h
··· 9 9 10 10 struct task_struct; 11 11 12 + /* 13 + * We don't use read_sysreg() as we want the compiler to cache the value where 14 + * possible. 15 + */ 12 16 static __always_inline struct task_struct *get_current(void) 13 17 { 14 - return (struct task_struct *)read_sysreg(sp_el0); 18 + unsigned long sp_el0; 19 + 20 + asm ("mrs %0, sp_el0" : "=r" (sp_el0)); 21 + 22 + return (struct task_struct *)sp_el0; 15 23 } 16 24 17 25 #define current get_current()
+4 -4
arch/arm64/mm/fault.c
··· 88 88 break; 89 89 90 90 pud = pud_offset(pgd, addr); 91 - printk(", *pud=%016llx", pud_val(*pud)); 91 + pr_cont(", *pud=%016llx", pud_val(*pud)); 92 92 if (pud_none(*pud) || pud_bad(*pud)) 93 93 break; 94 94 95 95 pmd = pmd_offset(pud, addr); 96 - printk(", *pmd=%016llx", pmd_val(*pmd)); 96 + pr_cont(", *pmd=%016llx", pmd_val(*pmd)); 97 97 if (pmd_none(*pmd) || pmd_bad(*pmd)) 98 98 break; 99 99 100 100 pte = pte_offset_map(pmd, addr); 101 - printk(", *pte=%016llx", pte_val(*pte)); 101 + pr_cont(", *pte=%016llx", pte_val(*pte)); 102 102 pte_unmap(pte); 103 103 } while(0); 104 104 105 - printk("\n"); 105 + pr_cont("\n"); 106 106 } 107 107 108 108 #ifdef CONFIG_ARM64_HW_AFDBM