提交 7da8f860 编写于 作者: K Kumar Gala 提交者: Paul Mackerras

[PATCH] ppc32: Removed non-inlined versions of local_irq* functions

We always use the inlined versions of local_irq_enable, local_irq_disable,
local_save_flags_ptr, and local_irq_restore on ppc32 so the non-inlined
versions where just taking up space.
Signed-off-by: NKumar Gala <kumar.gala@freescale.com>
Signed-off-by: NPaul Mackerras <paulus@samba.org>
上级 5f7c6907
......@@ -273,134 +273,6 @@ _GLOBAL(low_choose_7447a_dfs)
#endif /* CONFIG_CPU_FREQ_PMAC && CONFIG_6xx */
/* void local_save_flags_ptr(unsigned long *flags) */
_GLOBAL(local_save_flags_ptr)
mfmsr r4
stw r4,0(r3)
blr
/*
* Need these nops here for taking over save/restore to
* handle lost intrs
* -- Cort
*/
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
_GLOBAL(local_save_flags_ptr_end)
/* void local_irq_restore(unsigned long flags) */
_GLOBAL(local_irq_restore)
/*
* Just set/clear the MSR_EE bit through restore/flags but do not
* change anything else. This is needed by the RT system and makes
* sense anyway.
* -- Cort
*/
mfmsr r4
/* Copy all except the MSR_EE bit from r4 (current MSR value)
to r3. This is the sort of thing the rlwimi instruction is
designed for. -- paulus. */
rlwimi r3,r4,0,17,15
/* Check if things are setup the way we want _already_. */
cmpw 0,r3,r4
beqlr
1: SYNC
mtmsr r3
SYNC
blr
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
_GLOBAL(local_irq_restore_end)
_GLOBAL(local_irq_disable)
mfmsr r0 /* Get current interrupt state */
rlwinm r3,r0,16+1,32-1,31 /* Extract old value of 'EE' */
rlwinm r0,r0,0,17,15 /* clear MSR_EE in r0 */
SYNC /* Some chip revs have problems here... */
mtmsr r0 /* Update machine state */
blr /* Done */
/*
* Need these nops here for taking over save/restore to
* handle lost intrs
* -- Cort
*/
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
_GLOBAL(local_irq_disable_end)
_GLOBAL(local_irq_enable)
mfmsr r3 /* Get current state */
ori r3,r3,MSR_EE /* Turn on 'EE' bit */
SYNC /* Some chip revs have problems here... */
mtmsr r3 /* Update machine state */
blr
/*
* Need these nops here for taking over save/restore to
* handle lost intrs
* -- Cort
*/
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
_GLOBAL(local_irq_enable_end)
/*
* complement mask on the msr then "or" some values on.
* _nmask_and_or_msr(nmask, value_to_or)
......
......@@ -272,16 +272,6 @@ EXPORT_SYMBOL(screen_info);
#endif
EXPORT_SYMBOL(__delay);
#ifndef INLINE_IRQS
EXPORT_SYMBOL(local_irq_enable);
EXPORT_SYMBOL(local_irq_enable_end);
EXPORT_SYMBOL(local_irq_disable);
EXPORT_SYMBOL(local_irq_disable_end);
EXPORT_SYMBOL(local_save_flags_ptr);
EXPORT_SYMBOL(local_save_flags_ptr_end);
EXPORT_SYMBOL(local_irq_restore);
EXPORT_SYMBOL(local_irq_restore_end);
#endif
EXPORT_SYMBOL(timer_interrupt);
EXPORT_SYMBOL(irq_desc);
EXPORT_SYMBOL(tb_ticks_per_jiffy);
......
......@@ -10,12 +10,8 @@
extern void timer_interrupt(struct pt_regs *);
#define INLINE_IRQS
#define irqs_disabled() ((mfmsr() & MSR_EE) == 0)
#ifdef INLINE_IRQS
static inline void local_irq_disable(void)
{
unsigned long msr;
......@@ -45,18 +41,6 @@ static inline void local_irq_save_ptr(unsigned long *flags)
#define local_irq_save(flags) local_irq_save_ptr(&flags)
#define local_irq_restore(flags) mtmsr(flags)
#else
extern void local_irq_enable(void);
extern void local_irq_disable(void);
extern void local_irq_restore(unsigned long);
extern void local_save_flags_ptr(unsigned long *);
#define local_save_flags(flags) local_save_flags_ptr(&flags)
#define local_irq_save(flags) ({local_save_flags(flags);local_irq_disable();})
#endif
extern void do_lost_interrupts(unsigned long);
#define mask_irq(irq) ({if (irq_desc[irq].handler && irq_desc[irq].handler->disable) irq_desc[irq].handler->disable(irq);})
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册