projects
/
platform
/
kernel
/
linux-rpi.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tizen: packaging: Add baselibs.conf to provide 64-bit kernel & modules for 32-bit...
[platform/kernel/linux-rpi.git]
/
mm
/
mempolicy.c
diff --git
a/mm/mempolicy.c
b/mm/mempolicy.c
index
f1b00d6
..
e52e3a0
100644
(file)
--- a/
mm/mempolicy.c
+++ b/
mm/mempolicy.c
@@
-131,22
+131,26
@@
static struct mempolicy default_policy = {
static struct mempolicy preferred_node_policy[MAX_NUMNODES];
/**
static struct mempolicy preferred_node_policy[MAX_NUMNODES];
/**
- * numa_
map_to_online_node - Find closest online nod
e
+ * numa_
nearest_node - Find nearest node by stat
e
* @node: Node id to start the search
* @node: Node id to start the search
+ * @state: State to filter the search
*
*
- * Lookup the
next closest node by distance if @nid is not onlin
e.
+ * Lookup the
closest node by distance if @nid is not in stat
e.
*
*
- * Return: this @node if it is
onlin
e, otherwise the closest node by distance
+ * Return: this @node if it is
in stat
e, otherwise the closest node by distance
*/
*/
-int numa_
map_to_online_node(int nod
e)
+int numa_
nearest_node(int node, unsigned int stat
e)
{
int min_dist = INT_MAX, dist, n, min_node;
{
int min_dist = INT_MAX, dist, n, min_node;
- if (node == NUMA_NO_NODE || node_online(node))
+ if (state >= NR_NODE_STATES)
+ return -EINVAL;
+
+ if (node == NUMA_NO_NODE || node_state(node, state))
return node;
min_node = node;
return node;
min_node = node;
- for_each_
online_node(n
) {
+ for_each_
node_state(n, state
) {
dist = node_distance(node, n);
if (dist < min_dist) {
min_dist = dist;
dist = node_distance(node, n);
if (dist < min_dist) {
min_dist = dist;
@@
-156,7
+160,7
@@
int numa_map_to_online_node(int node)
return min_node;
}
return min_node;
}
-EXPORT_SYMBOL_GPL(numa_
map_to_online
_node);
+EXPORT_SYMBOL_GPL(numa_
nearest
_node);
struct mempolicy *get_task_policy(struct task_struct *p)
{
struct mempolicy *get_task_policy(struct task_struct *p)
{
@@
-1543,8
+1547,10
@@
SYSCALL_DEFINE4(set_mempolicy_home_node, unsigned long, start, unsigned long, le
* the home node for vmas we already updated before.
*/
old = vma_policy(vma);
* the home node for vmas we already updated before.
*/
old = vma_policy(vma);
- if (!old)
+ if (!old) {
+ prev = vma;
continue;
continue;
+ }
if (old->mode != MPOL_BIND && old->mode != MPOL_PREFERRED_MANY) {
err = -EOPNOTSUPP;
break;
if (old->mode != MPOL_BIND && old->mode != MPOL_PREFERRED_MANY) {
err = -EOPNOTSUPP;
break;