Module: xenomai-forge
Branch: master
Commit: 5050ef434f85dc35df5c34d1c1b38e775b4c1206
URL:    
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=5050ef434f85dc35df5c34d1c1b38e775b4c1206

Author: Philippe Gerum <r...@xenomai.org>
Date:   Fri Jan  6 18:07:43 2012 +0100

cobalt/nucleus: drop pointless CPU synchronization upon shutdown

---

 include/asm-generic/bits/pod.h |   31 -------------------------------
 1 files changed, 0 insertions(+), 31 deletions(-)

diff --git a/include/asm-generic/bits/pod.h b/include/asm-generic/bits/pod.h
index aaaaa74..868e9e8 100644
--- a/include/asm-generic/bits/pod.h
+++ b/include/asm-generic/bits/pod.h
@@ -151,39 +151,8 @@ static inline void xnarch_release_ipi(void)
        return ipipe_free_irq(&rthal_archdata.domain, IPIPE_SERVICE_IPI0);
 }
 
-static struct semaphore xnarch_finalize_sync;
-
-static void xnarch_finalize_cpu(unsigned irq)
-{
-       up(&xnarch_finalize_sync);
-}
-
 static inline void xnarch_notify_halt(void)
 {
-       xnarch_cpumask_t other_cpus = cpu_online_map;
-       int cpu, nr_cpus = num_online_cpus();
-       unsigned long flags;
-
-       sema_init(&xnarch_finalize_sync,0);
-
-       /* Here ipipe_current_domain is in fact root, since xnarch_notify_halt 
is
-          called from xnpod_shutdown, itself called from Linux
-          context. */
-
-       ipipe_request_irq(ipipe_current_domain, IPIPE_SERVICE_IPI2,
-                         (ipipe_irq_handler_t)xnarch_finalize_cpu,
-                         NULL, NULL);
-
-       flags = hard_local_irq_save();
-       cpu_clear(ipipe_processor_id(), other_cpus);
-       ipipe_send_ipi(IPIPE_SERVICE_IPI2, other_cpus);
-       hard_local_irq_restore(flags);
-
-       for(cpu=0; cpu < nr_cpus-1; ++cpu)
-               down(&xnarch_finalize_sync);
-
-       ipipe_free_irq(ipipe_current_domain, IPIPE_SERVICE_IPI2);
-
        rthal_release_control();
 }
 


_______________________________________________
Xenomai-git mailing list
Xenomai-git@gna.org
https://mail.gna.org/listinfo/xenomai-git

Reply via email to