David Gibson
86df864249
Correct hash flushing from huge_ptep_set_wrprotect()
...
As Andy Whitcroft recently pointed out, the current powerpc version of
huge_ptep_set_wrprotect() has a bug. It just calls ptep_set_wrprotect()
which in turn calls pte_update() then hpte_need_flush() with the 'huge'
argument set to 0. This will cause hpte_need_flush() to flush the wrong
hash entries (of any). Andy's fix for this is already in the powerpc
tree as commit 016b33c495 .
I have confirmed this is a real bug, not masked by some other
synchronization, with a new testcase for libhugetlbfs. A process write
a (MAP_PRIVATE) hugepage mapping, fork(), then alter the mapping and
have the child incorrectly see the second write.
Therefore, this should be fixed for 2.6.26, and for the stable tree.
Here is a suitable patch for 2.6.26, which I think will also be suitable
for the stable tree (neither of the headers in question has been changed
much recently).
It is cut down slighlty from Andy's original version, in that it does
not include a 32-bit version of huge_ptep_set_wrprotect(). Currently,
hugepages are not supported on any 32-bit powerpc platform. When they
are, a suitable 32-bit version can be added - the only 32-bit hardware
which supports hugepages does not use the conventional hashtable MMU and
so will have different needs anyway.
Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-07-08 09:27:58 -07:00
..
iseries
[POWERPC] iSeries: Localise and constify some iSeries data
2008-04-15 21:21:25 +10:00
8xx_immap.h
[POWERPC] include/asm-powerpc/: Spelling fixes
2007-12-20 16:17:44 +11:00
8253pit.h
a.out.h
aout: move STACK_TOP[_MAX] to asm/processor.h
2008-02-08 09:22:29 -08:00
abs_addr.h
[LIB]: Make PowerPC LMB code generic so sparc64 can use it too.
2008-02-13 16:56:49 -08:00
agp.h
x86: remove flush_agp_mappings()
2008-01-30 13:34:07 +01:00
asm-compat.h
atomic.h
[POWERPC] Implement atomic{, 64}_{read, write}() without volatile
2007-08-17 11:01:58 +10:00
auxvec.h
backlight.h
bitops.h
generic: implement __fls on all 64-bit archs
2008-04-26 19:21:16 +02:00
bootx.h
btext.h
bug.h
Fix WARN_ON() on bitfield ops
2007-07-31 21:12:07 -07:00
bugs.h
byteorder.h
cache.h
[POWERPC] Add __read_mostly support for powerpc
2007-07-10 22:00:56 +10:00
cacheflush.h
cell-pmu.h
cell-regs.h
[POWERPC] cell: Add Cell memory controller register defs and expose it
2007-10-09 21:01:56 +10:00
checksum.h
clk_interface.h
[POWERPC] clk.h interface for platforms
2007-10-03 09:11:56 +10:00
compat.h
asm-*/compat.h: fix typo in comment
2008-02-03 16:32:51 +02:00
cpm.h
[POWERPC] CPM: Move opcodes common to CPM1 and CPM2 to include/asm-powerpc/cpm.h
2008-04-17 01:01:37 -05:00
cpm1.h
[POWERPC] CPM: Move opcodes common to CPM1 and CPM2 to include/asm-powerpc/cpm.h
2008-04-17 01:01:37 -05:00
cpm2.h
[POWERPC] CPM: Move opcodes common to CPM1 and CPM2 to include/asm-powerpc/cpm.h
2008-04-17 01:01:37 -05:00
cputable.h
[POWERPC] Made FSL Book-E PMC support more generic
2008-02-05 23:34:14 -06:00
cputhreads.h
[POWERPC] Fix thinko in cpu_thread_mask_to_cores()
2008-02-26 22:17:03 +11:00
cputime.h
taskstats scaled time cleanup
2008-02-06 10:41:00 -08:00
current.h
dbdma.h
dcr-mmio.h
Use dcr_host_t.base in dcr_unmap()
2007-10-15 14:29:49 -04:00
dcr-native.h
[POWERPC] 4xx: Add dcri_clrset() for locked read/modify/write functionality
2008-03-26 07:20:38 -05:00
dcr-regs.h
[POWERPC] 4xx: Add PPC4xx L2-cache support (440GX)
2008-03-26 07:27:54 -05:00
dcr.h
delay.h
device.h
div64.h
dma-mapping.h
[POWERPC] Add set_dma_ops() to match get_dma_ops()
2008-01-31 12:11:09 +11:00
dma.h
scheduled OSS driver removal
2008-02-06 10:41:02 -08:00
edac.h
eeh.h
eeh_event.h
elf.h
[POWERPC] Switch to generic compat_binfmt_elf code
2008-02-07 20:40:18 +11:00
emergency-restart.h
errno.h
exception.h
[POWERPC] irqtrace support for 64-bit powerpc
2008-04-18 15:38:47 +10:00
fb.h
fbdev: detect primary display device
2007-07-17 10:23:11 -07:00
fcntl.h
firmware.h
[POWERPC] celleb: Add support for native CBE
2007-12-11 13:34:40 +11:00
fixmap.h
[POWERPC] Port fixmap from x86 and use for kmap_atomic
2008-04-24 20:58:02 +10:00
floppy.h
cleanup floppy.h
2007-10-17 08:42:55 -07:00
fs_pd.h
[POWERPC] 85xx: Killed <asm/mpc85xx.h>
2007-10-11 09:14:31 -05:00
fsl_lbc.h
[POWERPC] fsl_lbc: implement few UPM routines
2008-04-17 01:01:38 -05:00
futex.h
asm-*/futex.h should include linux/uaccess.h
2008-04-30 08:29:52 -07:00
gpio.h
[POWERPC] Implement support for the GPIO LIB API
2008-04-17 07:46:11 +10:00
grackle.h
hardirq.h
heathrow.h
highmem.h
[POWERPC] Port fixmap from x86 and use for kmap_atomic
2008-04-24 20:58:02 +10:00
hugetlb.h
Correct hash flushing from huge_ptep_set_wrprotect()
2008-07-08 09:27:58 -07:00
hvcall.h
[POWERPC] Add H_ILLAN_ATTRIBUTES hcall number
2007-07-11 13:24:40 +10:00
hvconsole.h
hvcserver.h
hw_irq.h
[POWERPC] irqtrace support for 64-bit powerpc
2008-04-18 15:38:47 +10:00
hydra.h
[POWERPC] Copy over headers from arch/ppc to arch/powerpc that we need
2007-08-22 22:43:29 -05:00
i8259.h
ibmebus.h
[POWERPC] ibmebus: Move to of_device and of_platform_driver, match eHCA and eHEA drivers
2007-10-17 22:30:08 +10:00
ide.h
ide: remove ide_init_default_irq() macro
2008-04-18 00:46:35 +02:00
immap_86xx.h
[POWERPC] 86xx: fix guts_set_dmacr() and add guts_set_pmuxcr_dma() to immap_86xx.h
2007-12-11 13:57:18 -06:00
immap_cpm2.h
[POWERPC] cpm2: Infrastructure code cleanup.
2007-10-04 11:02:04 -05:00
immap_qe.h
[POWERPC] QE: immap_qe.h should include asm/io.h
2008-04-17 01:01:39 -05:00
io-defs.h
[POWERPC] cell: Generalize io-workarounds code
2008-04-24 21:08:12 +10:00
io.h
[POWERPC] Add "memory" clobber to MMIO accessors
2008-05-31 17:08:28 +10:00
ioctl.h
ioctls.h
iommu.h
iommu sg: powerpc: convert iommu to use the IOMMU helper
2008-02-05 09:44:11 -08:00
ipcbuf.h
ipic.h
[POWERPC] ipic: add new interrupts introduced by new chip
2007-12-11 13:57:18 -06:00
irq.h
proper __do_softirq() prototype
2008-04-29 08:06:02 -07:00
irq_regs.h
irqflags.h
[POWERPC] irqtrace support for 64-bit powerpc
2008-04-18 15:38:47 +10:00
Kbuild
kbuild: fix a.out.h export to userspace with O= build.
2008-06-27 23:13:54 +02:00
kdebug.h
x86: optimize page faults like all other achitectures and kill notifier cruft
2007-10-16 09:42:50 -07:00
kdump.h
[POWERPC] 85xx: Add support for relocatable kernel (and booting at non-zero)
2008-04-24 20:58:01 +10:00
kexec.h
[POWERPC] kdump shutdown hook support
2008-01-25 22:52:50 +11:00
keylargo.h
kgdb.h
[POWERPC] Copy over headers from arch/ppc to arch/powerpc that we need
2007-08-22 22:43:29 -05:00
kmap_types.h
kprobes.h
Kprobes: indicate kretprobe support in Kconfig
2008-03-04 16:35:11 -08:00
kvm.h
KVM: ppc: PowerPC 440 KVM implementation
2008-04-27 18:21:39 +03:00
kvm_asm.h
KVM: ppc: PowerPC 440 KVM implementation
2008-04-27 18:21:39 +03:00
kvm_host.h
KVM: ppc: Handle guest idle by emulating MSR[WE] writes
2008-05-04 14:44:44 +03:00
kvm_para.h
KVM: ppc: PowerPC 440 KVM implementation
2008-04-27 18:21:39 +03:00
kvm_ppc.h
KVM: ppc: Remove duplicate function
2008-06-06 21:22:09 +03:00
libata-portmap.h
linkage.h
lmb.h
[POWERPC] Use lowmem_end_addr to limit lmb allocations on ppc32
2008-04-17 07:46:13 +10:00
local.h
local_t: powerpc extension
2007-05-08 11:15:20 -07:00
lppaca.h
[POWERPC] Donate idle CPU cycles on dedicated partitions
2007-06-14 22:29:58 +10:00
lv1call.h
[POWERPC] PS3: System-bus rework
2007-06-28 19:16:38 +10:00
machdep.h
[POWERPC] Remove unused machine call outs
2008-04-17 10:01:00 +10:00
macio.h
[POWERPC] replace asm/of_device.h with linux/of_device.h in macio.h
2008-04-15 21:21:26 +10:00
mc146818rtc.h
mediabay.h
[POWERPC] Build fix for drivers/macintosh/mediabay.c
2008-06-16 15:00:47 +10:00
mman.h
mmu-8xx.h
[POWERPC] Move phys_addr_t definition into asm/types.h
2008-04-17 07:46:14 +10:00
mmu-40x.h
[POWERPC] Move phys_addr_t definition into asm/types.h
2008-04-17 07:46:14 +10:00
mmu-44x.h
ppc: Export tlb_44x_hwater for KVM
2008-04-27 18:21:37 +03:00
mmu-fsl-booke.h
[POWERPC] Move phys_addr_t definition into asm/types.h
2008-04-17 07:46:14 +10:00
mmu-hash32.h
[POWERPC] Move phys_addr_t definition into asm/types.h
2008-04-17 07:46:14 +10:00
mmu-hash64.h
[POWERPC] vmemmap fixes to use smaller pages
2008-05-15 20:49:25 +10:00
mmu.h
[POWERPC] 40x MMU
2007-08-20 07:28:48 -05:00
mmu_context.h
remove asm/bitops.h includes
2007-10-19 11:53:41 -07:00
mmzone.h
[POWERPC] We don't define CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID
2007-05-10 21:28:13 +10:00
module.h
mpc8xx.h
[POWERPC] 8xx: Get rid of conditional includes of board specific setup
2008-01-28 08:31:04 -06:00
mpc52xx.h
[POWERPC] Add common clock setting routine mpc52xx_psc_set_clkdiv()
2008-01-26 15:32:18 -07:00
mpc52xx_psc.h
[POWERPC] mpc512x: Add MPC512x PSC support to MPC52xx psc driver
2008-02-06 14:05:40 -07:00
mpc86xx.h
[POWERPC] kill isa_{io,mem}_base definitions for !PCI
2007-06-29 01:56:43 -05:00
mpc512x.h
[POWERPC] mpc512x: Basic platform support
2008-02-06 14:03:10 -07:00
mpc8260.h
[POWERPC] 82xx: Embedded Planet EP8248E support
2008-01-23 19:34:43 -06:00
mpic.h
[POWERPC] mpic: Fix use of uninitialized variable
2008-05-23 16:15:37 +10:00
msgbuf.h
mutex.h
namei.h
nvram.h
include/asm-powerpc/nvram.h needs list.h
2008-02-05 09:44:08 -08:00
of_device.h
[POWERPC] Move of_device allocation into of_device.[ch]
2007-10-17 22:30:07 +10:00
of_platform.h
[POWERPC] Enable RTC for Ebony and Walnut (v2)
2008-01-25 07:07:26 -06:00
ohare.h
oprofile_impl.h
[POWERPC] Made FSL Book-E PMC support more generic
2008-02-05 23:34:14 -06:00
paca.h
[POWERPC] Raise the upper limit of NR_CPUS and move the pacas into the BSS
2008-04-24 20:58:04 +10:00
page.h
[POWERPC] 85xx: Add support for relocatable kernel (and booting at non-zero)
2008-04-24 20:58:01 +10:00
page_32.h
[POWERPC] 85xx: Add support for relocatable kernel (and booting at non-zero)
2008-04-24 20:58:01 +10:00
page_64.h
hugetlbfs: architecture header cleanup
2008-04-28 08:58:25 -07:00
param.h
parport.h
pasemi_dma.h
pasemi_mac: jumbo frame support
2008-03-05 16:34:39 -06:00
pci-bridge.h
[POWERPC] Make pci_bus_to_host()'s struct pci_bus * argument const
2008-04-18 15:37:14 +10:00
pci.h
[POWERPC] Merge PCI resource allocation & assignment
2007-12-20 16:18:09 +11:00
percpu.h
percpu: fix DEBUG_PREEMPT per_cpu checking
2008-02-23 12:09:28 -08:00
pgalloc-32.h
CONFIG_HIGHPTE vs. sub-page page tables.
2008-02-08 09:22:42 -08:00
pgalloc-64.h
CONFIG_HIGHPTE vs. sub-page page tables.
2008-02-08 09:22:42 -08:00
pgalloc.h
pgtable-4k.h
[POWERPC] Size swapper_pg_dir correctly
2007-09-19 15:25:34 +10:00
pgtable-64k.h
[POWERPC] Provide a way to protect 4k subpages when using 64k pages
2008-01-24 10:06:01 +11:00
pgtable-ppc32.h
[POWERPC] 4xx: Fix problem with new TLB storage attibute fields on 440x6 core
2008-05-06 10:36:20 -05:00
pgtable-ppc64.h
Correct hash flushing from huge_ptep_set_wrprotect()
2008-07-08 09:27:58 -07:00
pgtable.h
[POWERPC] Start factoring pgtable-ppc32.h and pgtable-ppc64.h
2007-06-14 22:30:15 +10:00
phyp_dump.h
[POWERPC] pseries/phyp dump: Reserve a variable amount of space at boot
2008-04-17 07:46:14 +10:00
pmac_feature.h
[POWERPC] Disable G5 NAP mode during SMU commands on U3
2008-02-08 19:52:35 +11:00
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pmi.h
[POWERPC] remove include of asm/of_device.h from pmi.h
2008-04-15 21:21:25 +10:00
poll.h
Consolidate asm/poll.h
2007-05-11 08:29:34 -07:00
posix_types.h
asm-*/posix_types.h: scrub __GLIBC__
2008-02-08 09:22:34 -08:00
ppc-pci.h
[POWERPC] iSeries: Call iSeries_pcibios_init from setup_arch
2007-12-11 13:42:32 +11:00
ppc4xx.h
[POWERPC] 4xx: Create common ppc4xx_reset_system() in ppc4xx_soc.c
2008-04-02 20:44:56 -05:00
ppc_asm.h
[POWERPC] Fix modpost warnings from head*.S on ppc32
2007-09-14 08:53:36 -05:00
processor.h
[POWERPC] Add IRQSTACKS support on ppc32
2008-04-29 15:57:34 +10:00
prom.h
[POWERPC] Add of_translate_dma_address
2007-12-11 15:43:35 +11:00
ps3.h
[POWERPC] PS3: Make ps3_virq_setup and ps3_virq_destroy static
2008-05-02 15:00:44 +10:00
ps3av.h
ps3: use symbolic names for video modes
2008-02-06 10:41:17 -08:00
ps3fb.h
[POWERPC] PS3: Frame buffer system-bus rework
2007-06-28 19:16:42 +10:00
ps3stor.h
[POWERPC] PS3: Storage Driver Core
2007-06-28 19:19:20 +10:00
pSeries_reconfig.h
ptrace.h
[POWERPC] Move stackframe definitions to common header
2008-04-18 15:37:18 +10:00
qe.h
[POWERPC] QE: export qe_get_brg_clk()
2008-04-17 01:01:39 -05:00
qe_ic.h
[POWERPC] QEIC: Implement pluggable handlers, fix MPIC cascading
2007-10-08 08:38:57 -05:00
reg.h
[POWERPC] move celleb DABRX definitions
2008-03-03 08:03:14 +01:00
reg_8xx.h
reg_booke.h
[POWERPC] Made FSL Book-E PMC support more generic
2008-02-05 23:34:14 -06:00
reg_fsl_emb.h
[POWERPC] Made FSL Book-E PMC support more generic
2008-02-05 23:34:14 -06:00
resource.h
rheap.h
[POWERPC] User rheap from arch/powerpc/lib
2007-05-09 23:28:17 -05:00
rio.h
[RAPIDIO] Move include/asm-ppc/rio.h to asm-powerpc
2008-04-29 19:40:27 +10:00
rtas.h
Revert "[POWERPC] Fix RTAS os-term usage on kernel panic"
2007-12-03 09:39:45 +11:00
rtc.h
rwsem.h
[POWERPC] irqtrace support for 64-bit powerpc
2008-04-18 15:38:47 +10:00
scatterlist.h
Add CONFIG_DEBUG_SG sg validation
2007-10-22 21:20:03 +02:00
seccomp.h
sections.h
semaphore.h
Generic semaphore implementation
2008-04-17 10:42:34 -04:00
sembuf.h
serial.h
setjmp.h
[POWERPC] Make setjmp/longjmp code usable outside of xmon
2008-01-25 22:52:50 +11:00
setup.h
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
smp.h
Convert cpu_sibling_map to be a per cpu variable
2007-10-16 09:42:50 -07:00
smu.h
[POWERPC] include/asm-powerpc/: Spelling fixes
2007-12-20 16:17:44 +11:00
socket.h
[NET]: Introducing socket mark socket option.
2008-01-31 19:27:19 -08:00
sockios.h
sparsemem.h
[POWERPC] Add error return from htab_remove_mapping()
2008-04-01 20:43:08 +11:00
spinlock.h
[POWERPC] irqtrace support for 64-bit powerpc
2008-04-18 15:38:47 +10:00
spinlock_types.h
spu.h
powerpc/spufs: remove class_0_dsisr from spu exception handling
2008-06-16 14:35:00 +10:00
spu_csa.h
powerpc/spufs: remove class_0_dsisr from spu exception handling
2008-06-16 14:35:00 +10:00
spu_info.h
spu_priv1.h
[POWERPC] cell: wrap master run control bit
2007-12-21 19:45:05 +11:00
sstep.h
stat.h
statfs.h
string.h
[POWERPC] Add hand-coded assembly strcmp
2008-04-07 10:03:03 +10:00
suspend.h
synch.h
syscalls.h
unified (weak) sys_pipe implementation
2008-05-03 13:50:33 -07:00
systbl.h
[POWERPC] Wire up new timerfd syscalls
2008-02-14 22:11:01 +11:00
system.h
[POWERPC] Fix rmb to order cacheable vs. noncacheable
2008-06-16 15:00:20 +10:00
tce.h
termbits.h
[POWERPC] Enable arbitary speed tty ioctls and split input/output speed
2007-07-10 22:03:29 +10:00
termios.h
thread_info.h
[POWERPC] Fix kernel stack allocation alignment
2008-04-24 20:57:33 +10:00
time.h
[POWERPC] Fix hardware IRQ time accounting problem.
2007-12-06 16:08:59 +11:00
timex.h
tlb.h
[POWERPC] Include pagemap.h in asm/powerpc/tlb.h
2007-10-03 12:02:43 +10:00
tlbflush.h
[POWERPC] Fix oops related to 4xx flush_tlb_page modification
2007-11-09 03:51:14 -06:00
topology.h
asm-generic: add node_to_cpumask_ptr macro
2008-04-19 19:44:58 +02:00
tsi108.h
tsi108_irq.h
[POWERPC] Change include protections to ASM_POWERPC
2007-05-17 21:10:15 +10:00
tsi108_pci.h
[POWERPC] Change include protections to ASM_POWERPC
2007-05-17 21:10:15 +10:00
types.h
powerpc: types: use <asm-generic/int-*.h> for the powerpc architecture
2008-05-02 16:18:35 -07:00
uaccess.h
[POWERPC] Fix uninitialized variable bug in copy_{to|from}_user
2008-05-15 20:49:52 +10:00
ucc.h
[POWERPC] qe: miscellaneous code improvements and fixes to the QE library
2007-10-08 08:38:15 -05:00
ucc_fast.h
ucc_slow.h
[POWERPC] qe: miscellaneous code improvements and fixes to the QE library
2007-10-08 08:38:15 -05:00
ucontext.h
udbg.h
[POWERPC] 4xx: Add early udbg support for 40x processors
2007-12-23 13:13:03 -06:00
uic.h
unaligned.h
kernel: Move arches to use common unaligned access
2008-04-29 08:06:27 -07:00
uninorth.h
unistd.h
[POWERPC] Wire up new timerfd syscalls
2008-02-14 22:11:01 +11:00
user.h
Sanitize the type of struct user.u_ar0
2008-02-07 08:42:30 -08:00
vdso.h
vdso_datapage.h
[POWERPC] vdso: Fixes for cache block sizes
2007-11-20 13:56:31 +11:00
vga.h
vio.h
[POWERPC] iSeries: Fix section mismatch in viodsasd
2008-02-06 16:30:00 +11:00
xilinx_intc.h
[POWERPC] Virtex: add xilinx interrupt controller driver
2007-10-03 07:23:14 -05:00
xmon.h
xor.h