mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-18 15:54:25 +00:00
Pull RISC-V updates from Palmer Dabbelt:
- Support for various vector-accelerated crypto routines
- Hibernation is now enabled for portable kernel builds
- mmap_rnd_bits_max is larger on systems with larger VAs
- Support for fast GUP
- Support for membarrier-based instruction cache synchronization
- Support for the Andes hart-level interrupt controller and PMU
- Some cleanups around unaligned access speed probing and Kconfig
settings
- Support for ACPI LPI and CPPC
- Various cleanus related to barriers
- A handful of fixes
* tag 'riscv-for-linus-6.9-mw2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (66 commits)
riscv: Fix syscall wrapper for >word-size arguments
crypto: riscv - add vector crypto accelerated AES-CBC-CTS
crypto: riscv - parallelize AES-CBC decryption
riscv: Only flush the mm icache when setting an exec pte
riscv: Use kcalloc() instead of kzalloc()
riscv/barrier: Add missing space after ','
riscv/barrier: Consolidate fence definitions
riscv/barrier: Define RISCV_FULL_BARRIER
riscv/barrier: Define __{mb,rmb,wmb}
RISC-V: defconfig: Enable CONFIG_ACPI_CPPC_CPUFREQ
cpufreq: Move CPPC configs to common Kconfig and add RISC-V
ACPI: RISC-V: Add CPPC driver
ACPI: Enable ACPI_PROCESSOR for RISC-V
ACPI: RISC-V: Add LPI driver
cpuidle: RISC-V: Move few functions to arch/riscv
riscv: Introduce set_compat_task() in asm/compat.h
riscv: Introduce is_compat_thread() into compat.h
riscv: add compile-time test into is_compat_task()
riscv: Replace direct thread flag check with is_compat_task()
riscv: Improve arch_get_mmap_end() macro
...
46 lines
1.1 KiB
C
46 lines
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (C) 2012 Regents of the University of California
|
|
*/
|
|
|
|
#ifndef _ASM_RISCV_TLB_H
|
|
#define _ASM_RISCV_TLB_H
|
|
|
|
struct mmu_gather;
|
|
|
|
static void tlb_flush(struct mmu_gather *tlb);
|
|
|
|
#ifdef CONFIG_MMU
|
|
#include <linux/swap.h>
|
|
|
|
/*
|
|
* While riscv platforms with riscv_ipi_for_rfence as true require an IPI to
|
|
* perform TLB shootdown, some platforms with riscv_ipi_for_rfence as false use
|
|
* SBI to perform TLB shootdown. 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.
|
|
*/
|
|
static inline void __tlb_remove_table(void *table)
|
|
{
|
|
free_page_and_swap_cache(table);
|
|
}
|
|
|
|
#endif /* CONFIG_MMU */
|
|
|
|
#define tlb_flush tlb_flush
|
|
#include <asm-generic/tlb.h>
|
|
|
|
static inline void tlb_flush(struct mmu_gather *tlb)
|
|
{
|
|
#ifdef CONFIG_MMU
|
|
if (tlb->fullmm || tlb->need_flush_all || tlb->freed_tables)
|
|
flush_tlb_mm(tlb->mm);
|
|
else
|
|
flush_tlb_mm_range(tlb->mm, tlb->start, tlb->end,
|
|
tlb_get_unmap_size(tlb));
|
|
#endif
|
|
}
|
|
|
|
#endif /* _ASM_RISCV_TLB_H */
|