mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-23 03:59:55 +07:00
fb7332a9fe
On architectures with hardware broadcasting of TLB invalidation messages , it makes sense to reduce the range of the mmu_gather structure when unmapping page ranges based on the dirty address information passed to tlb_remove_tlb_entry. arm64 already does this by directly manipulating the start/end fields of the gather structure, but this confuses the generic code which does not expect these fields to change and can end up calculating invalid, negative ranges when forcing a flush in zap_pte_range. This patch moves the minimal range calculation out of the arm64 code and into the generic implementation, simplifying zap_pte_range in the process (which no longer needs to care about start/end, since they will point to the appropriate ranges already). With the range being tracked by core code, the need_flush flag is dropped in favour of checking that the end of the range has actually been set. Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Russell King - ARM Linux <linux@arm.linux.org.uk> Cc: Michal Simek <monstr@monstr.eu> Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Will Deacon <will.deacon@arm.com> |
||
---|---|---|
.. | ||
asm-compat.h | ||
asm-offsets.h | ||
atomic.h | ||
bitops.h | ||
bug.h | ||
bugs.h | ||
cache.h | ||
cacheflush.h | ||
checksum.h | ||
cmpxchg.h | ||
cpuinfo.h | ||
cputable.h | ||
current.h | ||
delay.h | ||
div64.h | ||
dma-mapping.h | ||
dma.h | ||
elf.h | ||
emergency-restart.h | ||
entry.h | ||
exceptions.h | ||
fb.h | ||
fixmap.h | ||
flat.h | ||
ftrace.h | ||
futex.h | ||
gpio.h | ||
hardirq.h | ||
highmem.h | ||
hw_irq.h | ||
io.h | ||
irq_regs.h | ||
irq.h | ||
irqflags.h | ||
Kbuild | ||
kdebug.h | ||
kgdb.h | ||
kmap_types.h | ||
linkage.h | ||
local64.h | ||
local.h | ||
mmu_context_mm.h | ||
mmu_context.h | ||
mmu.h | ||
module.h | ||
mutex.h | ||
page.h | ||
parport.h | ||
pci-bridge.h | ||
pci.h | ||
percpu.h | ||
pgalloc.h | ||
pgtable.h | ||
processor.h | ||
prom.h | ||
ptrace.h | ||
pvr.h | ||
registers.h | ||
seccomp.h | ||
sections.h | ||
serial.h | ||
setup.h | ||
shmparam.h | ||
string.h | ||
switch_to.h | ||
syscall.h | ||
thread_info.h | ||
timex.h | ||
tlb.h | ||
tlbflush.h | ||
topology.h | ||
uaccess.h | ||
ucontext.h | ||
unaligned.h | ||
unistd.h | ||
unwind.h | ||
user.h | ||
vga.h | ||
xor.h |