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 'powerpc-6.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux

Pull powerpc fixes from Michael Ellerman:

- Fix a false positive warning in __pte_needs_flush() (with DEBUG_VM=y)

- Fix oops when a PF_IO_WORKER thread tries to core dump

- Don't try to reconfigure VAS when it's disabled

Thanks to Benjamin Gray, Haren Myneni, Jens Axboe, Nathan Lynch, and
Russell Currey.

* tag 'powerpc-6.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
powerpc/pseries/vas: Ignore VAS update for DLPAR if copy/paste is not enabled
powerpc: Don't try to copy PPR for task with NULL pt_regs
powerpc/64s: Fix __pte_needs_flush() false positive warning

+21 -2
+7 -2
arch/powerpc/include/asm/book3s/64/tlbflush.h
··· 148 148 */ 149 149 } 150 150 151 + static inline bool __pte_protnone(unsigned long pte) 152 + { 153 + return (pte & (pgprot_val(PAGE_NONE) | _PAGE_RWX)) == pgprot_val(PAGE_NONE); 154 + } 155 + 151 156 static inline bool __pte_flags_need_flush(unsigned long oldval, 152 157 unsigned long newval) 153 158 { ··· 169 164 /* 170 165 * We do not expect kernel mappings or non-PTEs or not-present PTEs. 171 166 */ 172 - VM_WARN_ON_ONCE(oldval & _PAGE_PRIVILEGED); 173 - VM_WARN_ON_ONCE(newval & _PAGE_PRIVILEGED); 167 + VM_WARN_ON_ONCE(!__pte_protnone(oldval) && oldval & _PAGE_PRIVILEGED); 168 + VM_WARN_ON_ONCE(!__pte_protnone(newval) && newval & _PAGE_PRIVILEGED); 174 169 VM_WARN_ON_ONCE(!(oldval & _PAGE_PTE)); 175 170 VM_WARN_ON_ONCE(!(newval & _PAGE_PTE)); 176 171 VM_WARN_ON_ONCE(!(oldval & _PAGE_PRESENT));
+6
arch/powerpc/kernel/ptrace/ptrace-view.c
··· 290 290 static int ppr_get(struct task_struct *target, const struct user_regset *regset, 291 291 struct membuf to) 292 292 { 293 + if (!target->thread.regs) 294 + return -EINVAL; 295 + 293 296 return membuf_write(&to, &target->thread.regs->ppr, sizeof(u64)); 294 297 } 295 298 ··· 300 297 unsigned int pos, unsigned int count, const void *kbuf, 301 298 const void __user *ubuf) 302 299 { 300 + if (!target->thread.regs) 301 + return -EINVAL; 302 + 303 303 return user_regset_copyin(&pos, &count, &kbuf, &ubuf, 304 304 &target->thread.regs->ppr, 0, sizeof(u64)); 305 305 }
+8
arch/powerpc/platforms/pseries/vas.c
··· 856 856 { 857 857 int new_nr_creds, rc; 858 858 859 + /* 860 + * NX-GZIP is not enabled. Nothing to do for DLPAR event 861 + */ 862 + if (!copypaste_feat) 863 + return 0; 864 + 865 + 859 866 rc = h_query_vas_capabilities(H_QUERY_VAS_CAPABILITIES, 860 867 vascaps[VAS_GZIP_DEF_FEAT_TYPE].feat, 861 868 (u64)virt_to_phys(&hv_cop_caps)); ··· 1019 1012 * Linux supports user space COPY/PASTE only with Radix 1020 1013 */ 1021 1014 if (!radix_enabled()) { 1015 + copypaste_feat = false; 1022 1016 pr_err("API is supported only with radix page tables\n"); 1023 1017 return -ENOTSUPP; 1024 1018 }