Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.6.25-rc7 /kernel/stop_machine.c

Filename:/kernel/stop_machine.c
Lines Added:5
Lines Deleted:5
Also changed in: (Previous) 2.6.25-rc6  2.6.25-rc5  2.6.25-rc4  2.6.25-rc3  2.6.25-rc2  2.6.25-rc1 
(Following) 2.6.25-rc8  2.6.25-rc9  2.6.25  2.6.25-git3  2.6.25-git4  2.6.25-git5 

Location
[  2.6.25-rc7
  [  kernel
     o  stop_machine.c

Patch

diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c
index 319821e..6f4e0e1 100644
--- a/kernel/stop_machine.c
+++ b/kernel/stop_machine.c
@@ -29,7 +29,6 @@ enum stopmachine_state {
 static enum stopmachine_state stopmachine_state;
 static unsigned int stopmachine_num_threads;
 static atomic_t stopmachine_thread_ack;
-static DECLARE_MUTEX(stopmachine_mutex);
 
 static int stopmachine(void *cpu)
 {
@@ -170,6 +169,7 @@ static int do_stop(void *_smdata)
 struct task_struct *__stop_machine_run(int (*fn)(void *), void *data,
                    unsigned int cpu)
 {
+   static DEFINE_MUTEX(stopmachine_mutex);
    struct stop_machine_data smdata;
    struct task_struct *p;
 
@@ -177,7 +177,7 @@ struct task_struct *__stop_machine_run(int (*fn)(void *), void *data,
    smdata.data = data;
    init_completion(&smdata.done);
 
-   down(&stopmachine_mutex);
+   mutex_lock(&stopmachine_mutex);
 
    /* If they don't care which CPU fn runs on, bind to any online one. */
    if (cpu == NR_CPUS)
@@ -193,7 +193,7 @@ struct task_struct *__stop_machine_run(int (*fn)(void *), void *data,
       wake_up_process(p);
       wait_for_completion(&smdata.done);
    }
-   up(&stopmachine_mutex);
+   mutex_unlock(&stopmachine_mutex);
    return p;
 }
 
@@ -203,13 +203,13 @@ int stop_machine_run(int (*fn)(void *), void *data, unsigned int cpu)
    int ret;
 
    /* No CPUs can come up or down during this. */
-   lock_cpu_hotplug();
+   get_online_cpus();
    p = __stop_machine_run(fn, data, cpu);
    if (!IS_ERR(p))
       ret = kthread_stop(p);
    else
       ret = PTR_ERR(p);
-   unlock_cpu_hotplug();
+   put_online_cpus();
 
    return ret;
 }


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.