ia64: replace setup_irq() by request_irq()
request_irq() is preferred over setup_irq(). Invocations of setup_irq() occur after memory allocators are ready. Per tglx[1], setup_irq() existed in olden days when allocators were not ready by the time early interrupts were initialized. Hence replace setup_irq() by request_irq(). Changing 'ia64_native_register_percpu_irq' decleration to include 'irq_handler_t' as an argument type in arch/ia64/include/asm/hw_irq.h was causing build error - 'unknown type name 'irq_handler_t'' This was due to below header file sequence, + include/interrupt.h + include/hardirq.h + asm/hardirq.h + include/irq.h + asm/hw_irq.h [ 'ia64_native_register_percpu_irq' declared w/ 'irq_handler_t'] [ 'irq_handler_t' typedef'ed here in 'include/interrupt.h'] 'register_percpu_irq' defined to 'ia64_native_register_percpu_irq' is the one invoked by the caller, not the latter directly. This was done to support paravirtualization which was removed around 4 years back. And 'register_percpu_irq' is invoked only inside 'arch/ia64/kernel'. So 'register_percpu_irq' define to 'ia64_native_register_percpu_irq' is removed, instead 'ia64_native_register_percpu_irq' is renamed to 'register_precpu_irq()' & it is directly invoked. Also, 'register_precpu_irq()' is declared in a new header file 'irq.h' inside 'arch/ia64/kernel/', this header file is included by C files invoking 'register_percpu_irq()'. [1] https://lkml.kernel.org/r/alpine.DEB.2.20.1710191609480.1971@nanos Signed-off-by: afzal mohammed <afzal.mohd.ma@gmail.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:

committed by
Tony Luck

parent
98d54f81e3
commit
90341cd8e0
@@ -57,6 +57,8 @@
|
||||
#include <linux/uaccess.h>
|
||||
#include <asm/delay.h>
|
||||
|
||||
#include "irq.h"
|
||||
|
||||
#ifdef CONFIG_PERFMON
|
||||
/*
|
||||
* perfmon context state
|
||||
@@ -6313,11 +6315,6 @@ pfm_flush_pmds(struct task_struct *task, pfm_context_t *ctx)
|
||||
}
|
||||
}
|
||||
|
||||
static struct irqaction perfmon_irqaction = {
|
||||
.handler = pfm_interrupt_handler,
|
||||
.name = "perfmon"
|
||||
};
|
||||
|
||||
static void
|
||||
pfm_alt_save_pmu_state(void *data)
|
||||
{
|
||||
@@ -6591,7 +6588,8 @@ pfm_init_percpu (void)
|
||||
pfm_unfreeze_pmu();
|
||||
|
||||
if (first_time) {
|
||||
register_percpu_irq(IA64_PERFMON_VECTOR, &perfmon_irqaction);
|
||||
register_percpu_irq(IA64_PERFMON_VECTOR, pfm_interrupt_handler,
|
||||
0, "perfmon");
|
||||
first_time=0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user