Signed-off-by: Philippe Gerum <r...@xenomai.org>
---
 arch/blackfin/kernel/ipipe.c      |    5 -----
 arch/blackfin/mach-common/entry.S |   14 +++++++-------
 2 files changed, 7 insertions(+), 12 deletions(-)

diff --git a/arch/blackfin/kernel/ipipe.c b/arch/blackfin/kernel/ipipe.c
index 52114c6..cf4aa8b 100644
--- a/arch/blackfin/kernel/ipipe.c
+++ b/arch/blackfin/kernel/ipipe.c
@@ -164,11 +164,6 @@ out:
                __clear_bit(IPIPE_STALL_FLAG, &p->status);
 }
 
-int __ipipe_check_root(void)
-{
-       return ipipe_root_domain_p;
-}
-
 void __ipipe_enable_irqdesc(struct ipipe_domain *ipd, unsigned irq)
 {
        struct irq_desc *desc = irq_to_desc(irq);
diff --git a/arch/blackfin/mach-common/entry.S 
b/arch/blackfin/mach-common/entry.S
index f736813..0879a78 100644
--- a/arch/blackfin/mach-common/entry.S
+++ b/arch/blackfin/mach-common/entry.S
@@ -816,13 +816,13 @@ ENDPROC(_resume)
 
 ENTRY(_ret_from_exception)
 #ifdef CONFIG_IPIPE
-       [--sp] = rets;
-       SP += -12;
-       call ___ipipe_check_root
-       SP += 12
-       rets = [sp++];
-       cc = r0 == 0;
-       if cc jump 4f;                /* not on behalf of Linux, get out */
+       p2.l = _per_cpu__ipipe_percpu_domain;
+       p2.h = _per_cpu__ipipe_percpu_domain;
+       r0.l = _ipipe_root;
+       r0.h = _ipipe_root;
+       r2 = [p2];
+       cc = r0 == r2;
+       if !cc jump 4f;  /* not on behalf of the root domain, get out */
 #endif /* CONFIG_IPIPE */
        p2.l = lo(IPEND);
        p2.h = hi(IPEND);
-- 
1.6.0.4
_______________________________________________
Uclinux-dist-devel mailing list
Uclinux-dist-devel@blackfin.uclinux.org
https://blackfin.uclinux.org/mailman/listinfo/uclinux-dist-devel

Reply via email to