Skip to content

Commit cad18da

Browse files
committed
Merge tag 'please-pull-ia64_for_5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux
Pull ia64 updates from Tony Luck: "Couple of cleanup patches" * tag 'please-pull-ia64_for_5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux: tty/serial: cleanup after ioc*_serial driver removal ia64: replace setup_irq() by request_irq()
2 parents d71e064 + 172e789 commit cad18da

File tree

8 files changed

+40
-181
lines changed

8 files changed

+40
-181
lines changed

MAINTAINERS

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7978,6 +7978,7 @@ L: [email protected]
79787978
T: git git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git
79797979
S: Maintained
79807980
F: arch/ia64/
7981+
F: Documentation/ia64/
79817982

79827983
IBM Power 842 compression accelerator
79837984
M: Haren Myneni <[email protected]>
@@ -15095,14 +15096,6 @@ M: Dimitri Sivanich <[email protected]>
1509515096
S: Maintained
1509615097
F: drivers/misc/sgi-gru/
1509715098

15098-
SGI SN-IA64 (Altix) SERIAL CONSOLE DRIVER
15099-
M: Pat Gefre <[email protected]>
15100-
15101-
S: Supported
15102-
F: Documentation/ia64/serial.rst
15103-
F: drivers/tty/serial/ioc?_serial.c
15104-
F: include/linux/ioc?.h
15105-
1510615099
SGI XP/XPC/XPNET DRIVER
1510715100
M: Cliff Whickman <[email protected]>
1510815101
M: Robin Holt <[email protected]>

arch/ia64/include/asm/hw_irq.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ extern struct irq_chip irq_type_ia64_lsapic; /* CPU-internal interrupt controlle
113113
#define ia64_register_ipi ia64_native_register_ipi
114114
#define assign_irq_vector ia64_native_assign_irq_vector
115115
#define free_irq_vector ia64_native_free_irq_vector
116-
#define register_percpu_irq ia64_native_register_percpu_irq
117116
#define ia64_resend_irq ia64_native_resend_irq
118117

119118
extern void ia64_native_register_ipi(void);
@@ -123,7 +122,6 @@ extern void ia64_native_free_irq_vector (int vector);
123122
extern int reserve_irq_vector (int vector);
124123
extern void __setup_vector_irq(int cpu);
125124
extern void ia64_send_ipi (int cpu, int vector, int delivery_mode, int redirect);
126-
extern void ia64_native_register_percpu_irq (ia64_vector vec, struct irqaction *action);
127125
extern void destroy_and_reserve_irq (unsigned int irq);
128126

129127
#ifdef CONFIG_SMP

arch/ia64/kernel/irq.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/* SPDX-License-Identifier: GPL-2.0 */
2+
extern void register_percpu_irq(ia64_vector vec, irq_handler_t handler,
3+
unsigned long flags, const char *name);

arch/ia64/kernel/irq_ia64.c

Lines changed: 15 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -351,11 +351,6 @@ static irqreturn_t smp_irq_move_cleanup_interrupt(int irq, void *dev_id)
351351
return IRQ_HANDLED;
352352
}
353353

354-
static struct irqaction irq_move_irqaction = {
355-
.handler = smp_irq_move_cleanup_interrupt,
356-
.name = "irq_move"
357-
};
358-
359354
static int __init parse_vector_domain(char *arg)
360355
{
361356
if (!arg)
@@ -586,47 +581,36 @@ static irqreturn_t dummy_handler (int irq, void *dev_id)
586581
return IRQ_NONE;
587582
}
588583

589-
static struct irqaction ipi_irqaction = {
590-
.handler = handle_IPI,
591-
.name = "IPI"
592-
};
593-
594584
/*
595585
* KVM uses this interrupt to force a cpu out of guest mode
596586
*/
597-
static struct irqaction resched_irqaction = {
598-
.handler = dummy_handler,
599-
.name = "resched"
600-
};
601-
602-
static struct irqaction tlb_irqaction = {
603-
.handler = dummy_handler,
604-
.name = "tlb_flush"
605-
};
606587

607588
#endif
608589

609590
void
610-
ia64_native_register_percpu_irq (ia64_vector vec, struct irqaction *action)
591+
register_percpu_irq(ia64_vector vec, irq_handler_t handler, unsigned long flags,
592+
const char *name)
611593
{
612594
unsigned int irq;
613595

614596
irq = vec;
615597
BUG_ON(bind_irq_vector(irq, vec, CPU_MASK_ALL));
616598
irq_set_status_flags(irq, IRQ_PER_CPU);
617599
irq_set_chip(irq, &irq_type_ia64_lsapic);
618-
if (action)
619-
setup_irq(irq, action);
600+
if (handler)
601+
if (request_irq(irq, handler, flags, name, NULL))
602+
pr_err("Failed to request irq %u (%s)\n", irq, name);
620603
irq_set_handler(irq, handle_percpu_irq);
621604
}
622605

623606
void __init
624607
ia64_native_register_ipi(void)
625608
{
626609
#ifdef CONFIG_SMP
627-
register_percpu_irq(IA64_IPI_VECTOR, &ipi_irqaction);
628-
register_percpu_irq(IA64_IPI_RESCHEDULE, &resched_irqaction);
629-
register_percpu_irq(IA64_IPI_LOCAL_TLB_FLUSH, &tlb_irqaction);
610+
register_percpu_irq(IA64_IPI_VECTOR, handle_IPI, 0, "IPI");
611+
register_percpu_irq(IA64_IPI_RESCHEDULE, dummy_handler, 0, "resched");
612+
register_percpu_irq(IA64_IPI_LOCAL_TLB_FLUSH, dummy_handler, 0,
613+
"tlb_flush");
630614
#endif
631615
}
632616

@@ -635,10 +619,13 @@ init_IRQ (void)
635619
{
636620
acpi_boot_init();
637621
ia64_register_ipi();
638-
register_percpu_irq(IA64_SPURIOUS_INT_VECTOR, NULL);
622+
register_percpu_irq(IA64_SPURIOUS_INT_VECTOR, NULL, 0, NULL);
639623
#ifdef CONFIG_SMP
640-
if (vector_domain_type != VECTOR_DOMAIN_NONE)
641-
register_percpu_irq(IA64_IRQ_MOVE_VECTOR, &irq_move_irqaction);
624+
if (vector_domain_type != VECTOR_DOMAIN_NONE) {
625+
register_percpu_irq(IA64_IRQ_MOVE_VECTOR,
626+
smp_irq_move_cleanup_interrupt, 0,
627+
"irq_move");
628+
}
642629
#endif
643630
#ifdef CONFIG_PERFMON
644631
pfm_init_percpu();

arch/ia64/kernel/mca.c

Lines changed: 14 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@
104104

105105
#include "mca_drv.h"
106106
#include "entry.h"
107+
#include "irq.h"
107108

108109
#if defined(IA64_MCA_DEBUG_INFO)
109110
# define IA64_MCA_DEBUG(fmt...) printk(fmt)
@@ -1766,36 +1767,6 @@ ia64_mca_disable_cpe_polling(char *str)
17661767

17671768
__setup("disable_cpe_poll", ia64_mca_disable_cpe_polling);
17681769

1769-
static struct irqaction cmci_irqaction = {
1770-
.handler = ia64_mca_cmc_int_handler,
1771-
.name = "cmc_hndlr"
1772-
};
1773-
1774-
static struct irqaction cmcp_irqaction = {
1775-
.handler = ia64_mca_cmc_int_caller,
1776-
.name = "cmc_poll"
1777-
};
1778-
1779-
static struct irqaction mca_rdzv_irqaction = {
1780-
.handler = ia64_mca_rendez_int_handler,
1781-
.name = "mca_rdzv"
1782-
};
1783-
1784-
static struct irqaction mca_wkup_irqaction = {
1785-
.handler = ia64_mca_wakeup_int_handler,
1786-
.name = "mca_wkup"
1787-
};
1788-
1789-
static struct irqaction mca_cpe_irqaction = {
1790-
.handler = ia64_mca_cpe_int_handler,
1791-
.name = "cpe_hndlr"
1792-
};
1793-
1794-
static struct irqaction mca_cpep_irqaction = {
1795-
.handler = ia64_mca_cpe_int_caller,
1796-
.name = "cpe_poll"
1797-
};
1798-
17991770
/* Minimal format of the MCA/INIT stacks. The pseudo processes that run on
18001771
* these stacks can never sleep, they cannot return from the kernel to user
18011772
* space, they do not appear in a normal ps listing. So there is no need to
@@ -2056,18 +2027,23 @@ void __init ia64_mca_irq_init(void)
20562027
* Configure the CMCI/P vector and handler. Interrupts for CMC are
20572028
* per-processor, so AP CMC interrupts are setup in smp_callin() (smpboot.c).
20582029
*/
2059-
register_percpu_irq(IA64_CMC_VECTOR, &cmci_irqaction);
2060-
register_percpu_irq(IA64_CMCP_VECTOR, &cmcp_irqaction);
2030+
register_percpu_irq(IA64_CMC_VECTOR, ia64_mca_cmc_int_handler, 0,
2031+
"cmc_hndlr");
2032+
register_percpu_irq(IA64_CMCP_VECTOR, ia64_mca_cmc_int_caller, 0,
2033+
"cmc_poll");
20612034
ia64_mca_cmc_vector_setup(); /* Setup vector on BSP */
20622035

20632036
/* Setup the MCA rendezvous interrupt vector */
2064-
register_percpu_irq(IA64_MCA_RENDEZ_VECTOR, &mca_rdzv_irqaction);
2037+
register_percpu_irq(IA64_MCA_RENDEZ_VECTOR, ia64_mca_rendez_int_handler,
2038+
0, "mca_rdzv");
20652039

20662040
/* Setup the MCA wakeup interrupt vector */
2067-
register_percpu_irq(IA64_MCA_WAKEUP_VECTOR, &mca_wkup_irqaction);
2041+
register_percpu_irq(IA64_MCA_WAKEUP_VECTOR, ia64_mca_wakeup_int_handler,
2042+
0, "mca_wkup");
20682043

20692044
/* Setup the CPEI/P handler */
2070-
register_percpu_irq(IA64_CPEP_VECTOR, &mca_cpep_irqaction);
2045+
register_percpu_irq(IA64_CPEP_VECTOR, ia64_mca_cpe_int_caller, 0,
2046+
"cpe_poll");
20712047
}
20722048

20732049
/*
@@ -2108,7 +2084,9 @@ ia64_mca_late_init(void)
21082084
if (irq > 0) {
21092085
cpe_poll_enabled = 0;
21102086
irq_set_status_flags(irq, IRQ_PER_CPU);
2111-
setup_irq(irq, &mca_cpe_irqaction);
2087+
if (request_irq(irq, ia64_mca_cpe_int_handler,
2088+
0, "cpe_hndlr", NULL))
2089+
pr_err("Failed to register cpe_hndlr interrupt\n");
21122090
ia64_cpe_irq = irq;
21132091
ia64_mca_register_cpev(cpe_vector);
21142092
IA64_MCA_DEBUG("%s: CPEI/P setup and enabled.\n",

arch/ia64/kernel/perfmon.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@
5757
#include <linux/uaccess.h>
5858
#include <asm/delay.h>
5959

60+
#include "irq.h"
61+
6062
#ifdef CONFIG_PERFMON
6163
/*
6264
* perfmon context state
@@ -6313,11 +6315,6 @@ pfm_flush_pmds(struct task_struct *task, pfm_context_t *ctx)
63136315
}
63146316
}
63156317

6316-
static struct irqaction perfmon_irqaction = {
6317-
.handler = pfm_interrupt_handler,
6318-
.name = "perfmon"
6319-
};
6320-
63216318
static void
63226319
pfm_alt_save_pmu_state(void *data)
63236320
{
@@ -6591,7 +6588,8 @@ pfm_init_percpu (void)
65916588
pfm_unfreeze_pmu();
65926589

65936590
if (first_time) {
6594-
register_percpu_irq(IA64_PERFMON_VECTOR, &perfmon_irqaction);
6591+
register_percpu_irq(IA64_PERFMON_VECTOR, pfm_interrupt_handler,
6592+
0, "perfmon");
65956593
first_time=0;
65966594
}
65976595

arch/ia64/kernel/time.c

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include <asm/sections.h>
3333

3434
#include "fsyscall_gtod_data.h"
35+
#include "irq.h"
3536

3637
static u64 itc_get_cycles(struct clocksource *cs);
3738

@@ -380,13 +381,6 @@ static u64 itc_get_cycles(struct clocksource *cs)
380381
return now;
381382
}
382383

383-
384-
static struct irqaction timer_irqaction = {
385-
.handler = timer_interrupt,
386-
.flags = IRQF_IRQPOLL,
387-
.name = "timer"
388-
};
389-
390384
void read_persistent_clock64(struct timespec64 *ts)
391385
{
392386
efi_gettimeofday(ts);
@@ -395,7 +389,8 @@ void read_persistent_clock64(struct timespec64 *ts)
395389
void __init
396390
time_init (void)
397391
{
398-
register_percpu_irq(IA64_TIMER_VECTOR, &timer_irqaction);
392+
register_percpu_irq(IA64_TIMER_VECTOR, timer_interrupt, IRQF_IRQPOLL,
393+
"timer");
399394
ia64_init_itm();
400395
}
401396

include/linux/ioc3.h

Lines changed: 0 additions & 93 deletions
This file was deleted.

0 commit comments

Comments
 (0)