[Xenomai-git] Philippe Gerum : cobalt/arm64: drop obsolete config knob
Module: xenomai-3 Branch: next Commit: ab35b3a6075b1b72bfe73c317236a243cd8d3677 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=ab35b3a6075b1b72bfe73c317236a243cd8d3677 Author: Philippe GerumDate: Sat Nov 14 18:17:49 2015 +0100 cobalt/arm64: drop obsolete config knob All existing ARM64 pipeline implementations provide the CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH knob, which is tested directly in the Xenomai code base. No need for CONFIG_XENO_ARCH_UNLOCKED_SWITCH anymore. --- kernel/cobalt/arch/arm64/Kconfig |3 --- 1 file changed, 3 deletions(-) diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig index 572de3e..bdf5f16 100644 --- a/kernel/cobalt/arch/arm64/Kconfig +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -1,9 +1,6 @@ source "kernel/xenomai/Kconfig" source "drivers/xenomai/Kconfig" -config XENO_ARCH_UNLOCKED_SWITCH - def_bool IPIPE_WANT_PREEMPTIBLE_SWITCH - config XENO_ARCH_FPU def_bool y ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Philippe Gerum : cobalt/powerpc: drop obsolete config knob
Module: xenomai-3 Branch: next Commit: aea54828bd4d31ea8222cd6d1a98d0afdb1d30e3 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=aea54828bd4d31ea8222cd6d1a98d0afdb1d30e3 Author: Philippe GerumDate: Sat Nov 14 18:14:53 2015 +0100 cobalt/powerpc: drop obsolete config knob As of fbe1164, CONFIG_XENO_ARCH_UNLOCKED_SWITCH is not tested anymore in the code base. --- kernel/cobalt/arch/powerpc/Kconfig |3 --- 1 file changed, 3 deletions(-) diff --git a/kernel/cobalt/arch/powerpc/Kconfig b/kernel/cobalt/arch/powerpc/Kconfig index 1cabef3..2069288 100644 --- a/kernel/cobalt/arch/powerpc/Kconfig +++ b/kernel/cobalt/arch/powerpc/Kconfig @@ -10,6 +10,3 @@ config XENO_ARCH_FPU config XENO_ARCH_SYS3264 def_bool n - -config XENO_ARCH_UNLOCKED_SWITCH - def_bool n ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Philippe Gerum : cobalt/sched: detect preemptible switch support in pipeline
Module: xenomai-3 Branch: next Commit: fbe1164d2ae9c11a24e4c25a64bad2774cba3e9d URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=fbe1164d2ae9c11a24e4c25a64bad2774cba3e9d Author: Philippe GerumDate: Sat Nov 14 18:07:15 2015 +0100 cobalt/sched: detect preemptible switch support in pipeline CONFIG_XENO_ARCH_UNLOCKED_SWITCH is merely an alias for CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH, which is only meaningful to the ARM architecture, now that PowerPC dropped such support. Use the pipeline symbol directly to make the dependency explicit. --- include/cobalt/kernel/sched.h |8 kernel/cobalt/sched.c | 16 kernel/cobalt/thread.c|2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/include/cobalt/kernel/sched.h b/include/cobalt/kernel/sched.h index fe1df7d..d5d93c2 100644 --- a/include/cobalt/kernel/sched.h +++ b/include/cobalt/kernel/sched.h @@ -93,7 +93,7 @@ struct xnsched { struct xntimer rrbtimer; /*!< Root thread control block. */ struct xnthread rootcb; -#ifdef CONFIG_XENO_ARCH_UNLOCKED_SWITCH +#ifdef CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH struct xnthread *last; #endif #ifdef CONFIG_XENO_ARCH_FPU @@ -329,7 +329,7 @@ static inline int xnsched_primary_p(void) return !xnsched_unblockable_p(); } -#ifdef CONFIG_XENO_ARCH_UNLOCKED_SWITCH +#ifdef CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH struct xnsched *xnsched_finish_unlocked_switch(struct xnsched *sched); @@ -341,7 +341,7 @@ int xnsched_maybe_resched_after_unlocked_switch(struct xnsched *sched) return sched->status & XNRESCHED; } -#else /* !CONFIG_XENO_ARCH_UNLOCKED_SWITCH */ +#else /* !CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH */ static inline struct xnsched * xnsched_finish_unlocked_switch(struct xnsched *sched) @@ -358,7 +358,7 @@ xnsched_maybe_resched_after_unlocked_switch(struct xnsched *sched) return 0; } -#endif /* !CONFIG_XENO_ARCH_UNLOCKED_SWITCH */ +#endif /* !CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH */ #ifdef CONFIG_XENO_OPT_WATCHDOG static inline void xnsched_reset_watchdog(struct xnsched *sched) diff --git a/kernel/cobalt/sched.c b/kernel/cobalt/sched.c index fa96cd3..fb20265 100644 --- a/kernel/cobalt/sched.c +++ b/kernel/cobalt/sched.c @@ -292,7 +292,7 @@ struct xnthread *xnsched_pick_next(struct xnsched *sched) #endif /* CONFIG_XENO_OPT_SCHED_CLASSES */ } -#ifdef CONFIG_XENO_ARCH_UNLOCKED_SWITCH +#ifdef CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH struct xnsched *xnsched_finish_unlocked_switch(struct xnsched *sched) { @@ -318,7 +318,7 @@ struct xnsched *xnsched_finish_unlocked_switch(struct xnsched *sched) return sched; } -#endif /* CONFIG_XENO_ARCH_UNLOCKED_SWITCH */ +#endif /* CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH */ void xnsched_lock(void) { @@ -493,16 +493,16 @@ void xnsched_migrate(struct xnthread *thread, struct xnsched *sched) xnsched_set_resched(thread->sched); migrate_thread(thread, sched); -#ifdef CONFIG_XENO_ARCH_UNLOCKED_SWITCH +#ifdef CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH /* * Mark the thread in flight, xnsched_finish_unlocked_switch() * will put the thread on the remote runqueue. */ xnthread_set_state(thread, XNMIGRATE); -#else /* !CONFIG_XENO_ARCH_UNLOCKED_SWITCH */ +#else /* Move thread to the remote runnable queue. */ xnsched_putback(thread); -#endif /* !CONFIG_XENO_ARCH_UNLOCKED_SWITCH */ +#endif } /* @@ -708,11 +708,11 @@ struct xnthread *xnsched_rt_pick(struct xnsched *sched) static inline void switch_context(struct xnsched *sched, struct xnthread *prev, struct xnthread *next) { -#ifdef CONFIG_XENO_ARCH_UNLOCKED_SWITCH +#ifdef CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH sched->last = prev; sched->status |= XNINSW; xnlock_clear_irqon(); -#endif /* !CONFIG_XENO_ARCH_UNLOCKED_SWITCH */ +#endif xnarch_switch_to(prev, next); } @@ -787,7 +787,7 @@ static inline void enter_root(struct xnthread *root) { struct xnarchtcb *rootcb __maybe_unused = xnthread_archtcb(root); -#ifdef CONFIG_XENO_ARCH_UNLOCKED_SWITCH +#ifdef CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH if (rootcb->core.mm == NULL) set_ti_thread_flag(rootcb->core.tip, TIF_MMSWITCH_INT); #endif diff --git a/kernel/cobalt/thread.c b/kernel/cobalt/thread.c index 77cea1a..f3d57a8 100644 --- a/kernel/cobalt/thread.c +++ b/kernel/cobalt/thread.c @@ -394,7 +394,7 @@ EXPORT_SYMBOL_GPL(xnthread_prepare_wait); static inline int moving_target(struct xnsched *sched, struct xnthread *thread) { int ret = 0; -#ifdef CONFIG_XENO_ARCH_UNLOCKED_SWITCH +#ifdef CONFIG_IPIPE_WANT_PREEMPTIBLE_SWITCH /* * When deleting a thread in the course of a context switch or * in flight to another CPU with nklock unlocked on a distant ___ Xenomai-git mailing list
[Xenomai-git] Philippe Gerum : cobalt/powerpc: track current mm unconditionally
Module: xenomai-3 Branch: next Commit: 621dd3b848cdf32cd1ceab81e6862b0449605b82 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=621dd3b848cdf32cd1ceab81e6862b0449605b82 Author: Philippe GerumDate: Sat Nov 14 15:21:02 2015 +0100 cobalt/powerpc: track current mm unconditionally All pipelines Cobalt can work with (i.e. 3.10+) for the powerpc architecture do provide the mm tracking feature unconditionally, so there is no point in keeping any build switch for it. --- kernel/cobalt/arch/powerpc/Kconfig |4 1 file changed, 4 deletions(-) diff --git a/kernel/cobalt/arch/powerpc/Kconfig b/kernel/cobalt/arch/powerpc/Kconfig index 2bbac89..40eae0b 100644 --- a/kernel/cobalt/arch/powerpc/Kconfig +++ b/kernel/cobalt/arch/powerpc/Kconfig @@ -5,12 +5,8 @@ config XENO_ARCH_MATH_EMU bool default y if MATH_EMU || MATH_EMULATION -config IPIPE_WANT_ACTIVE_MM -bool - config IPIPE_WANT_PREEMPTIBLE_SWITCH bool - select IPIPE_WANT_ACTIVE_MM default y if XENO_ARCH_UNLOCKED_SWITCH default n if !XENO_ARCH_UNLOCKED_SWITCH ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Philippe Gerum : cobalt/thread: track thread_info unconditionally
Module: xenomai-3 Branch: next Commit: 13db1e66a36faa5b2852760459ab48b7db0773da URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=13db1e66a36faa5b2852760459ab48b7db0773da Author: Philippe GerumDate: Sat Nov 14 14:47:44 2015 +0100 cobalt/thread: track thread_info unconditionally We almost always want to track the thread_info structure of the host task in the core tcb, and doing so is cheap, so there is no point in building this support conditionally. --- kernel/cobalt/arch/arm/Kconfig |3 --- kernel/cobalt/arch/arm64/Kconfig |3 --- kernel/cobalt/arch/powerpc/Kconfig |4 kernel/cobalt/include/asm-generic/xenomai/thread.h |2 -- kernel/cobalt/sched.c |2 -- kernel/cobalt/thread.c |4 6 files changed, 18 deletions(-) diff --git a/kernel/cobalt/arch/arm/Kconfig b/kernel/cobalt/arch/arm/Kconfig index dc6485d..2043d70 100644 --- a/kernel/cobalt/arch/arm/Kconfig +++ b/kernel/cobalt/arch/arm/Kconfig @@ -26,9 +26,6 @@ config IPIPE_WANT_PREEMPTIBLE_SWITCH config IPIPE_WANT_ACTIVE_MM def_bool y -config XENO_ARCH_WANT_TIP - def_bool y - config XENO_ARCH_FPU def_bool VFP diff --git a/kernel/cobalt/arch/arm64/Kconfig b/kernel/cobalt/arch/arm64/Kconfig index 27b5026..572de3e 100644 --- a/kernel/cobalt/arch/arm64/Kconfig +++ b/kernel/cobalt/arch/arm64/Kconfig @@ -4,9 +4,6 @@ source "drivers/xenomai/Kconfig" config XENO_ARCH_UNLOCKED_SWITCH def_bool IPIPE_WANT_PREEMPTIBLE_SWITCH -config XENO_ARCH_WANT_TIP - def_bool y - config XENO_ARCH_FPU def_bool y diff --git a/kernel/cobalt/arch/powerpc/Kconfig b/kernel/cobalt/arch/powerpc/Kconfig index ef49798..2bbac89 100644 --- a/kernel/cobalt/arch/powerpc/Kconfig +++ b/kernel/cobalt/arch/powerpc/Kconfig @@ -14,9 +14,6 @@ config IPIPE_WANT_PREEMPTIBLE_SWITCH default y if XENO_ARCH_UNLOCKED_SWITCH default n if !XENO_ARCH_UNLOCKED_SWITCH -config XENO_ARCH_WANT_TIP - bool - config XENO_ARCH_FPU def_bool PPC_FPU @@ -28,7 +25,6 @@ menu "Machine/platform-specific options" config XENO_ARCH_UNLOCKED_SWITCH bool "Unlocked context switch" depends on IPIPE_HAVE_PREEMPTIBLE_SWITCH - select XENO_ARCH_WANT_TIP default y help diff --git a/kernel/cobalt/include/asm-generic/xenomai/thread.h b/kernel/cobalt/include/asm-generic/xenomai/thread.h index 5c1bcc4..b559004 100644 --- a/kernel/cobalt/include/asm-generic/xenomai/thread.h +++ b/kernel/cobalt/include/asm-generic/xenomai/thread.h @@ -33,9 +33,7 @@ struct xntcb { struct mm_struct *mm; struct mm_struct *active_mm; struct thread_struct ts; -#ifdef CONFIG_XENO_ARCH_WANT_TIP struct thread_info *tip; -#endif #ifdef CONFIG_XENO_ARCH_FPU struct task_struct *user_fpu_owner; #endif diff --git a/kernel/cobalt/sched.c b/kernel/cobalt/sched.c index 0b7b93c..fa96cd3 100644 --- a/kernel/cobalt/sched.c +++ b/kernel/cobalt/sched.c @@ -805,9 +805,7 @@ static inline void leave_root(struct xnthread *root) rootcb->core.host_task = p; rootcb->core.tsp = >thread; rootcb->core.mm = rootcb->core.active_mm = ipipe_get_active_mm(); -#ifdef CONFIG_XENO_ARCH_WANT_TIP rootcb->core.tip = task_thread_info(p); -#endif xnarch_leave_root(root); } diff --git a/kernel/cobalt/thread.c b/kernel/cobalt/thread.c index bffa5b8..77cea1a 100644 --- a/kernel/cobalt/thread.c +++ b/kernel/cobalt/thread.c @@ -247,9 +247,7 @@ void xnthread_init_shadow_tcb(struct xnthread *thread) tcb->core.tsp = >thread; tcb->core.mm = p->mm; tcb->core.active_mm = p->mm; -#ifdef CONFIG_XENO_ARCH_WANT_TIP tcb->core.tip = task_thread_info(p); -#endif #ifdef CONFIG_XENO_ARCH_FPU tcb->core.user_fpu_owner = p; #endif /* CONFIG_XENO_ARCH_FPU */ @@ -265,9 +263,7 @@ void xnthread_init_root_tcb(struct xnthread *thread) tcb->core.host_task = p; tcb->core.tsp = >core.ts; tcb->core.mm = p->mm; -#ifdef CONFIG_XENO_ARCH_WANT_TIP tcb->core.tip = NULL; -#endif xnarch_init_root_tcb(thread); } ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Philippe Gerum : cobalt/arm: track current mm unconditionally
Module: xenomai-3 Branch: next Commit: 96cb425e0d51f33ad91f94409563272ec38c0522 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=96cb425e0d51f33ad91f94409563272ec38c0522 Author: Philippe GerumDate: Sat Nov 14 15:21:02 2015 +0100 cobalt/arm: track current mm unconditionally All pipelines Cobalt can work with (i.e. 3.10+) for the arm architecture do provide the mm tracking feature unconditionally, so there is no point in keeping any build switch for it. --- kernel/cobalt/arch/arm/Kconfig |3 --- 1 file changed, 3 deletions(-) diff --git a/kernel/cobalt/arch/arm/Kconfig b/kernel/cobalt/arch/arm/Kconfig index 2043d70..0c4e0aa 100644 --- a/kernel/cobalt/arch/arm/Kconfig +++ b/kernel/cobalt/arch/arm/Kconfig @@ -23,9 +23,6 @@ config IPIPE_WANT_PREEMPTIBLE_SWITCH default y if XENO_ARCH_UNLOCKED_SWITCH default n if !XENO_ARCH_UNLOCKED_SWITCH -config IPIPE_WANT_ACTIVE_MM - def_bool y - config XENO_ARCH_FPU def_bool VFP ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Gilles Chanteperdrix : cobalt/x86: remove redundant change of irq mask
Module: xenomai-gch Branch: next Commit: 7db054e748ea7447d81fa1ca7288b4f142562a9b URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=7db054e748ea7447d81fa1ca7288b4f142562a9b Author: Gilles ChanteperdrixDate: Fri Nov 20 14:51:25 2015 +0100 cobalt/x86: remove redundant change of irq mask xnarch_handle_fpu_fault is called with head domain stalled, xnlock_get/xnlock_put are sufficient. --- kernel/cobalt/arch/x86/thread.c |5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/kernel/cobalt/arch/x86/thread.c b/kernel/cobalt/arch/x86/thread.c index 8d2fc23..fe7ae7b 100644 --- a/kernel/cobalt/arch/x86/thread.c +++ b/kernel/cobalt/arch/x86/thread.c @@ -281,7 +281,6 @@ int xnarch_handle_fpu_fault(struct xnthread *from, { struct xnarchtcb *tcb = xnthread_archtcb(to); struct task_struct *p = tcb->core.host_task; - spl_t s; if (__thread_has_fpu(p)) return 0; @@ -311,9 +310,9 @@ int xnarch_handle_fpu_fault(struct xnthread *from, __thread_set_has_fpu(p); - xnlock_get_irqsave(, s); + xnlock_get(); xnthread_set_state(to, XNFPU); - xnlock_put_irqrestore(, s); + xnlock_put(); return 1; } ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Gilles Chanteperdrix : cobalt/fpu: stall head domain to handle fpu fault
Module: xenomai-gch Branch: next Commit: 24f4f3d8609cf1b9bfc9f3055211657cd6bf7d28 URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=24f4f3d8609cf1b9bfc9f3055211657cd6bf7d28 Author: Gilles ChanteperdrixDate: Fri Nov 20 14:50:28 2015 +0100 cobalt/fpu: stall head domain to handle fpu fault Handling an FPU fault and setting the fpu holder must be atomic. --- kernel/cobalt/posix/process.c |5 + 1 file changed, 5 insertions(+) diff --git a/kernel/cobalt/posix/process.c b/kernel/cobalt/posix/process.c index cc056ef..788a24a 100644 --- a/kernel/cobalt/posix/process.c +++ b/kernel/cobalt/posix/process.c @@ -731,11 +731,16 @@ static inline int handle_exception(struct ipipe_trap_data *d) if (xnarch_fault_fpu_p(d)) { #ifdef CONFIG_XENO_ARCH_FPU + spl_t s; + /* FPU exception received in primary mode. */ + splhigh(s); if (xnarch_handle_fpu_fault(sched->fpuholder, thread, d)) { sched->fpuholder = thread; + splexit(s); return 1; } + splexit(s); #endif /* CONFIG_XENO_ARCH_FPU */ print_symbol("invalid use of FPU in Xenomai context at %s\n", xnarch_fault_pc(d)); ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Gilles Chanteperdrix : cobalt/arm: remove unused variable
Module: xenomai-gch Branch: stable-3.0.x Commit: ee0b43329fc93198f7cd620fbd84ade15aa57319 URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=ee0b43329fc93198f7cd620fbd84ade15aa57319 Author: Gilles ChanteperdrixDate: Thu Nov 26 20:14:14 2015 +0100 cobalt/arm: remove unused variable Avoids compiler warning --- kernel/cobalt/arch/arm/thread.c |2 -- 1 file changed, 2 deletions(-) diff --git a/kernel/cobalt/arch/arm/thread.c b/kernel/cobalt/arch/arm/thread.c index 46b830d..7e2b7cf 100644 --- a/kernel/cobalt/arch/arm/thread.c +++ b/kernel/cobalt/arch/arm/thread.c @@ -270,8 +270,6 @@ void xnarch_switch_fpu(struct xnthread *from, struct xnthread *to) int xnarch_handle_fpu_fault(struct xnthread *from, struct xnthread *to, struct ipipe_trap_data *d) { - spl_t s; - if (xnthread_test_state(to, XNFPU)) /* FPU is already enabled, probably an exception */ return 0; ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Gilles Chanteperdrix : cobalt/fpu: stall head domain to handle fpu fault
Module: xenomai-3 Branch: next Commit: 24f4f3d8609cf1b9bfc9f3055211657cd6bf7d28 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=24f4f3d8609cf1b9bfc9f3055211657cd6bf7d28 Author: Gilles ChanteperdrixDate: Fri Nov 20 14:50:28 2015 +0100 cobalt/fpu: stall head domain to handle fpu fault Handling an FPU fault and setting the fpu holder must be atomic. --- kernel/cobalt/posix/process.c |5 + 1 file changed, 5 insertions(+) diff --git a/kernel/cobalt/posix/process.c b/kernel/cobalt/posix/process.c index cc056ef..788a24a 100644 --- a/kernel/cobalt/posix/process.c +++ b/kernel/cobalt/posix/process.c @@ -731,11 +731,16 @@ static inline int handle_exception(struct ipipe_trap_data *d) if (xnarch_fault_fpu_p(d)) { #ifdef CONFIG_XENO_ARCH_FPU + spl_t s; + /* FPU exception received in primary mode. */ + splhigh(s); if (xnarch_handle_fpu_fault(sched->fpuholder, thread, d)) { sched->fpuholder = thread; + splexit(s); return 1; } + splexit(s); #endif /* CONFIG_XENO_ARCH_FPU */ print_symbol("invalid use of FPU in Xenomai context at %s\n", xnarch_fault_pc(d)); ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Gilles Chanteperdrix : cobalt/arm: remove redundant change of irq mask
Module: xenomai-3 Branch: next Commit: 7f39867163306ed07995af4886ec84bf7f7c01d1 URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=7f39867163306ed07995af4886ec84bf7f7c01d1 Author: Gilles ChanteperdrixDate: Fri Nov 20 14:51:25 2015 +0100 cobalt/arm: remove redundant change of irq mask xnarch_handle_fpu_fault is called with head domain stalled, xnlock_get/xnlock_put are sufficient. --- kernel/cobalt/arch/arm/thread.c |6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/kernel/cobalt/arch/arm/thread.c b/kernel/cobalt/arch/arm/thread.c index e13fb63..7e2b7cf 100644 --- a/kernel/cobalt/arch/arm/thread.c +++ b/kernel/cobalt/arch/arm/thread.c @@ -270,8 +270,6 @@ void xnarch_switch_fpu(struct xnthread *from, struct xnthread *to) int xnarch_handle_fpu_fault(struct xnthread *from, struct xnthread *to, struct ipipe_trap_data *d) { - spl_t s; - if (xnthread_test_state(to, XNFPU)) /* FPU is already enabled, probably an exception */ return 0; @@ -283,9 +281,9 @@ int xnarch_handle_fpu_fault(struct xnthread *from, return 0; #endif - xnlock_get_irqsave(, s); + xnlock_get(); xnthread_set_state(to, XNFPU); - xnlock_put_irqrestore(, s); + xnlock_put(); xnarch_switch_fpu(from, to); ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git
[Xenomai-git] Gilles Chanteperdrix : cobalt/x86: remove redundant change of irq mask
Module: xenomai-3 Branch: next Commit: 7db054e748ea7447d81fa1ca7288b4f142562a9b URL: http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=7db054e748ea7447d81fa1ca7288b4f142562a9b Author: Gilles ChanteperdrixDate: Fri Nov 20 14:51:25 2015 +0100 cobalt/x86: remove redundant change of irq mask xnarch_handle_fpu_fault is called with head domain stalled, xnlock_get/xnlock_put are sufficient. --- kernel/cobalt/arch/x86/thread.c |5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/kernel/cobalt/arch/x86/thread.c b/kernel/cobalt/arch/x86/thread.c index 8d2fc23..fe7ae7b 100644 --- a/kernel/cobalt/arch/x86/thread.c +++ b/kernel/cobalt/arch/x86/thread.c @@ -281,7 +281,6 @@ int xnarch_handle_fpu_fault(struct xnthread *from, { struct xnarchtcb *tcb = xnthread_archtcb(to); struct task_struct *p = tcb->core.host_task; - spl_t s; if (__thread_has_fpu(p)) return 0; @@ -311,9 +310,9 @@ int xnarch_handle_fpu_fault(struct xnthread *from, __thread_set_has_fpu(p); - xnlock_get_irqsave(, s); + xnlock_get(); xnthread_set_state(to, XNFPU); - xnlock_put_irqrestore(, s); + xnlock_put(); return 1; } ___ Xenomai-git mailing list Xenomai-git@xenomai.org http://xenomai.org/mailman/listinfo/xenomai-git