Merge tag 'loongarch-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 8 Sep 2023 19:16:52 +0000 (12:16 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 8 Sep 2023 19:16:52 +0000 (12:16 -0700)
Pull LoongArch updates from Huacai Chen:

 - Allow usage of LSX/LASX in the kernel, and use them for
   SIMD-optimized RAID5/RAID6 routines

 - Add Loongson Binary Translation (LBT) extension support

 - Add basic KGDB & KDB support

 - Add building with kcov coverage

 - Add KFENCE (Kernel Electric-Fence) support

 - Add KASAN (Kernel Address Sanitizer) support

 - Some bug fixes and other small changes

 - Update the default config file

* tag 'loongarch-6.6' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson: (25 commits)
  LoongArch: Update Loongson-3 default config file
  LoongArch: Add KASAN (Kernel Address Sanitizer) support
  LoongArch: Simplify the processing of jumping new kernel for KASLR
  kasan: Add (pmd|pud)_init for LoongArch zero_(pud|p4d)_populate process
  kasan: Add __HAVE_ARCH_SHADOW_MAP to support arch specific mapping
  LoongArch: Add KFENCE (Kernel Electric-Fence) support
  LoongArch: Get partial stack information when providing regs parameter
  LoongArch: mm: Add page table mapped mode support for virt_to_page()
  kfence: Defer the assignment of the local variable addr
  LoongArch: Allow building with kcov coverage
  LoongArch: Provide kaslr_offset() to get kernel offset
  LoongArch: Add basic KGDB & KDB support
  LoongArch: Add Loongson Binary Translation (LBT) extension support
  raid6: Add LoongArch SIMD recovery implementation
  raid6: Add LoongArch SIMD syndrome calculation
  LoongArch: Add SIMD-optimized XOR routines
  LoongArch: Allow usage of LSX/LASX in the kernel
  LoongArch: Define symbol 'fault' as a local label in fpu.S
  LoongArch: Adjust {copy, clear}_user exception handler behavior
  LoongArch: Use static defined zero page rather than allocated
  ...

1  2 
arch/loongarch/Kconfig
arch/loongarch/include/asm/pgalloc.h
arch/loongarch/include/asm/pgtable.h
arch/loongarch/kernel/process.c
arch/loongarch/mm/pgtable.c
mm/kfence/core.c

Simple merge
Simple merge
Simple merge
Simple merge
@@@ -9,13 -9,24 +9,25 @@@
  #include <asm/pgtable.h>
  #include <asm/tlbflush.h>
  
+ struct page *dmw_virt_to_page(unsigned long kaddr)
+ {
+       return pfn_to_page(virt_to_pfn(kaddr));
+ }
+ EXPORT_SYMBOL_GPL(dmw_virt_to_page);
+ struct page *tlb_virt_to_page(unsigned long kaddr)
+ {
+       return pfn_to_page(pte_pfn(*virt_to_kpte(kaddr)));
+ }
+ EXPORT_SYMBOL_GPL(tlb_virt_to_page);
  pgd_t *pgd_alloc(struct mm_struct *mm)
  {
 -      pgd_t *ret, *init;
 +      pgd_t *init, *ret = NULL;
 +      struct ptdesc *ptdesc = pagetable_alloc(GFP_KERNEL & ~__GFP_HIGHMEM, 0);
  
 -      ret = (pgd_t *) __get_free_page(GFP_KERNEL);
 -      if (ret) {
 +      if (ptdesc) {
 +              ret = (pgd_t *)ptdesc_address(ptdesc);
                init = pgd_offset(&init_mm, 0UL);
                pgd_init(ret);
                memcpy(ret + USER_PTRS_PER_PGD, init + USER_PTRS_PER_PGD,
Simple merge