OpenCloudOS-Kernel/arch/ppc64/kernel
Nick Piggin b5810039a5 [PATCH] core remove PageReserved
Remove PageReserved() calls from core code by tightening VM_RESERVED
handling in mm/ to cover PageReserved functionality.

PageReserved special casing is removed from get_page and put_page.

All setting and clearing of PageReserved is retained, and it is now flagged
in the page_alloc checks to help ensure we don't introduce any refcount
based freeing of Reserved pages.

MAP_PRIVATE, PROT_WRITE of VM_RESERVED regions is tentatively being
deprecated.  We never completely handled it correctly anyway, and is be
reintroduced in future if required (Hugh has a proof of concept).

Once PageReserved() calls are removed from kernel/power/swsusp.c, and all
arch/ and driver code, the Set and Clear calls, and the PG_reserved bit can
be trivially removed.

Last real user of PageReserved is swsusp, which uses PageReserved to
determine whether a struct page points to valid memory or not.  This still
needs to be addressed (a generic page_is_ram() should work).

A last caveat: the ZERO_PAGE is now refcounted and managed with rmap (and
thus mapcounted and count towards shared rss).  These writes to the struct
page could cause excessive cacheline bouncing on big systems.  There are a
number of ways this could be addressed if it is an issue.

Signed-off-by: Nick Piggin <npiggin@suse.de>

Refcount bug fix for filemap_xip.c

Signed-off-by: Carsten Otte <cotte@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-29 21:40:39 -07:00
..
vdso32 [PATCH] ppc64: Fix error in vDSO 32 bits date 2005-10-19 23:04:30 -07:00
vdso64 kbuild: m68k,parisc,ppc,ppc64,s390,xtensa use generic asm-offsets.h support 2005-09-09 20:57:26 +02:00
HvCall.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
HvLpConfig.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
HvLpEvent.c [PATCH] ppc64 iSeries: remove LparData.h 2005-06-21 18:46:27 -07:00
ItLpQueue.c [PATCH] ppc64: Replace custom locking code with a spinlock 2005-06-30 15:17:02 +10:00
LparData.c [PATCH] ppc64: msChunks cleanups 2005-08-29 10:53:35 +10:00
Makefile [PATCH] ppc64: Split SCC and 15550 udbg code 2005-09-06 16:07:36 +10:00
align.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
asm-offsets.c Merge master.kernel.org:/pub/scm/linux/kernel/git/dwmw2/audit-2.6 2005-09-13 09:47:30 -07:00
binfmt_elf32.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bitops.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bpa_iic.c [PATCH] ppc64: fix IPI on bpa_iic 2005-09-09 22:11:34 +10:00
bpa_iic.h [PATCH] ppc64: Add driver for BPA interrupt controllers 2005-06-23 09:43:43 +10:00
bpa_iommu.c [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
bpa_iommu.h [PATCH] ppc64: Add driver for BPA iommu 2005-06-23 09:43:54 +10:00
bpa_nvram.c [PATCH] ppc64: add a minimal nvram driver 2005-06-23 09:43:31 +10:00
bpa_setup.c [PATCH] ppc64: Add driver for BPA iommu 2005-06-23 09:43:54 +10:00
btext.c [PATCH] remove linux/version.h include from arch/ppc64 2005-09-06 16:57:46 +10:00
cpu_setup_power4.S [PATCH] merge some from Rusty's trivial patches 2005-09-10 10:06:30 -07:00
cputable.c [PATCH] ppc64: Fix build with oprofile disabled 2005-09-06 16:09:22 +10:00
dma.c [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
eeh.c [PATCH] Separate pci bits out of struct device_node 2005-09-09 22:11:38 +10:00
entry.S Merge master.kernel.org:/pub/scm/linux/kernel/git/dwmw2/audit-2.6 2005-09-13 09:47:30 -07:00
firmware.c [PATCH] ppc64: make firmware_has_feature() stronger 2005-08-29 10:53:35 +10:00
head.S [PATCH] ppc64: Fix recent regression 2005-09-15 08:04:39 -07:00
hvCall.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hvconsole.c [PATCH] hvc_console: Separate the NUL character filtering from get_hvc_chars 2005-07-07 18:23:40 -07:00
hvcserver.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
i8259.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
i8259.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
iSeries_VpdInfo.c [PATCH] PCI: remove CONFIG_PCI_NAMES 2005-09-08 14:57:23 -07:00
iSeries_htab.c [PATCH] ppc64: Fix typo bug in iSeries hash code 2005-10-21 12:24:41 -07:00
iSeries_iommu.c [PATCH] ppc64 iSeries: allow build with no PCI 2005-06-21 18:46:31 -07:00
iSeries_irq.c [PATCH] ppc64 iSeries: tidy up irq code after merge 2005-06-21 18:46:30 -07:00
iSeries_pci.c [PATCH] ppc64: indent pci code 2005-09-12 17:19:12 +10:00
iSeries_proc.c [PATCH] ppc64: Move xItLpQueue proc code into ItLpQueue.c 2005-06-30 15:08:44 +10:00
iSeries_setup.c [PATCH] ppc64: Move ppc64_enable_pmcs() logic into a ppc_md function 2005-08-29 10:53:38 +10:00
iSeries_setup.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
iSeries_smp.c [PATCH] ppc64 iSeries: eliminate some unused inline functions 2005-06-21 18:46:28 -07:00
iSeries_vio.c [PATCH] Create vio_bus_ops 2005-08-30 13:23:47 +10:00
idle.c [PATCH] ppc64: idle fixups 2005-07-07 18:23:41 -07:00
idle_power4.S kbuild: m68k,parisc,ppc,ppc64,s390,xtensa use generic asm-offsets.h support 2005-09-09 20:57:26 +02:00
init_task.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ioctl32.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
iomap.c Merge master.kernel.org:/pub/scm/linux/kernel/git/paulus/ppc64-2.6 2005-09-09 10:38:02 -07:00
iommu.c [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
irq.c Merge rsync://rsync.kernel.org/pub/scm/linux/kernel/git/paulus/ppc64-2.6 2005-06-30 08:48:56 -07:00
kprobes.c [PATCH] ppc64: fix up()/down() usage for kprobe_mutex 2005-10-01 10:54:47 -07:00
lmb.c [PATCH] ppc64: Simplify some lmb functions 2005-08-29 10:53:37 +10:00
lparcfg.c [PATCH] ppc64: Allow world readable /proc/ppc64/lparcfg 2005-09-06 16:07:54 +10:00
lparmap.c [PATCH] iSeries build with newer assemblers and compilers 2005-08-16 21:06:25 -07:00
machine_kexec.c [PATCH] ppc64: Add missing barrier() in kexec code 2005-09-28 07:46:41 -07:00
maple_pci.c [PATCH] ppc64: indent pci code 2005-09-12 17:19:12 +10:00
maple_setup.c [PATCH] ppc64: Make udbg_init_uart set the ppc_md udbg methods. 2005-09-06 16:07:36 +10:00
maple_time.c [PATCH] ppc64: consolidate calibrate_decr implementations 2005-06-23 09:43:07 +10:00
mf.c [PATCH] ppc64: Don't count number of events processed for caller 2005-06-30 15:15:53 +10:00
misc.S Merge master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild 2005-09-09 15:46:49 -07:00
module.c [PATCH] ppc64: Add R_PPC64_TOC16 module reloc 2005-10-11 09:46:54 -07:00
mpic.c [PATCH] ppc64: Fix wrong register mapping in mpic driver 2005-10-26 10:39:43 -07:00
mpic.h [PATCH] ppc64: fix for kexec boot issue 2005-08-04 13:00:55 -07:00
nvram.c [PATCH] ppc64: simplify nvram partition scanning code 2005-06-28 20:33:49 +10:00
of_device.c [PATCH] ppc64: SMU driver update & i2c support 2005-09-22 22:17:35 -07:00
pSeries_hvCall.S [PATCH] ppc64: enforce medium thread priority in hypervisor calls 2005-05-01 08:58:46 -07:00
pSeries_iommu.c [PATCH] ppc64: Fix build with iommu debug enabled 2005-09-22 22:17:35 -07:00
pSeries_lpar.c [PATCH] ppc64: Take udbg out of ppc_md 2005-09-06 16:07:36 +10:00
pSeries_nvram.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pSeries_pci.c [PATCH] ppc64: Fix PCI hotplug 2005-10-11 09:46:53 -07:00
pSeries_reconfig.c [PATCH] PPC64: convert kcalloc to kzalloc 2005-09-07 16:57:45 -07:00
pSeries_setup.c [PATCH] ppc64: Make eeh_init function again 2005-09-13 08:26:15 -07:00
pSeries_smp.c [PATCH] ppc64: Fix for missing start-cpu rtas token 2005-09-12 17:19:12 +10:00
pSeries_vio.c [PATCH] Create vio_bus_ops 2005-08-30 13:23:47 +10:00
pacaData.c [PATCH] ppc64: Add VMX save flag to VPA 2005-09-05 00:06:01 -07:00
pci.c [PATCH] ppc64: Fix PCI flags when using OF device tree 2005-09-21 09:15:34 -07:00
pci.h [PATCH] Separate pci bits out of struct device_node 2005-09-09 22:11:38 +10:00
pci_direct_iommu.c [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
pci_dn.c [PATCH] Separate pci bits out of struct device_node 2005-09-09 22:11:38 +10:00
pci_iommu.c [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
pmac.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmac_feature.c [PATCH] Separate pci bits out of struct device_node 2005-09-09 22:11:38 +10:00
pmac_low_i2c.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmac_nvram.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pmac_pci.c [PATCH] ppc64: indent pci code 2005-09-12 17:19:12 +10:00
pmac_setup.c [PATCH] ppc64: Fix G5 model in /proc/cpuinfo 2005-10-14 17:10:12 -07:00
pmac_smp.c [PATCH] ppc64: Fix g5 hw timebase sync 2005-05-23 11:51:24 -07:00
pmac_time.c [PATCH] ppc64: SMU driver update & i2c support 2005-09-22 22:17:35 -07:00
pmc.c [PATCH] more SPIN_LOCK_UNLOCKED -> DEFINE_SPINLOCK conversions 2005-09-09 14:03:48 -07:00
ppc_ksyms.c [PATCH] ppc64: Add missing exports 2005-06-27 15:11:43 -07:00
proc_ppc64.c [PATCH] ppc64: add BPA platform type 2005-06-23 09:43:37 +10:00
process.c [PATCH] ppc64: Add ptrace data breakpoint support 2005-09-12 17:19:12 +10:00
prom.c [PATCH] Separate pci bits out of struct device_node 2005-09-09 22:11:38 +10:00
prom_init.c [PATCH] ppc64: Fix issue with non zero boot cpu 2005-09-21 10:11:54 -07:00
ptrace.c [PATCH] ppc64: Fix 64bit ptrace DABR support 2005-09-22 22:17:35 -07:00
ptrace32.c [PATCH] ppc64: Add ptrace data breakpoint support 2005-09-12 17:19:12 +10:00
ras.c [PATCH] ppc64: Add ptrace data breakpoint support 2005-09-12 17:19:12 +10:00
rtas-proc.c [PATCH] ppc64: pSeries_progress -> rtas_progress 2005-06-23 09:43:28 +10:00
rtas.c [PATCH] correct printing to operator panel 2005-06-23 16:09:41 +10:00
rtas_flash.c [PATCH] ppc64: trivial user annotations 2005-04-26 11:26:53 -07:00
rtas_pci.c [PATCH] Separate pci bits out of struct device_node 2005-09-09 22:11:38 +10:00
rtasd.c [PATCH] ppc64: replace schedule_timeout() with msleep_interruptible() 2005-09-05 00:06:01 -07:00
rtc.c [PATCH] ppc64: replace schedule_timeout() with msleep_interruptible() 2005-09-05 00:06:01 -07:00
scanlog.c [PATCH] ppc64: replace schedule_timeout() with msleep_interruptible() 2005-09-05 00:06:01 -07:00
semaphore.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
setup.c [PATCH] ppc64: Remove unused code 2005-09-12 17:19:12 +10:00
signal.c [PATCH] ppc64: Add ptrace data breakpoint support 2005-09-12 17:19:12 +10:00
signal32.c [PATCH] ppc64: Add ptrace data breakpoint support 2005-09-12 17:19:12 +10:00
smp-tbsync.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
smp.c [PATCH] ppc64: dynamically allocate segment tables 2005-07-27 16:25:58 -07:00
spider-pic.c [PATCH] ppc64: Add driver for BPA interrupt controllers 2005-06-23 09:43:43 +10:00
sys_ppc32.c Allow PCI config space syscalls to be used by 64-bit processes. 2005-09-09 23:02:36 +10:00
syscalls.c [PATCH] powerpc: Make check_bugs() static inline 2005-09-09 22:11:35 +10:00
sysfs.c [PATCH] ppc64: add number of PMCs to cputable 2005-09-06 16:09:20 +10:00
time.c [PATCH] ppc64: Fix typo in time calculations 2005-10-21 12:17:43 -07:00
traps.c [PATCH] Kprobes: prevent possible race conditions ppc64 changes 2005-09-07 16:58:00 -07:00
u3_iommu.c [PATCH] Separate pci bits out of struct device_node 2005-09-09 22:11:38 +10:00
udbg.c [PATCH] ppc64: iSeries early printk breakage 2005-09-09 22:11:34 +10:00
udbg_16550.c [PATCH] ppc64: Remove old includes 2005-09-06 16:07:37 +10:00
udbg_scc.c [PATCH] ppc64: Remove old includes 2005-09-06 16:07:37 +10:00
vdso.c [PATCH] core remove PageReserved 2005-10-29 21:40:39 -07:00
vecemu.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vector.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vio.c [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
viopath.c [PATCH] ppc64 iSeries: misc header cleanups 2005-06-21 18:46:28 -07:00
vmlinux.lds.S [PATCH] Kprobes: prevent possible race conditions ppc64 changes 2005-09-07 16:58:00 -07:00
xics.c [PATCH] ppc64: xics cleanup 2005-09-12 17:19:12 +10:00