Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 93989
b: refs/heads/master
c: a3b51e0
h: refs/heads/master
i:
  93987: 7da89d1
v: v3
  • Loading branch information
David Rientjes authored and Linus Torvalds committed Apr 28, 2008
1 parent d8b30df commit 20be7a4
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 27 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 1b27d05b6e21249d2338be26dfcbe8f8d8ff8a5b
refs/heads/master: a3b51e0142d1be156ac697eaadadd6cfbb7ba32b
19 changes: 10 additions & 9 deletions trunk/include/linux/mempolicy.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,13 @@
*/

/* Policies */
#define MPOL_DEFAULT 0
#define MPOL_PREFERRED 1
#define MPOL_BIND 2
#define MPOL_INTERLEAVE 3

#define MPOL_MAX MPOL_INTERLEAVE
enum {
MPOL_DEFAULT,
MPOL_PREFERRED,
MPOL_BIND,
MPOL_INTERLEAVE,
MPOL_MAX, /* always last member of enum */
};

/* Flags for get_mem_policy */
#define MPOL_F_NODE (1<<0) /* return next IL mode instead of node mask */
Expand Down Expand Up @@ -64,7 +65,7 @@ struct mm_struct;
*/
struct mempolicy {
atomic_t refcnt;
short policy; /* See MPOL_* above */
unsigned short policy; /* See MPOL_* above */
union {
short preferred_node; /* preferred */
nodemask_t nodes; /* interleave/bind */
Expand Down Expand Up @@ -134,7 +135,7 @@ struct shared_policy {
spinlock_t lock;
};

void mpol_shared_policy_init(struct shared_policy *info, int policy,
void mpol_shared_policy_init(struct shared_policy *info, unsigned short policy,
nodemask_t *nodes);
int mpol_set_shared_policy(struct shared_policy *info,
struct vm_area_struct *vma,
Expand Down Expand Up @@ -202,7 +203,7 @@ static inline int mpol_set_shared_policy(struct shared_policy *info,
}

static inline void mpol_shared_policy_init(struct shared_policy *info,
int policy, nodemask_t *nodes)
unsigned short policy, nodemask_t *nodes)
{
}

Expand Down
2 changes: 1 addition & 1 deletion trunk/include/linux/shmem_fs.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ struct shmem_sb_info {
uid_t uid; /* Mount uid for root directory */
gid_t gid; /* Mount gid for root directory */
mode_t mode; /* Mount mode for root directory */
int policy; /* Default NUMA memory alloc policy */
unsigned short policy; /* Default NUMA memory alloc policy */
nodemask_t policy_nodes; /* nodemask for preferred and bind */
};

Expand Down
29 changes: 17 additions & 12 deletions trunk/mm/mempolicy.c
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ static void mpol_rebind_policy(struct mempolicy *pol,
const nodemask_t *newmask);

/* Do sanity checking on a policy */
static int mpol_check_policy(int mode, nodemask_t *nodes)
static int mpol_check_policy(unsigned short mode, nodemask_t *nodes)
{
int was_empty, is_empty;

Expand Down Expand Up @@ -159,6 +159,8 @@ static int mpol_check_policy(int mode, nodemask_t *nodes)
if (!was_empty && is_empty)
return -EINVAL;
break;
default:
BUG();
}
return 0;
}
Expand All @@ -185,7 +187,7 @@ static int is_valid_nodemask(nodemask_t *nodemask)
}

/* Create a new policy */
static struct mempolicy *mpol_new(int mode, nodemask_t *nodes)
static struct mempolicy *mpol_new(unsigned short mode, nodemask_t *nodes)
{
struct mempolicy *policy;

Expand Down Expand Up @@ -218,6 +220,8 @@ static struct mempolicy *mpol_new(int mode, nodemask_t *nodes)
}
policy->v.nodes = *nodes;
break;
default:
BUG();
}
policy->policy = mode;
policy->cpuset_mems_allowed = cpuset_mems_allowed(current);
Expand Down Expand Up @@ -462,7 +466,7 @@ static void mpol_set_task_struct_flag(void)
}

/* Set the process memory policy */
static long do_set_mempolicy(int mode, nodemask_t *nodes)
static long do_set_mempolicy(unsigned short mode, nodemask_t *nodes)
{
struct mempolicy *new;

Expand Down Expand Up @@ -759,7 +763,7 @@ static struct page *new_vma_page(struct page *page, unsigned long private, int *
#endif

static long do_mbind(unsigned long start, unsigned long len,
unsigned long mode, nodemask_t *nmask,
unsigned short mode, nodemask_t *nmask,
unsigned long flags)
{
struct vm_area_struct *vma;
Expand All @@ -769,9 +773,8 @@ static long do_mbind(unsigned long start, unsigned long len,
int err;
LIST_HEAD(pagelist);

if ((flags & ~(unsigned long)(MPOL_MF_STRICT |
MPOL_MF_MOVE | MPOL_MF_MOVE_ALL))
|| mode > MPOL_MAX)
if (flags & ~(unsigned long)(MPOL_MF_STRICT |
MPOL_MF_MOVE | MPOL_MF_MOVE_ALL))
return -EINVAL;
if ((flags & MPOL_MF_MOVE_ALL) && !capable(CAP_SYS_NICE))
return -EPERM;
Expand Down Expand Up @@ -804,7 +807,7 @@ static long do_mbind(unsigned long start, unsigned long len,
if (!new)
flags |= MPOL_MF_DISCONTIG_OK;

pr_debug("mbind %lx-%lx mode:%ld nodes:%lx\n",start,start+len,
pr_debug("mbind %lx-%lx mode:%d nodes:%lx\n", start, start + len,
mode, nmask ? nodes_addr(*nmask)[0] : -1);

down_write(&mm->mmap_sem);
Expand Down Expand Up @@ -905,6 +908,8 @@ asmlinkage long sys_mbind(unsigned long start, unsigned long len,
nodemask_t nodes;
int err;

if (mode >= MPOL_MAX)
return -EINVAL;
err = get_nodes(&nodes, nmask, maxnode);
if (err)
return err;
Expand All @@ -918,7 +923,7 @@ asmlinkage long sys_set_mempolicy(int mode, unsigned long __user *nmask,
int err;
nodemask_t nodes;

if (mode < 0 || mode > MPOL_MAX)
if (mode < 0 || mode >= MPOL_MAX)
return -EINVAL;
err = get_nodes(&nodes, nmask, maxnode);
if (err)
Expand Down Expand Up @@ -1201,7 +1206,7 @@ static unsigned interleave_nodes(struct mempolicy *policy)
*/
unsigned slab_node(struct mempolicy *policy)
{
int pol = policy ? policy->policy : MPOL_DEFAULT;
unsigned short pol = policy ? policy->policy : MPOL_DEFAULT;

switch (pol) {
case MPOL_INTERLEAVE:
Expand Down Expand Up @@ -1635,7 +1640,7 @@ static int shared_policy_replace(struct shared_policy *sp, unsigned long start,
return 0;
}

void mpol_shared_policy_init(struct shared_policy *info, int policy,
void mpol_shared_policy_init(struct shared_policy *info, unsigned short policy,
nodemask_t *policy_nodes)
{
info->root = RB_ROOT;
Expand Down Expand Up @@ -1830,7 +1835,7 @@ static inline int mpol_to_str(char *buffer, int maxlen, struct mempolicy *pol)
char *p = buffer;
int l;
nodemask_t nodes;
int mode = pol ? pol->policy : MPOL_DEFAULT;
unsigned short mode = pol ? pol->policy : MPOL_DEFAULT;

switch (mode) {
case MPOL_DEFAULT:
Expand Down
9 changes: 5 additions & 4 deletions trunk/mm/shmem.c
Original file line number Diff line number Diff line change
Expand Up @@ -1079,7 +1079,8 @@ static int shmem_writepage(struct page *page, struct writeback_control *wbc)

#ifdef CONFIG_NUMA
#ifdef CONFIG_TMPFS
static int shmem_parse_mpol(char *value, int *policy, nodemask_t *policy_nodes)
static int shmem_parse_mpol(char *value, unsigned short *policy,
nodemask_t *policy_nodes)
{
char *nodelist = strchr(value, ':');
int err = 1;
Expand Down Expand Up @@ -1128,7 +1129,7 @@ static int shmem_parse_mpol(char *value, int *policy, nodemask_t *policy_nodes)
return err;
}

static void shmem_show_mpol(struct seq_file *seq, int policy,
static void shmem_show_mpol(struct seq_file *seq, unsigned short policy,
const nodemask_t policy_nodes)
{
char *policy_string;
Expand Down Expand Up @@ -1197,13 +1198,13 @@ static struct page *shmem_alloc_page(gfp_t gfp,
}
#else /* !CONFIG_NUMA */
#ifdef CONFIG_TMPFS
static inline int shmem_parse_mpol(char *value, int *policy,
static inline int shmem_parse_mpol(char *value, unsigned short *policy,
nodemask_t *policy_nodes)
{
return 1;
}

static inline void shmem_show_mpol(struct seq_file *seq, int policy,
static inline void shmem_show_mpol(struct seq_file *seq, unsigned short policy,
const nodemask_t policy_nodes)
{
}
Expand Down

0 comments on commit 20be7a4

Please sign in to comment.