Commit 140d5a49 authored by Paul Mundt's avatar Paul Mundt Committed by Linus Torvalds

numa: mempolicy: trivial debug fixes.

Enabling debugging fails to build due to the nodemask variable in
do_mbind() having changed names, and then oopses on boot due to the
assumption that the nodemask can be dereferenced -- which doesn't work out
so well when the policy is changed to MPOL_DEFAULT with a NULL nodemask by
numa_default_policy().

This fixes it up, and switches from PDprintk() to pr_debug() while
we're at it.
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
Cc: Christoph Lameter <clameter@sgi.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 462e00cc
...@@ -101,8 +101,6 @@ ...@@ -101,8 +101,6 @@
static struct kmem_cache *policy_cache; static struct kmem_cache *policy_cache;
static struct kmem_cache *sn_cache; static struct kmem_cache *sn_cache;
#define PDprintk(fmt...)
/* Highest zone. An specific allocation for a zone below that is not /* Highest zone. An specific allocation for a zone below that is not
policied. */ policied. */
enum zone_type policy_zone = 0; enum zone_type policy_zone = 0;
...@@ -175,7 +173,9 @@ static struct mempolicy *mpol_new(int mode, nodemask_t *nodes) ...@@ -175,7 +173,9 @@ static struct mempolicy *mpol_new(int mode, nodemask_t *nodes)
{ {
struct mempolicy *policy; struct mempolicy *policy;
PDprintk("setting mode %d nodes[0] %lx\n", mode, nodes_addr(*nodes)[0]); pr_debug("setting mode %d nodes[0] %lx\n",
mode, nodes ? nodes_addr(*nodes)[0] : -1);
if (mode == MPOL_DEFAULT) if (mode == MPOL_DEFAULT)
return NULL; return NULL;
policy = kmem_cache_alloc(policy_cache, GFP_KERNEL); policy = kmem_cache_alloc(policy_cache, GFP_KERNEL);
...@@ -379,7 +379,7 @@ static int policy_vma(struct vm_area_struct *vma, struct mempolicy *new) ...@@ -379,7 +379,7 @@ static int policy_vma(struct vm_area_struct *vma, struct mempolicy *new)
int err = 0; int err = 0;
struct mempolicy *old = vma->vm_policy; struct mempolicy *old = vma->vm_policy;
PDprintk("vma %lx-%lx/%lx vm_ops %p vm_file %p set_policy %p\n", pr_debug("vma %lx-%lx/%lx vm_ops %p vm_file %p set_policy %p\n",
vma->vm_start, vma->vm_end, vma->vm_pgoff, vma->vm_start, vma->vm_end, vma->vm_pgoff,
vma->vm_ops, vma->vm_file, vma->vm_ops, vma->vm_file,
vma->vm_ops ? vma->vm_ops->set_policy : NULL); vma->vm_ops ? vma->vm_ops->set_policy : NULL);
...@@ -776,8 +776,8 @@ long do_mbind(unsigned long start, unsigned long len, ...@@ -776,8 +776,8 @@ long do_mbind(unsigned long start, unsigned long len,
if (!new) if (!new)
flags |= MPOL_MF_DISCONTIG_OK; flags |= MPOL_MF_DISCONTIG_OK;
PDprintk("mbind %lx-%lx mode:%ld nodes:%lx\n",start,start+len, pr_debug("mbind %lx-%lx mode:%ld nodes:%lx\n",start,start+len,
mode,nodes_addr(nodes)[0]); mode, nmask ? nodes_addr(*nmask)[0] : -1);
down_write(&mm->mmap_sem); down_write(&mm->mmap_sem);
vma = check_range(mm, start, end, nmask, vma = check_range(mm, start, end, nmask,
...@@ -1434,7 +1434,7 @@ static void sp_insert(struct shared_policy *sp, struct sp_node *new) ...@@ -1434,7 +1434,7 @@ static void sp_insert(struct shared_policy *sp, struct sp_node *new)
} }
rb_link_node(&new->nd, parent, p); rb_link_node(&new->nd, parent, p);
rb_insert_color(&new->nd, &sp->root); rb_insert_color(&new->nd, &sp->root);
PDprintk("inserting %lx-%lx: %d\n", new->start, new->end, pr_debug("inserting %lx-%lx: %d\n", new->start, new->end,
new->policy ? new->policy->policy : 0); new->policy ? new->policy->policy : 0);
} }
...@@ -1459,7 +1459,7 @@ mpol_shared_policy_lookup(struct shared_policy *sp, unsigned long idx) ...@@ -1459,7 +1459,7 @@ mpol_shared_policy_lookup(struct shared_policy *sp, unsigned long idx)
static void sp_delete(struct shared_policy *sp, struct sp_node *n) static void sp_delete(struct shared_policy *sp, struct sp_node *n)
{ {
PDprintk("deleting %lx-l%x\n", n->start, n->end); pr_debug("deleting %lx-l%lx\n", n->start, n->end);
rb_erase(&n->nd, &sp->root); rb_erase(&n->nd, &sp->root);
mpol_free(n->policy); mpol_free(n->policy);
kmem_cache_free(sn_cache, n); kmem_cache_free(sn_cache, n);
...@@ -1558,10 +1558,10 @@ int mpol_set_shared_policy(struct shared_policy *info, ...@@ -1558,10 +1558,10 @@ int mpol_set_shared_policy(struct shared_policy *info,
struct sp_node *new = NULL; struct sp_node *new = NULL;
unsigned long sz = vma_pages(vma); unsigned long sz = vma_pages(vma);
PDprintk("set_shared_policy %lx sz %lu %d %lx\n", pr_debug("set_shared_policy %lx sz %lu %d %lx\n",
vma->vm_pgoff, vma->vm_pgoff,
sz, npol? npol->policy : -1, sz, npol? npol->policy : -1,
npol ? nodes_addr(npol->v.nodes)[0] : -1); npol ? nodes_addr(npol->v.nodes)[0] : -1);
if (npol) { if (npol) {
new = sp_alloc(vma->vm_pgoff, vma->vm_pgoff + sz, npol); new = sp_alloc(vma->vm_pgoff, vma->vm_pgoff + sz, npol);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment