lkml.org 
[lkml]   [2012]   [Apr]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC 2/3] sched: add type checks to for_each_cpu_mask()
    Date
    Add type checks to assert that 'mask' is 'struct cpumask *'. This check
    would have detected the bug fixed in e3831ed ("sched: Fix incorrect usage
    of for_each_cpu_mask() in select_fallback_rq()"):

    kernel/sched/core.c: In function 'select_fallback_rq':
    kernel/sched/core.c:1273:2: warning: comparison of distinct pointer types lacks a cast
    kernel/sched/core.c:1284:3: warning: comparison of distinct pointer types lacks a cast

    Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
    ---
    include/linux/cpumask.h | 4 +++-
    1 files changed, 3 insertions(+), 1 deletions(-)

    diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
    index a2c819d..58fd022 100644
    --- a/include/linux/cpumask.h
    +++ b/include/linux/cpumask.h
    @@ -799,7 +799,8 @@ static inline const struct cpumask *get_cpu_mask(unsigned int cpu)
    #define first_cpu(src) ({ (void)(src); 0; })
    #define next_cpu(n, src) ({ (void)(src); 1; })
    #define any_online_cpu(mask) 0
    -#define for_each_cpu_mask(cpu, mask) \
    +#define for_each_cpu_mask(cpu, mask) \
    + typecheck(struct cpumask *, (mask)); \
    for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask)
    #else /* NR_CPUS > 1 */
    int __first_cpu(const cpumask_t *srcp);
    @@ -809,6 +810,7 @@ int __next_cpu(int n, const cpumask_t *srcp);
    #define next_cpu(n, src) __next_cpu((n), &(src))
    #define any_online_cpu(mask) cpumask_any_and(&mask, cpu_online_mask)
    #define for_each_cpu_mask(cpu, mask) \
    + typecheck(struct cpumask *, (mask)); \
    for ((cpu) = -1; \
    (cpu) = next_cpu((cpu), (mask)), \
    (cpu) < NR_CPUS; )
    --
    1.7.8.5


    \
     
     \ /
      Last update: 2012-04-14 21:19    [W:0.022 / U:3.048 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site