diff options
| author | James Morris <jmorris@namei.org> | 2009-05-22 18:40:59 +1000 |
|---|---|---|
| committer | James Morris <jmorris@namei.org> | 2009-05-22 18:40:59 +1000 |
| commit | 2c9e703c618106f5383226fbb1f526cb11034f8a (patch) | |
| tree | 87d7548001ea82f655fede0640466fc16aabcdf7 /arch/powerpc/platforms/cell/ras.c | |
| parent | 6470c077cae12227318f40f3e6d756caadcce4b0 (diff) | |
| parent | 5805977e63a36ad56594a623f3bd2bebcb7db233 (diff) | |
Merge branch 'master' into next
Conflicts:
fs/exec.c
Removed IMA changes (the IMA checks are now performed via may_open()).
Signed-off-by: James Morris <jmorris@namei.org>
Diffstat (limited to 'arch/powerpc/platforms/cell/ras.c')
| -rw-r--r-- | arch/powerpc/platforms/cell/ras.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/arch/powerpc/platforms/cell/ras.c b/arch/powerpc/platforms/cell/ras.c index 5f961c464cc4..296b5268754e 100644 --- a/arch/powerpc/platforms/cell/ras.c +++ b/arch/powerpc/platforms/cell/ras.c @@ -122,12 +122,23 @@ static int __init cbe_ptcal_enable_on_node(int nid, int order) area->nid = nid; area->order = order; - area->pages = alloc_pages_node(area->nid, GFP_KERNEL, area->order); + area->pages = alloc_pages_node(area->nid, GFP_KERNEL | GFP_THISNODE, + area->order); - if (!area->pages) + if (!area->pages) { + printk(KERN_WARNING "%s: no page on node %d\n", + __func__, area->nid); goto out_free_area; + } - addr = __pa(page_address(area->pages)); + /* + * We move the ptcal area to the middle of the allocated + * page, in order to avoid prefetches in memcpy and similar + * functions stepping on it. + */ + addr = __pa(page_address(area->pages)) + (PAGE_SIZE >> 1); + printk(KERN_DEBUG "%s: enabling PTCAL on node %d address=0x%016lx\n", + __func__, area->nid, addr); ret = -EIO; if (rtas_call(ptcal_start_tok, 3, 1, NULL, area->nid, |
