android_kernel_xiaomi_sm7250/include
Benjamin Herrenschmidt a741e67969 [POWERPC] Make tlb flush batch use lazy MMU mode
The current tlb flush code on powerpc 64 bits has a subtle race since we
lost the page table lock due to the possible faulting in of new PTEs
after a previous one has been removed but before the corresponding hash
entry has been evicted, which can leads to all sort of fatal problems.

This patch reworks the batch code completely. It doesn't use the mmu_gather
stuff anymore. Instead, we use the lazy mmu hooks that were added by the
paravirt code. They have the nice property that the enter/leave lazy mmu
mode pair is always fully contained by the PTE lock for a given range
of PTEs. Thus we can guarantee that all batches are flushed on a given
CPU before it drops that lock.

We also generalize batching for any PTE update that require a flush.

Batching is now enabled on a CPU by arch_enter_lazy_mmu_mode() and
disabled by arch_leave_lazy_mmu_mode(). The code epects that this is
always contained within a PTE lock section so no preemption can happen
and no PTE insertion in that range from another CPU. When batching
is enabled on a CPU, every PTE updates that need a hash flush will
use the batch for that flush.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-04-13 04:09:38 +10:00
..
acpi Pull bugzilla-8171 into release branch 2007-03-20 11:06:00 -04:00
asm-alpha
asm-arm [ARM] 4298/1: fix memory barriers for DMA coherent and SMP platforms 2007-04-01 22:38:36 +01:00
asm-arm26
asm-avr32 [PATCH] gpio_direction_output() needs an initial value 2007-03-16 19:25:04 -07:00
asm-cris
asm-frv [PATCH] FRV: Add some missng lazy MMU hooks for NOMMU mode 2007-03-01 14:53:36 -08:00
asm-generic [PATCH] Proper fix for highmem kmap_atomic functions for VMI for 2.6.21 2007-04-08 19:47:55 -07:00
asm-h8300
asm-i386 [PATCH] Proper fix for highmem kmap_atomic functions for VMI for 2.6.21 2007-04-08 19:47:55 -07:00
asm-ia64 [IA64] SGI Altix : fix pcibr_dmamap_ate32() bug 2007-04-06 15:38:12 -07:00
asm-m32r [PATCH] m32r dma-mapping.h should simply include generic/dma-mapping-broken.h 2007-03-14 15:27:49 -07:00
asm-m68k [PATCH] m68k dma-mapping: gfp_t annotations 2007-03-14 15:27:51 -07:00
asm-m68knommu [PATCH] m68knommu: GPIO line defines for the ColdFire 5282 2007-03-06 18:08:38 -08:00
asm-mips [MIPS] SMTC: Fix recursion in instant IPI replay code. 2007-03-29 23:46:36 +01:00
asm-parisc Merge master.kernel.org:/pub/scm/linux/kernel/git/kyle/parisc-2.6 2007-02-26 12:48:06 -08:00
asm-powerpc [POWERPC] Make tlb flush batch use lazy MMU mode 2007-04-13 04:09:38 +10:00
asm-ppc [POWERPC] Rename get_property to of_get_property 2007-04-13 03:55:17 +10:00
asm-s390 [S390] Fix TCP/UDP pseudo header checksum computation. 2007-03-26 20:43:46 +02:00
asm-sh sh: Trivial fix for hp6xx build. 2007-03-28 19:45:59 +09:00
asm-sh64
asm-sparc [SPARC]: Add unsigned to unused bit field in a.out.h 2007-04-02 14:26:21 -07:00
asm-sparc64 [SPARC]: Add unsigned to unused bit field in a.out.h 2007-04-02 14:26:21 -07:00
asm-um [PATCH] uml: fix unreasonably long udelay 2007-04-02 10:06:08 -07:00
asm-v850
asm-x86_64 [PATCH] x86_64 irq: Fix comments after changing IRQ0_VECTOR from 0x20 to 0x30 2007-03-29 08:16:23 -07:00
asm-xtensa
crypto
keys
linux Merge branch 'linux-2.6' into for-2.6.22 2007-04-13 03:50:03 +10:00
math-emu
media V4L/DVB (5441): Saa7146: Fix allocation of clipping memory 2007-03-27 08:45:56 -03:00
mtd
net [IFB]: Fix crash on input device removal 2007-03-29 11:46:52 -07:00
pcmcia
rdma
rxrpc
scsi Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6 2007-02-19 13:32:28 -08:00
sound [ALSA] version 1.0.14rc3 2007-03-14 08:25:52 +01:00
video
Kbuild