From ee8bc304ab111c0e596a1e6d26a77fe6ee1bc7d6 Mon Sep 17 00:00:00 2001 From: He Chuyue Date: Tue, 19 Jul 2022 15:33:26 +0800 Subject: [PATCH] sw64: simplify do_entInt() Sunway inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/I56OLG -------------------------------- It has already disabled interrupt in hmcode and it's unnecessary to disable again in do_entInt(). This way, do_entInt() is a wrapper of handle_chip_irq(), so simplify it. Signed-off-by: He Chuyue Signed-off-by: Gu Zitao --- arch/sw_64/chip/chip3/chip.c | 5 +++-- arch/sw_64/include/asm/irq_impl.h | 4 +--- arch/sw_64/kernel/irq_sw64.c | 9 --------- 3 files changed, 4 insertions(+), 14 deletions(-) diff --git a/arch/sw_64/chip/chip3/chip.c b/arch/sw_64/chip/chip3/chip.c index 84ca7ffcb2ef..8697891e3930 100644 --- a/arch/sw_64/chip/chip3/chip.c +++ b/arch/sw_64/chip/chip3/chip.c @@ -656,8 +656,8 @@ static void handle_dev_int(struct pt_regs *regs) sw64_io_write(node, DEV_INT_CONFIG, config_val); } -void handle_chip_irq(unsigned long type, unsigned long vector, - unsigned long irq_arg, struct pt_regs *regs) +asmlinkage void do_entInt(unsigned long type, unsigned long vector, + unsigned long irq_arg, struct pt_regs *regs) { struct pt_regs *old_regs; @@ -738,6 +738,7 @@ void handle_chip_irq(unsigned long type, unsigned long vector, } pr_crit("PC = %016lx PS = %04lx\n", regs->pc, regs->ps); } +EXPORT_SYMBOL(do_entInt); /* * Early fix up the chip3 Root Complex settings diff --git a/arch/sw_64/include/asm/irq_impl.h b/arch/sw_64/include/asm/irq_impl.h index b568efef6994..48dbc486a126 100644 --- a/arch/sw_64/include/asm/irq_impl.h +++ b/arch/sw_64/include/asm/irq_impl.h @@ -41,10 +41,8 @@ enum sw64_irq_type { extern struct irqaction timer_irqaction; extern void init_rtc_irq(irq_handler_t handler); extern void handle_irq(int irq); -extern void handle_ipi(struct pt_regs *); +extern void handle_ipi(struct pt_regs *regs); extern void __init sw64_init_irq(void); extern irqreturn_t timer_interrupt(int irq, void *dev); -extern void handle_chip_irq(unsigned long type, unsigned long vector, - unsigned long irq_arg, struct pt_regs *regs); #endif diff --git a/arch/sw_64/kernel/irq_sw64.c b/arch/sw_64/kernel/irq_sw64.c index 8ab845d153eb..88809fa531dd 100644 --- a/arch/sw_64/kernel/irq_sw64.c +++ b/arch/sw_64/kernel/irq_sw64.c @@ -9,15 +9,6 @@ #include #include -asmlinkage void -do_entInt(unsigned long type, unsigned long vector, - unsigned long irq_arg, struct pt_regs *regs) -{ - local_irq_disable(); - handle_chip_irq(type, vector, irq_arg, regs); -} -EXPORT_SYMBOL(do_entInt); - void __init init_IRQ(void) { -- GitLab