diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 17aadb5ca5f748747f3a4d8747c83d29658fd420..f4860a9e8d0bc1dcd2b90d55e2dd19eff6243e3f 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -1477,7 +1477,8 @@ static inline int sanitize_mpol_flags(int *mode, unsigned short *flags) *flags = *mode & MPOL_MODE_FLAGS; *mode &= ~MPOL_MODE_FLAGS; - if ((unsigned int)(*mode) >= MPOL_MAX) + if ((unsigned int)(*mode) >= MPOL_MAX || + (unsigned int)(*mode) == MPOL_WEIGHTED_INTERLEAVE) return -EINVAL; if ((*flags & MPOL_F_STATIC_NODES) && (*flags & MPOL_F_RELATIVE_NODES)) return -EINVAL; @@ -2989,6 +2990,7 @@ static const char * const policy_modes[] = [MPOL_PREFERRED] = "prefer", [MPOL_BIND] = "bind", [MPOL_INTERLEAVE] = "interleave", + [MPOL_WEIGHTED_INTERLEAVE] = "weighted interleave", [MPOL_LOCAL] = "local", [MPOL_PREFERRED_MANY] = "prefer (many)", };