powerpc/irq: Make __do_irq() static
Since commit 48cf12d889
("powerpc/irq: Inline call_do_irq() and
call_do_softirq()"), __do_irq() is not used outside irq.c
Reorder functions and make __do_irq() static and
drop the declaration in irq.h.
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/adbe1c8315ec2d63259f41468e82e51677bb1eda.1654769775.git.christophe.leroy@csgroup.eu
This commit is contained in:
parent
41f20d6db2
commit
051bd351a2
|
@ -54,7 +54,6 @@ extern void *softirq_ctx[NR_CPUS];
|
|||
|
||||
void __do_IRQ(struct pt_regs *regs);
|
||||
extern void __init init_IRQ(void);
|
||||
extern void __do_irq(struct pt_regs *regs);
|
||||
|
||||
int irq_choose_cpu(const struct cpumask *mask);
|
||||
|
||||
|
|
|
@ -220,31 +220,9 @@ static __always_inline void call_do_softirq(const void *sp)
|
|||
);
|
||||
}
|
||||
|
||||
static __always_inline void call_do_irq(struct pt_regs *regs, void *sp)
|
||||
{
|
||||
register unsigned long r3 asm("r3") = (unsigned long)regs;
|
||||
|
||||
/* Temporarily switch r1 to sp, call __do_irq() then restore r1. */
|
||||
asm volatile (
|
||||
PPC_STLU " %%r1, %[offset](%[sp]) ;"
|
||||
"mr %%r1, %[sp] ;"
|
||||
"bl %[callee] ;"
|
||||
PPC_LL " %%r1, 0(%%r1) ;"
|
||||
: // Outputs
|
||||
"+r" (r3)
|
||||
: // Inputs
|
||||
[sp] "b" (sp), [offset] "i" (THREAD_SIZE - STACK_FRAME_OVERHEAD),
|
||||
[callee] "i" (__do_irq)
|
||||
: // Clobbers
|
||||
"lr", "xer", "ctr", "memory", "cr0", "cr1", "cr5", "cr6",
|
||||
"cr7", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10",
|
||||
"r11", "r12"
|
||||
);
|
||||
}
|
||||
|
||||
DEFINE_STATIC_CALL_RET0(ppc_get_irq, *ppc_md.get_irq);
|
||||
|
||||
void __do_irq(struct pt_regs *regs)
|
||||
static void __do_irq(struct pt_regs *regs)
|
||||
{
|
||||
unsigned int irq;
|
||||
|
||||
|
@ -270,6 +248,28 @@ void __do_irq(struct pt_regs *regs)
|
|||
trace_irq_exit(regs);
|
||||
}
|
||||
|
||||
static __always_inline void call_do_irq(struct pt_regs *regs, void *sp)
|
||||
{
|
||||
register unsigned long r3 asm("r3") = (unsigned long)regs;
|
||||
|
||||
/* Temporarily switch r1 to sp, call __do_irq() then restore r1. */
|
||||
asm volatile (
|
||||
PPC_STLU " %%r1, %[offset](%[sp]) ;"
|
||||
"mr %%r1, %[sp] ;"
|
||||
"bl %[callee] ;"
|
||||
PPC_LL " %%r1, 0(%%r1) ;"
|
||||
: // Outputs
|
||||
"+r" (r3)
|
||||
: // Inputs
|
||||
[sp] "b" (sp), [offset] "i" (THREAD_SIZE - STACK_FRAME_OVERHEAD),
|
||||
[callee] "i" (__do_irq)
|
||||
: // Clobbers
|
||||
"lr", "xer", "ctr", "memory", "cr0", "cr1", "cr5", "cr6",
|
||||
"cr7", "r0", "r4", "r5", "r6", "r7", "r8", "r9", "r10",
|
||||
"r11", "r12"
|
||||
);
|
||||
}
|
||||
|
||||
void __do_IRQ(struct pt_regs *regs)
|
||||
{
|
||||
struct pt_regs *old_regs = set_irq_regs(regs);
|
||||
|
|
Loading…
Reference in New Issue