android_kernel_xiaomi_sm8350/arch/powerpc/mm
Benjamin Herrenschmidt 8d8997f34e powerpc/mm: Fix hang accessing top of vmalloc space
On pSeries, we always force the IO space to be mapped using 4K
pages even with a 64K base page size to cope with some limitations
in the HV interface to some devices.

However, the SLB miss handler code to discriminate between vmalloc
and ioremap space uses a CPU feature section such that the code
is nop'ed out when the processor support large pages non-cachable
mappings.

Thus, we end up always using the ioremap page size for vmalloc
segments on such processors, causing a discrepency between the
segment and the hash table, and thus a hang continously hashing
the page.

It works for the first segment of the vmalloc space since that
segment is "bolted" in by C code correctly, and thankfully we
almost never use the vmalloc space beyond the first segment,
but the new percpu code made the bug happen.

This fixes it by removing the feature section from the assembly,
we now always do the comparison between vmalloc and ioremap.

Signed-off-by; Benjamin Herrenschmidt <benh@kernel.crashing.org>

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2009-10-14 16:58:36 +11:00
..
40x_mmu.c powerpc/mm: Cleanup handling of execute permission 2009-08-27 13:12:51 +10:00
44x_mmu.c
dma-noncoherent.c
fault.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
fsl_booke_mmu.c powerpc/fsl-booke: read buffer overflow 2009-08-20 10:27:12 +10:00
gup.c powerpc: Use pr_devel() in arch/powerpc/mm/gup.c 2009-07-08 13:50:23 +10:00
hash_low_32.S powerpc: Use names rather than numbers for SPRGs (v2) 2009-08-20 10:12:27 +10:00
hash_low_64.S
hash_native_64.c
hash_utils_64.c
highmem.c
hugetlbpage.c powerpc: Add memory management headers for new 64-bit BookE 2009-08-20 10:25:06 +10:00
init_32.c kcore: use registerd physmem information 2009-09-23 07:39:41 -07:00
init_64.c kcore: use registerd physmem information 2009-09-23 07:39:41 -07:00
Makefile powerpc: Remaining 64-bit Book3E support 2009-08-20 10:25:11 +10:00
mem.c walk system ram range 2009-09-23 07:39:41 -07:00
mmap_64.c
mmu_context_hash32.c
mmu_context_hash64.c
mmu_context_nohash.c powerpc/mm: Fix switch_mmu_context to iterate of the proper list of cpus 2009-08-20 10:25:12 +10:00
mmu_decl.h powerpc/mm: Add support for SPARSEMEM_VMEMMAP on 64-bit Book3E 2009-08-20 10:25:10 +10:00
numa.c
pgtable_32.c powerpc/mm: Cleanup handling of execute permission 2009-08-27 13:12:51 +10:00
pgtable_64.c powerpc/mm: Add support for SPARSEMEM_VMEMMAP on 64-bit Book3E 2009-08-20 10:25:10 +10:00
pgtable.c powerpc/8xx: Fix regression introduced by cache coherency rewrite 2009-09-24 15:56:30 +10:00
ppc_mmu_32.c
slb_low.S powerpc/mm: Fix hang accessing top of vmalloc space 2009-10-14 16:58:36 +11:00
slb.c powerpc/pseries: Fix to handle slb resize across migration 2009-09-02 16:19:01 +10:00
slice.c
stab.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2009-09-15 09:39:44 -07:00
subpage-prot.c
tlb_hash32.c powerpc/mm: Rework & cleanup page table freeing code path 2009-08-20 10:24:56 +10:00
tlb_hash64.c powerpc/mm: Move around mmu_gathers definition on 64-bit 2009-08-20 10:25:09 +10:00
tlb_low_64e.S powerpc/mm: Remove duplicated #include 2009-09-24 15:31:42 +10:00
tlb_nohash_low.S powerpc/booke: Move MMUCSR definition into mmu-book3e.h 2009-08-24 20:48:05 -05:00
tlb_nohash.c powerpc/mm: Add support for SPARSEMEM_VMEMMAP on 64-bit Book3E 2009-08-20 10:25:10 +10:00