diff options
author | Philippe Gerum <rpm@xenomai.org> | 2009-06-22 12:26:22 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2009-09-16 21:28:42 -0400 |
commit | f4e129399c9ead8ec37910ce9793813698c2df51 (patch) | |
tree | df38720ee6bf3e2561d48754222ead051ecf7570 | |
parent | 9ea7770fdb0d6742d6a0aba62facda4b35356cf2 (diff) |
Blackfin: inline I-pipe bypass code in ret_from_exception
Signed-off-by: Philippe Gerum <rpm@xenomai.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rw-r--r-- | arch/blackfin/kernel/ipipe.c | 5 | ||||
-rw-r--r-- | 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 be4f24ebd40c..5d7382396dc0 100644 --- a/arch/blackfin/kernel/ipipe.c +++ b/arch/blackfin/kernel/ipipe.c | |||
@@ -164,11 +164,6 @@ out: | |||
164 | __clear_bit(IPIPE_STALL_FLAG, &p->status); | 164 | __clear_bit(IPIPE_STALL_FLAG, &p->status); |
165 | } | 165 | } |
166 | 166 | ||
167 | int __ipipe_check_root(void) | ||
168 | { | ||
169 | return ipipe_root_domain_p; | ||
170 | } | ||
171 | |||
172 | void __ipipe_enable_irqdesc(struct ipipe_domain *ipd, unsigned irq) | 167 | void __ipipe_enable_irqdesc(struct ipipe_domain *ipd, unsigned irq) |
173 | { | 168 | { |
174 | struct irq_desc *desc = irq_to_desc(irq); | 169 | 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 2c58b60ff131..cbc5b6d1ed06 100644 --- a/arch/blackfin/mach-common/entry.S +++ b/arch/blackfin/mach-common/entry.S | |||
@@ -840,13 +840,13 @@ ENDPROC(_resume) | |||
840 | 840 | ||
841 | ENTRY(_ret_from_exception) | 841 | ENTRY(_ret_from_exception) |
842 | #ifdef CONFIG_IPIPE | 842 | #ifdef CONFIG_IPIPE |
843 | [--sp] = rets; | 843 | p2.l = _per_cpu__ipipe_percpu_domain; |
844 | SP += -12; | 844 | p2.h = _per_cpu__ipipe_percpu_domain; |
845 | call ___ipipe_check_root | 845 | r0.l = _ipipe_root; |
846 | SP += 12 | 846 | r0.h = _ipipe_root; |
847 | rets = [sp++]; | 847 | r2 = [p2]; |
848 | cc = r0 == 0; | 848 | cc = r0 == r2; |
849 | if cc jump 4f; /* not on behalf of Linux, get out */ | 849 | if !cc jump 4f; /* not on behalf of the root domain, get out */ |
850 | #endif /* CONFIG_IPIPE */ | 850 | #endif /* CONFIG_IPIPE */ |
851 | p2.l = lo(IPEND); | 851 | p2.l = lo(IPEND); |
852 | p2.h = hi(IPEND); | 852 | p2.h = hi(IPEND); |