linux/arch/microblaze
Will Deacon bf91097cd5 mmu_gather: move minimal range calculations into generic code
[ Upstream commit 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>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
History 2015-03-28 09:22:01 -04:00
..
boot microblaze: Move DTS file to common location at boot/dts folder 2014-04-07 13:45:19 +02:00
configs microblaze: Enable SERIAL_OF_PLATFORM 2014-06-04 06:59:46 +02:00
include mmu_gather: move minimal range calculations into generic code 2015-03-28 09:22:01 -04:00
kernel microblaze: Wire up bpf syscall 2014-10-27 09:25:34 +01:00
lib microblaze: Change libgcc-style functions from lib-y to obj-y 2014-07-18 14:26:09 +02:00
mm vm: add VM_FAULT_SIGSEGV handling support 2015-02-05 22:36:01 -08:00
oprofile microblaze: Core oprofile configs and hooks 2009-12-14 08:45:07 +01:00
pci microblaze: Fix IO space breakage after of_pci_range_to_resource() change 2014-10-27 08:29:54 +01:00
Kconfig microblaze: Fix missing NR_CPUS in menuconfig 2014-10-27 08:29:54 +01:00
Kconfig.debug microblaze: remove obsolete DEBUG_BOOTMEM 2011-01-10 09:29:51 +01:00
Kconfig.platform microblaze: Remove platform folder 2014-04-07 13:45:21 +02:00
Makefile microblaze: Remove platform folder 2014-04-07 13:45:21 +02:00