[RFC PATCH 10/11] mm/mempolicy: mpol_parse_str should ignore trailing characters in nodelist

From: Gregory Price
Date: Wed Nov 22 2023 - 16:13:12 EST


When validating MPOL_PREFERRED, the nodelist has already been parsed
and error checked by nodelist_parse. So rather than looping through
the string again, we should just check that the weight of the nodemask
is 1, which is the actual condition we care to check.

This also handles the case where newline characters are present.

Signed-off-by: Gregory Price <gregory.price@xxxxxxxxxxxx>
---
mm/mempolicy.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index a418af0a1359..eac71f2adfdc 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -3159,12 +3159,7 @@ int mpol_parse_str(char *str, struct mempolicy **mpol)
* nodelist (or nodes) cannot be empty.
*/
if (nodelist) {
- char *rest = nodelist;
- while (isdigit(*rest))
- rest++;
- if (*rest)
- goto out;
- if (nodes_empty(nodes))
+ if (nodes_weight(nodes) != 1)
goto out;
}
break;
--
2.39.1