lkml.org 
[lkml]   [2008]   [Oct]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    SubjectRe: [PATCH -tip/cpus4096-v2] cpumask: fix cpumask of call_function_data
    Date
    On Friday 24 October 2008 15:47:20 Hiroshi Shimamoto wrote:
    > From: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>

    Ingo, because of these concerns I recommend you revert
    d4de5ac3b5e70928c86e3e5ac311f16cbf2e9ab3 (cpumask: smp_call_function_many())
    for now, and apply this less contentious version.

    Subject: cpumask: smp_call_function_many()
    From: Rusty Russell <rusty@rustcorp.com.au>

    Transition from cpumask_t-taking smp_call_function_mask() to a new
    smp_call_function_many() which takes a struct cpumask * instead.

    (Naming is inspired by smp_call_function_single).

    Unfortunately, converting the function implementation properly is
    non-trivial, but what we care about is the API, so this simply wraps
    it.

    Note that the new one returns void: the old one couldn't fail either
    unless there was a logic bug.

    The old smp_call_function_mask() isn't marked __deprecated, because
    sparc64 builds with -Werr in arch/sparc (thanks Stephen).

    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

    diff -r cdd2da35b209 include/linux/smp.h
    --- a/include/linux/smp.h Fri Oct 24 14:10:08 2008 +1100
    +++ b/include/linux/smp.h Fri Oct 24 22:08:55 2008 +1100
    @@ -64,8 +64,17 @@ extern void smp_cpus_done(unsigned int m
    * Call a function on all other processors
    */
    int smp_call_function(void(*func)(void *info), void *info, int wait);
    +/* Deprecated: use smp_call_function_many() which uses a cpumask ptr. */
    int smp_call_function_mask(cpumask_t mask, void(*func)(void *info), void *info,
    int wait);
    +
    +static inline void smp_call_function_many(const struct cpumask *mask,
    + void (*func)(void *info), void *info,
    + int wait)
    +{
    + smp_call_function_mask(*mask, func, info, wait);
    +}
    +
    int smp_call_function_single(int cpuid, void (*func) (void *info), void *info,
    int wait);
    void __smp_call_function_single(int cpuid, struct call_single_data *data);



    \
     
     \ /
      Last update: 2008-10-24 13:17    [W:0.028 / U:0.408 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site