Web lists-archives.org

Re: [PATCH] cpuset: limit the input of cpuset.sched_relax_domain_level




On Mon, May 12, 2008 at 7:27 PM, Li Zefan <lizf@xxxxxxxxxxxxxx> wrote:
> We allow the inputs to be [-1 ... SD_LV_MAX), and return -EINVAL
>  for inputs outside this range.
>
>  Signed-off-by: Li Zefan <lizf@xxxxxxxxxxxxxx>

Acked-by: Paul Menage <menage@xxxxxxxxxx>


>  ---
>   Documentation/cpusets.txt |    2 +-
>   kernel/cpuset.c           |    4 ++--
>   kernel/sched.c            |    7 ++++++-
>   3 files changed, 9 insertions(+), 4 deletions(-)
>
>  diff --git a/Documentation/cpusets.txt b/Documentation/cpusets.txt
>  index fb7b361..9066ce7 100644
>  --- a/Documentation/cpusets.txt
>  +++ b/Documentation/cpusets.txt
>  @@ -542,7 +542,7 @@ otherwise initial value -1 that indicates the cpuset has no request.
>     2  : search cores in a package.
>     3  : search cpus in a node [= system wide on non-NUMA system]
>   ( 4  : search nodes in a chunk of node [on NUMA system] )
>  - ( 5~ : search system wide [on NUMA system])
>  + ( 5  : search system wide [on NUMA system] )
>
>   This file is per-cpuset and affect the sched domain where the cpuset
>   belongs to.  Therefore if the flag 'sched_load_balance' of a cpuset
>  diff --git a/kernel/cpuset.c b/kernel/cpuset.c
>  index 86ea9e3..c192213 100644
>  --- a/kernel/cpuset.c
>  +++ b/kernel/cpuset.c
>  @@ -1033,8 +1033,8 @@ int current_cpuset_is_being_rebound(void)
>
>   static int update_relax_domain_level(struct cpuset *cs, s64 val)
>   {
>  -       if ((int)val < 0)
>  -               val = -1;
>  +       if (val < -1 || val >= SD_LV_MAX)
>  +               return -EINVAL;
>
>         if (val != cs->relax_domain_level) {
>                 cs->relax_domain_level = val;
>  diff --git a/kernel/sched.c b/kernel/sched.c
>  index 8841a91..24d499e 100644
>  --- a/kernel/sched.c
>  +++ b/kernel/sched.c
>  @@ -7219,7 +7219,12 @@ static int default_relax_domain_level = -1;
>
>   static int __init setup_relax_domain_level(char *str)
>   {
>  -       default_relax_domain_level = simple_strtoul(str, NULL, 0);
>  +       unsigned long val;
>  +
>  +       val = simple_strtoul(str, NULL, 0);
>  +       if (val < SD_LV_MAX)
>  +               default_relax_domain_level = val;
>  +
>         return 1;
>   }
>   __setup("relax_domain_level=", setup_relax_domain_level);
>  --
>  1.5.4.rc3
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/