1. 15 Mar, 2024 5 commits
  2. 14 Mar, 2024 3 commits
  3. 13 Mar, 2024 4 commits
  4. 12 Mar, 2024 9 commits
  5. 29 Feb, 2024 2 commits
  6. 28 Feb, 2024 2 commits
  7. 23 Feb, 2024 2 commits
  8. 17 Feb, 2024 2 commits
  9. 16 Feb, 2024 1 commit
  10. 15 Feb, 2024 5 commits
  11. 25 Jan, 2024 3 commits
  12. 24 Jan, 2024 2 commits
    • Clément Léger's avatar
      riscv: blacklist assembly symbols for kprobe · 5014396a
      Clément Léger authored
      Adding kprobes on some assembly functions (mainly exception handling)
      will result in crashes (either recursive trap or panic). To avoid such
      errors, add ASM_NOKPROBE() macro which allow adding specific symbols
      into the __kprobe_blacklist section and use to blacklist the following
      symbols that showed to be problematic:
      - handle_exception()
      - ret_from_exception()
      - handle_kernel_stack_overflow()
      Signed-off-by: default avatarClément Léger <cleger@rivosinc.com>
      Reviewed-by: default avatarCharlie Jenkins <charlie@rivosinc.com>
      Link: https://lore.kernel.org/r/20231004131009.409193-1-cleger@rivosinc.comSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      5014396a
    • Palmer Dabbelt's avatar
      Merge patch series "riscv: support fast gup" · 7f43d57b
      Palmer Dabbelt authored
      Jisheng Zhang <jszhang@kernel.org> says:
      
      This series adds fast gup support to riscv.
      
      The First patch fixes a bug in __p*d_free_tlb(). Per the riscv
      privileged spec, if non-leaf PTEs I.E pmd, pud or p4d is modified, a
      sfence.vma is a must.
      
      The 2nd patch is a preparation patch.
      
      The last two patches do the real work:
      In order to implement fast gup we need to ensure that the page
      table walker is protected from page table pages being freed from
      under it.
      
      riscv situation is more complicated than other architectures: some
      riscv platforms may use IPI to perform TLB shootdown, for example,
      those platforms which support AIA, usually the riscv_ipi_for_rfence is
      true on these platforms; some riscv platforms may rely on the SBI to
      perform TLB shootdown, usually the riscv_ipi_for_rfence is false on
      these platforms. To keep software pagetable walkers safe in this case
      we switch to RCU based table free (MMU_GATHER_RCU_TABLE_FREE). See the
      comment below 'ifdef CONFIG_MMU_GATHER_RCU_TABLE_FREE' in
      include/asm-generic/tlb.h for more details.
      
      This patch enables MMU_GATHER_RCU_TABLE_FREE, then use
      
      *tlb_remove_page_ptdesc() for those platforms which use IPI to perform
      TLB shootdown;
      
      *tlb_remove_ptdesc() for those platforms which use SBI to perform TLB
      shootdown;
      
      Both case mean that disabling interrupts will block the free and
      protect the fast gup page walker.
      
      So after the 3rd patch, everything is well prepared, let's select
      HAVE_FAST_GUP if MMU.
      
      * b4-shazam-merge:
        riscv: enable HAVE_FAST_GUP if MMU
        riscv: enable MMU_GATHER_RCU_TABLE_FREE for SMP && MMU
        riscv: tlb: convert __p*d_free_tlb() to inline functions
        riscv: tlb: fix __p*d_free_tlb()
      
      Link: https://lore.kernel.org/r/20231219175046.2496-1-jszhang@kernel.orgSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
      7f43d57b