linux-stable/arch
Benjamin Herrenschmidt 16f1c74675 [POWERPC] Small fixes & cleanups in segment page size demotion
The code for demoting segments to 4K had some issues, like for example,
when using _PAGE_4K_PFN flag, the first CPU to hit it would do the
demotion, but other CPUs hitting the same page wouldn't properly flush
their SLBs if mmu_ci_restriction isn't set.  There are also potential
issues with hash_preload not handling _PAGE_4K_PFN.  All of these are
non issues on current hardware but might bite us in the future.

This patch thus fixes it by:

 - Taking the test comparing the mm and current CPU context page
sizes to decide to flush SLBs out of the mmu_ci_restrictions test
since that can also be triggered by _PAGE_4K_PFN pages

 - Due to the above being done all the time, demote_segment_4k
doesn't need update the context and flush the SLB

 - demote_segment_4k can be static and doesn't need an EXPORT_SYMBOL

 - Making hash_preload ignore anything that has either _PAGE_4K_PFN
or _PAGE_NO_CACHE set, thus avoiding duplication of the complicated
logic in hash_page() (and possibly making hash_preload a little bit
faster for the normal case).

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2007-05-09 16:35:00 +10:00
..
alpha utimensat implementation 2007-05-08 11:15:18 -07:00
arm Add IRQF_IRQPOLL flag on arm 2007-05-08 11:15:22 -07:00
arm26 header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
avr32 header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
blackfin blackfin architecture 2007-05-07 12:12:58 -07:00
cris dma_declare_coherent_memory wrong allocation 2007-05-08 11:15:14 -07:00
frv FRV: Miscellaneous fixes 2007-05-08 20:41:14 -07:00
h8300 header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
i386 Revert "fbdev: ignore VESA modes if framebuffer is disabled" 2007-05-08 20:12:30 -07:00
ia64 Add IRQF_IRQPOLL flag on IA64 2007-05-08 11:15:22 -07:00
m32r header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
m68k header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
m68knommu header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
mips Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2007-05-08 11:57:17 -07:00
parisc Add IRQF_IRQPOLL flag on parisc 2007-05-08 11:15:22 -07:00
powerpc [POWERPC] Small fixes & cleanups in segment page size demotion 2007-05-09 16:35:00 +10:00
ppc Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2007-05-08 11:50:19 -07:00
s390 no longer #include <asm/kdebug.h> 2007-05-08 11:15:20 -07:00
sh Add IRQF_IRQPOLL flag on sh 2007-05-08 11:15:22 -07:00
sh64 Simplify kallsyms_lookup() 2007-05-08 11:15:08 -07:00
sparc [SPARC]: Wire up utimensat syscall. 2007-05-08 17:50:14 -07:00
sparc64 [SPARC64]: Optimize fault kprobe handling just like powerpc. 2007-05-08 18:25:14 -07:00
um uml: pcap devices should get MACs from command line 2007-05-08 11:15:20 -07:00
v850 header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00
x86_64 x86, serial: convert legacy COM ports to platform devices 2007-05-08 11:15:23 -07:00
xtensa header cleaning: don't include smp_lock.h when not used 2007-05-08 11:15:07 -07:00