[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1509099265-30868-2-git-send-email-xieyisheng1@huawei.com>
Date: Fri, 27 Oct 2017 18:14:22 +0800
From: Yisheng Xie <xieyisheng1@...wei.com>
To: <akpm@...ux-foundation.org>, <vbabka@...e.cz>, <mhocko@...e.com>,
<mingo@...nel.org>, <rientjes@...gle.com>,
<n-horiguchi@...jp.nec.com>, <salls@...ucsb.edu>
CC: <linux-mm@...ck.org>, <linux-kernel@...r.kernel.org>,
<tanxiaojun@...wei.com>, <linux-api@...r.kernel.org>
Subject: [PATCH RFC v2 1/4] mm/mempolicy: Fix get_nodes() mask miscalculation
It appears there is a nodemask miscalculation in the get_nodes()
function in mm/mempolicy.c. This bug has two effects:
1. It is impossible to specify a length 1 nodemask.
2. It is impossible to specify a nodemask containing the last node.
Brent have submmit a patch before v2.6.12, however, Andi revert his
changed for ABI problem. I just resent this patch as RFC, for do not
clear about what's the problem Andi have met.
As manpage of set_mempolicy, If the value of maxnode is zero, the
nodemask argument is ignored. but we should not ignore the nodemask
when maxnode is 1.
Signed-off-by: Yisheng Xie <xieyisheng1@...wei.com>
---
mm/mempolicy.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index a2af6d5..613e9d0 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -1265,7 +1265,6 @@ static int get_nodes(nodemask_t *nodes, const unsigned long __user *nmask,
unsigned long nlongs;
unsigned long endmask;
- --maxnode;
nodes_clear(*nodes);
if (maxnode == 0 || !nmask)
return 0;
--
1.7.12.4
Powered by blists - more mailing lists