LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [patch 0/8] ia64: Convert irq_chips to new functions
@ 2011-02-05 19:44 Thomas Gleixner
2011-02-05 19:44 ` [patch 1/8] ia64: Remove stale irq_chip.end Thomas Gleixner
` (8 more replies)
0 siblings, 9 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:44 UTC (permalink / raw)
To: LKML; +Cc: Tony Luck
The following series converts the interrupt chips to the new
functions.Compile tested only.
Thanks,
tglx
^ permalink raw reply [flat|nested] 11+ messages in thread
* [patch 1/8] ia64: Remove stale irq_chip.end
2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
@ 2011-02-05 19:44 ` Thomas Gleixner
2011-02-05 19:44 ` [patch 2/8] ia64: Convert hp-sim to new irq_chip functions Thomas Gleixner
` (7 subsequent siblings)
8 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:44 UTC (permalink / raw)
To: LKML; +Cc: Tony Luck, Peter Zijlstra
[-- Attachment #1: ia64-remove-stale-irq_chip-end.patch --]
[-- Type: text/plain, Size: 3378 bytes --]
irq_chip.end got obsolete with the removal of __do_IRQ().
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Tony Luck <tony.luck@intel.com>
LKML-Reference: <20110203004210.143127544@linutronix.de>
---
arch/ia64/hp/sim/hpsim_irq.c | 1 -
arch/ia64/kernel/iosapic.c | 2 --
arch/ia64/kernel/irq_lsapic.c | 1 -
arch/ia64/sn/kernel/irq.c | 23 -----------------------
4 files changed, 27 deletions(-)
Index: linux-next/arch/ia64/hp/sim/hpsim_irq.c
===================================================================
--- linux-next.orig/arch/ia64/hp/sim/hpsim_irq.c
+++ linux-next/arch/ia64/hp/sim/hpsim_irq.c
@@ -34,7 +34,6 @@ static struct irq_chip irq_type_hp_sim =
.enable = hpsim_irq_noop,
.disable = hpsim_irq_noop,
.ack = hpsim_irq_noop,
- .end = hpsim_irq_noop,
.set_affinity = hpsim_set_affinity_noop,
};
Index: linux-next/arch/ia64/kernel/iosapic.c
===================================================================
--- linux-next.orig/arch/ia64/kernel/iosapic.c
+++ linux-next/arch/ia64/kernel/iosapic.c
@@ -460,7 +460,6 @@ iosapic_ack_edge_irq (unsigned int irq)
#define iosapic_enable_edge_irq unmask_irq
#define iosapic_disable_edge_irq nop
-#define iosapic_end_edge_irq nop
static struct irq_chip irq_type_iosapic_edge = {
.name = "IO-SAPIC-edge",
@@ -469,7 +468,6 @@ static struct irq_chip irq_type_iosapic_
.enable = iosapic_enable_edge_irq,
.disable = iosapic_disable_edge_irq,
.ack = iosapic_ack_edge_irq,
- .end = iosapic_end_edge_irq,
.mask = mask_irq,
.unmask = unmask_irq,
.set_affinity = iosapic_set_affinity
Index: linux-next/arch/ia64/kernel/irq_lsapic.c
===================================================================
--- linux-next.orig/arch/ia64/kernel/irq_lsapic.c
+++ linux-next/arch/ia64/kernel/irq_lsapic.c
@@ -40,6 +40,5 @@ struct irq_chip irq_type_ia64_lsapic = {
.enable = lsapic_noop,
.disable = lsapic_noop,
.ack = lsapic_noop,
- .end = lsapic_noop,
.retrigger = lsapic_retrigger,
};
Index: linux-next/arch/ia64/sn/kernel/irq.c
===================================================================
--- linux-next.orig/arch/ia64/sn/kernel/irq.c
+++ linux-next/arch/ia64/sn/kernel/irq.c
@@ -114,28 +114,6 @@ static void sn_ack_irq(unsigned int irq)
move_native_irq(irq);
}
-static void sn_end_irq(unsigned int irq)
-{
- int ivec;
- u64 event_occurred;
-
- ivec = irq & 0xff;
- if (ivec == SGI_UART_VECTOR) {
- event_occurred = HUB_L((u64*)LOCAL_MMR_ADDR (SH_EVENT_OCCURRED));
- /* If the UART bit is set here, we may have received an
- * interrupt from the UART that the driver missed. To
- * make sure, we IPI ourselves to force us to look again.
- */
- if (event_occurred & SH_EVENT_OCCURRED_UART_INT_MASK) {
- platform_send_ipi(smp_processor_id(), SGI_UART_VECTOR,
- IA64_IPI_DM_INT, 0);
- }
- }
- __clear_bit(ivec, (volatile void *)pda->sn_in_service_ivecs);
- if (sn_force_interrupt_flag)
- force_interrupt(irq);
-}
-
static void sn_irq_info_free(struct rcu_head *head);
struct sn_irq_info *sn_retarget_vector(struct sn_irq_info *sn_irq_info,
@@ -275,7 +253,6 @@ struct irq_chip irq_type_sn = {
.enable = sn_enable_irq,
.disable = sn_disable_irq,
.ack = sn_ack_irq,
- .end = sn_end_irq,
.mask = sn_mask_irq,
.unmask = sn_unmask_irq,
.set_affinity = sn_set_affinity_irq
^ permalink raw reply [flat|nested] 11+ messages in thread
* [patch 2/8] ia64: Convert hp-sim to new irq_chip functions
2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
2011-02-05 19:44 ` [patch 1/8] ia64: Remove stale irq_chip.end Thomas Gleixner
@ 2011-02-05 19:44 ` Thomas Gleixner
2011-02-05 19:44 ` [patch 3/8] ia64: hp-sim: Cleanup direct access to irq_desc Thomas Gleixner
` (6 subsequent siblings)
8 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:44 UTC (permalink / raw)
To: LKML; +Cc: Tony Luck
[-- Attachment #1: ia64-convert-hp-sim.patch --]
[-- Type: text/plain, Size: 1322 bytes --]
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
arch/ia64/hp/sim/hpsim_irq.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
Index: linux-next/arch/ia64/hp/sim/hpsim_irq.c
===================================================================
--- linux-next.orig/arch/ia64/hp/sim/hpsim_irq.c
+++ linux-next/arch/ia64/hp/sim/hpsim_irq.c
@@ -11,30 +11,30 @@
#include <linux/irq.h>
static unsigned int
-hpsim_irq_startup (unsigned int irq)
+hpsim_irq_startup(struct irq_data *data)
{
return 0;
}
static void
-hpsim_irq_noop (unsigned int irq)
+hpsim_irq_noop(struct irq_data *data)
{
}
static int
-hpsim_set_affinity_noop(unsigned int a, const struct cpumask *b)
+hpsim_set_affinity_noop(struct irq_data *d, const struct cpumask *b, bool f)
{
return 0;
}
static struct irq_chip irq_type_hp_sim = {
- .name = "hpsim",
- .startup = hpsim_irq_startup,
- .shutdown = hpsim_irq_noop,
- .enable = hpsim_irq_noop,
- .disable = hpsim_irq_noop,
- .ack = hpsim_irq_noop,
- .set_affinity = hpsim_set_affinity_noop,
+ .name = "hpsim",
+ .irq_startup = hpsim_irq_startup,
+ .irq_shutdown = hpsim_irq_noop,
+ .irq_enable = hpsim_irq_noop,
+ .irq_disable = hpsim_irq_noop,
+ .irq_ack = hpsim_irq_noop,
+ .irq_set_affinity = hpsim_set_affinity_noop,
};
void __init
^ permalink raw reply [flat|nested] 11+ messages in thread
* [patch 3/8] ia64: hp-sim: Cleanup direct access to irq_desc
2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
2011-02-05 19:44 ` [patch 1/8] ia64: Remove stale irq_chip.end Thomas Gleixner
2011-02-05 19:44 ` [patch 2/8] ia64: Convert hp-sim to new irq_chip functions Thomas Gleixner
@ 2011-02-05 19:44 ` Thomas Gleixner
2011-02-05 19:44 ` [patch 4/8] ia64: Convert msi_sn to new irq_chip functions Thomas Gleixner
` (5 subsequent siblings)
8 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:44 UTC (permalink / raw)
To: LKML; +Cc: Tony Luck
[-- Attachment #1: ia64-hp-sim-use-accessor-functions.patch --]
[-- Type: text/plain, Size: 834 bytes --]
Use accessor functions instead of open coded access.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
arch/ia64/hp/sim/hpsim_irq.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
Index: linux-next/arch/ia64/hp/sim/hpsim_irq.c
===================================================================
--- linux-next.orig/arch/ia64/hp/sim/hpsim_irq.c
+++ linux-next/arch/ia64/hp/sim/hpsim_irq.c
@@ -40,12 +40,12 @@ static struct irq_chip irq_type_hp_sim =
void __init
hpsim_irq_init (void)
{
- struct irq_desc *idesc;
int i;
- for (i = 0; i < NR_IRQS; ++i) {
- idesc = irq_desc + i;
- if (idesc->chip == &no_irq_chip)
- idesc->chip = &irq_type_hp_sim;
+ for_each_active_irq(i) {
+ struct irq_chip *chip = get_irq_chip(i);
+
+ if (chip == &no_irq_chip)
+ set_irq_chip(i, &irq_type_hp_sim);
}
}
^ permalink raw reply [flat|nested] 11+ messages in thread
* [patch 4/8] ia64: Convert msi_sn to new irq_chip functions
2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
` (2 preceding siblings ...)
2011-02-05 19:44 ` [patch 3/8] ia64: hp-sim: Cleanup direct access to irq_desc Thomas Gleixner
@ 2011-02-05 19:44 ` Thomas Gleixner
2011-02-05 19:44 ` [patch 5/8] ia64: Convert sn " Thomas Gleixner
` (4 subsequent siblings)
8 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:44 UTC (permalink / raw)
To: LKML; +Cc: Tony Luck
[-- Attachment #1: ia64-convert-msi-sn-irq-chip.patch --]
[-- Type: text/plain, Size: 2164 bytes --]
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
arch/ia64/sn/kernel/msi_sn.c | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
Index: linux-next/arch/ia64/sn/kernel/msi_sn.c
===================================================================
--- linux-next.orig/arch/ia64/sn/kernel/msi_sn.c
+++ linux-next/arch/ia64/sn/kernel/msi_sn.c
@@ -152,8 +152,8 @@ int sn_setup_msi_irq(struct pci_dev *pde
}
#ifdef CONFIG_SMP
-static int sn_set_msi_irq_affinity(unsigned int irq,
- const struct cpumask *cpu_mask)
+static int sn_set_msi_irq_affinity(struct irq_data *data,
+ const struct cpumask *cpu_mask, bool force)
{
struct msi_msg msg;
int slice;
@@ -164,7 +164,7 @@ static int sn_set_msi_irq_affinity(unsig
struct sn_irq_info *sn_irq_info;
struct sn_irq_info *new_irq_info;
struct sn_pcibus_provider *provider;
- unsigned int cpu;
+ unsigned int cpu, irq = data->irq;
cpu = cpumask_first(cpu_mask);
sn_irq_info = sn_msi_info[irq].sn_irq_info;
@@ -206,33 +206,33 @@ static int sn_set_msi_irq_affinity(unsig
msg.address_lo = (u32)(bus_addr & 0x00000000ffffffff);
write_msi_msg(irq, &msg);
- cpumask_copy(irq_desc[irq].affinity, cpu_mask);
+ cpumask_copy(data->affinity, cpu_mask);
return 0;
}
#endif /* CONFIG_SMP */
-static void sn_ack_msi_irq(unsigned int irq)
+static void sn_ack_msi_irq(struct irq_data *data)
{
- move_native_irq(irq);
+ move_native_irq(data->irq);
ia64_eoi();
}
-static int sn_msi_retrigger_irq(unsigned int irq)
+static int sn_msi_retrigger_irq(struct irq_data *data)
{
- unsigned int vector = irq;
+ unsigned int vector = data->irq;
ia64_resend_irq(vector);
return 1;
}
static struct irq_chip sn_msi_chip = {
- .name = "PCI-MSI",
- .irq_mask = mask_msi_irq,
- .irq_unmask = unmask_msi_irq,
- .ack = sn_ack_msi_irq,
+ .name = "PCI-MSI",
+ .irq_mask = mask_msi_irq,
+ .irq_unmask = unmask_msi_irq,
+ .irq_ack = sn_ack_msi_irq,
#ifdef CONFIG_SMP
- .set_affinity = sn_set_msi_irq_affinity,
+ .irq_set_affinity = sn_set_msi_irq_affinity,
#endif
- .retrigger = sn_msi_retrigger_irq,
+ .irq_retrigger = sn_msi_retrigger_irq,
};
^ permalink raw reply [flat|nested] 11+ messages in thread
* [patch 5/8] ia64: Convert sn to new irq_chip functions
2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
` (3 preceding siblings ...)
2011-02-05 19:44 ` [patch 4/8] ia64: Convert msi_sn to new irq_chip functions Thomas Gleixner
@ 2011-02-05 19:44 ` Thomas Gleixner
2011-02-05 19:45 ` [patch 6/8] ia64: Convert msi " Thomas Gleixner
` (3 subsequent siblings)
8 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:44 UTC (permalink / raw)
To: LKML; +Cc: Tony Luck
[-- Attachment #1: ia64-convert-sn-irq-chip.patch --]
[-- Type: text/plain, Size: 2874 bytes --]
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
arch/ia64/sn/kernel/irq.c | 44 +++++++++++++++++++++++---------------------
1 file changed, 23 insertions(+), 21 deletions(-)
Index: linux-next/arch/ia64/sn/kernel/irq.c
===================================================================
--- linux-next.orig/arch/ia64/sn/kernel/irq.c
+++ linux-next/arch/ia64/sn/kernel/irq.c
@@ -78,34 +78,34 @@ u64 sn_intr_redirect(nasid_t local_nasid
return ret_stuff.status;
}
-static unsigned int sn_startup_irq(unsigned int irq)
+static unsigned int sn_startup_irq(struct irq_data *data)
{
return 0;
}
-static void sn_shutdown_irq(unsigned int irq)
+static void sn_shutdown_irq(struct irq_data *data)
{
}
extern void ia64_mca_register_cpev(int);
-static void sn_disable_irq(unsigned int irq)
+static void sn_disable_irq(struct irq_data *data)
{
- if (irq == local_vector_to_irq(IA64_CPE_VECTOR))
+ if (data->irq == local_vector_to_irq(IA64_CPE_VECTOR))
ia64_mca_register_cpev(0);
}
-static void sn_enable_irq(unsigned int irq)
+static void sn_enable_irq(struct irq_data *data)
{
- if (irq == local_vector_to_irq(IA64_CPE_VECTOR))
- ia64_mca_register_cpev(irq);
+ if (data->irq == local_vector_to_irq(IA64_CPE_VECTOR))
+ ia64_mca_register_cpev(data->irq);
}
-static void sn_ack_irq(unsigned int irq)
+static void sn_ack_irq(struct irq_data *data)
{
u64 event_occurred, mask;
+ unsigned int irq = data->irq & 0xff;
- irq = irq & 0xff;
event_occurred = HUB_L((u64*)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED));
mask = event_occurred & SH_ALL_INT_MASK;
HUB_S((u64*)LOCAL_MMR_ADDR(SH_EVENT_OCCURRED_ALIAS), mask);
@@ -206,9 +206,11 @@ finish_up:
return new_irq_info;
}
-static int sn_set_affinity_irq(unsigned int irq, const struct cpumask *mask)
+static int sn_set_affinity_irq(struct irq_data *data,
+ const struct cpumask *mask, bool force)
{
struct sn_irq_info *sn_irq_info, *sn_irq_info_safe;
+ unsigned int irq = data->irq;
nasid_t nasid;
int slice;
@@ -237,25 +239,25 @@ void sn_set_err_irq_affinity(unsigned in
#endif
static void
-sn_mask_irq(unsigned int irq)
+sn_mask_irq(struct irq_data *data)
{
}
static void
-sn_unmask_irq(unsigned int irq)
+sn_unmask_irq(struct irq_data *data)
{
}
struct irq_chip irq_type_sn = {
- .name = "SN hub",
- .startup = sn_startup_irq,
- .shutdown = sn_shutdown_irq,
- .enable = sn_enable_irq,
- .disable = sn_disable_irq,
- .ack = sn_ack_irq,
- .mask = sn_mask_irq,
- .unmask = sn_unmask_irq,
- .set_affinity = sn_set_affinity_irq
+ .name = "SN hub",
+ .irq_startup = sn_startup_irq,
+ .irq_shutdown = sn_shutdown_irq,
+ .irq_enable = sn_enable_irq,
+ .irq_disable = sn_disable_irq,
+ .irq_ack = sn_ack_irq,
+ .irq_mask = sn_mask_irq,
+ .irq_unmask = sn_unmask_irq,
+ .irq_set_affinity = sn_set_affinity_irq
};
ia64_vector sn_irq_to_vector(int irq)
^ permalink raw reply [flat|nested] 11+ messages in thread
* [patch 6/8] ia64: Convert msi to new irq_chip functions
2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
` (4 preceding siblings ...)
2011-02-05 19:44 ` [patch 5/8] ia64: Convert sn " Thomas Gleixner
@ 2011-02-05 19:45 ` Thomas Gleixner
2011-02-05 19:45 ` [patch 7/8] ia64: Convert lsapic " Thomas Gleixner
` (2 subsequent siblings)
8 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:45 UTC (permalink / raw)
To: LKML; +Cc: Tony Luck
[-- Attachment #1: ia64-convert-msi.patch --]
[-- Type: text/plain, Size: 3314 bytes --]
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
arch/ia64/kernel/msi_ia64.c | 41 ++++++++++++++++++++++-------------------
1 file changed, 22 insertions(+), 19 deletions(-)
Index: linux-next/arch/ia64/kernel/msi_ia64.c
===================================================================
--- linux-next.orig/arch/ia64/kernel/msi_ia64.c
+++ linux-next/arch/ia64/kernel/msi_ia64.c
@@ -12,12 +12,13 @@
static struct irq_chip ia64_msi_chip;
#ifdef CONFIG_SMP
-static int ia64_set_msi_irq_affinity(unsigned int irq,
- const cpumask_t *cpu_mask)
+static int ia64_set_msi_irq_affinity(struct irq_data *idata,
+ const cpumask_t *cpu_mask, bool force)
{
struct msi_msg msg;
u32 addr, data;
int cpu = first_cpu(*cpu_mask);
+ unsigned int irq = idata->irq;
if (!cpu_online(cpu))
return -1;
@@ -38,7 +39,7 @@ static int ia64_set_msi_irq_affinity(uns
msg.data = data;
write_msi_msg(irq, &msg);
- cpumask_copy(irq_desc[irq].affinity, cpumask_of(cpu));
+ cpumask_copy(idata->affinity, cpumask_of(cpu));
return 0;
}
@@ -84,16 +85,16 @@ void ia64_teardown_msi_irq(unsigned int
destroy_irq(irq);
}
-static void ia64_ack_msi_irq(unsigned int irq)
+static void ia64_ack_msi_irq(struct irq_data *data)
{
- irq_complete_move(irq);
- move_native_irq(irq);
+ irq_complete_move(data->irq);
+ move_native_irq(data->irq);
ia64_eoi();
}
-static int ia64_msi_retrigger_irq(unsigned int irq)
+static int ia64_msi_retrigger_irq(struct irq_data *data)
{
- unsigned int vector = irq_to_vector(irq);
+ unsigned int vector = irq_to_vector(data->irq);
ia64_resend_irq(vector);
return 1;
@@ -103,14 +104,14 @@ static int ia64_msi_retrigger_irq(unsign
* Generic ops used on most IA64 platforms.
*/
static struct irq_chip ia64_msi_chip = {
- .name = "PCI-MSI",
- .irq_mask = mask_msi_irq,
- .irq_unmask = unmask_msi_irq,
- .ack = ia64_ack_msi_irq,
+ .name = "PCI-MSI",
+ .irq_mask = mask_msi_irq,
+ .irq_unmask = unmask_msi_irq,
+ .irq_ack = ia64_ack_msi_irq,
#ifdef CONFIG_SMP
- .set_affinity = ia64_set_msi_irq_affinity,
+ .irq_set_affinity = ia64_set_msi_irq_affinity,
#endif
- .retrigger = ia64_msi_retrigger_irq,
+ .irq_retrigger = ia64_msi_retrigger_irq,
};
@@ -132,8 +133,10 @@ void arch_teardown_msi_irq(unsigned int
#ifdef CONFIG_DMAR
#ifdef CONFIG_SMP
-static int dmar_msi_set_affinity(unsigned int irq, const struct cpumask *mask)
+static int dmar_msi_set_affinity(struct irq_data *data,
+ const struct cpumask *mask, bool force)
{
+ unsigned int irq = data->irq;
struct irq_cfg *cfg = irq_cfg + irq;
struct msi_msg msg;
int cpu = cpumask_first(mask);
@@ -152,7 +155,7 @@ static int dmar_msi_set_affinity(unsigne
msg.address_lo |= MSI_ADDR_DEST_ID_CPU(cpu_physical_id(cpu));
dmar_msi_write(irq, &msg);
- cpumask_copy(irq_desc[irq].affinity, mask);
+ cpumask_copy(data->affinity, mask);
return 0;
}
@@ -162,11 +165,11 @@ static struct irq_chip dmar_msi_type = {
.name = "DMAR_MSI",
.irq_unmask = dmar_msi_unmask,
.irq_mask = dmar_msi_mask,
- .ack = ia64_ack_msi_irq,
+ .irq_ack = ia64_ack_msi_irq,
#ifdef CONFIG_SMP
- .set_affinity = dmar_msi_set_affinity,
+ .irq_set_affinity = dmar_msi_set_affinity,
#endif
- .retrigger = ia64_msi_retrigger_irq,
+ .irq_retrigger = ia64_msi_retrigger_irq,
};
static int
^ permalink raw reply [flat|nested] 11+ messages in thread
* [patch 7/8] ia64: Convert lsapic to new irq_chip functions
2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
` (5 preceding siblings ...)
2011-02-05 19:45 ` [patch 6/8] ia64: Convert msi " Thomas Gleixner
@ 2011-02-05 19:45 ` Thomas Gleixner
2011-02-05 19:45 ` [patch 8/8] ia64: Convert iosapic " Thomas Gleixner
2011-02-07 23:35 ` [patch 0/8] ia64: Convert irq_chips to new functions Tony Luck
8 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:45 UTC (permalink / raw)
To: LKML; +Cc: Tony Luck
[-- Attachment #1: ia64-convert-lsapic.patch --]
[-- Type: text/plain, Size: 1297 bytes --]
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
arch/ia64/kernel/irq_lsapic.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
Index: linux-next/arch/ia64/kernel/irq_lsapic.c
===================================================================
--- linux-next.orig/arch/ia64/kernel/irq_lsapic.c
+++ linux-next/arch/ia64/kernel/irq_lsapic.c
@@ -15,30 +15,30 @@
#include <linux/irq.h>
static unsigned int
-lsapic_noop_startup (unsigned int irq)
+lsapic_noop_startup (struct irq_data *data)
{
return 0;
}
static void
-lsapic_noop (unsigned int irq)
+lsapic_noop (struct irq_data *data)
{
/* nothing to do... */
}
-static int lsapic_retrigger(unsigned int irq)
+static int lsapic_retrigger(struct irq_data *data)
{
- ia64_resend_irq(irq);
+ ia64_resend_irq(data->irq);
return 1;
}
struct irq_chip irq_type_ia64_lsapic = {
- .name = "LSAPIC",
- .startup = lsapic_noop_startup,
- .shutdown = lsapic_noop,
- .enable = lsapic_noop,
- .disable = lsapic_noop,
- .ack = lsapic_noop,
- .retrigger = lsapic_retrigger,
+ .name = "LSAPIC",
+ .irq_startup = lsapic_noop_startup,
+ .irq_shutdown = lsapic_noop,
+ .irq_enable = lsapic_noop,
+ .irq_disable = lsapic_noop,
+ .irq_ack = lsapic_noop,
+ .irq_retrigger = lsapic_retrigger,
};
^ permalink raw reply [flat|nested] 11+ messages in thread
* [patch 8/8] ia64: Convert iosapic to new irq_chip functions
2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
` (6 preceding siblings ...)
2011-02-05 19:45 ` [patch 7/8] ia64: Convert lsapic " Thomas Gleixner
@ 2011-02-05 19:45 ` Thomas Gleixner
2011-02-07 23:35 ` [patch 0/8] ia64: Convert irq_chips to new functions Tony Luck
8 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-05 19:45 UTC (permalink / raw)
To: LKML; +Cc: Tony Luck
[-- Attachment #1: ia64-convert-iosapic.patch --]
[-- Type: text/plain, Size: 4811 bytes --]
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
arch/ia64/kernel/iosapic.c | 70 ++++++++++++++++++++++++---------------------
1 file changed, 38 insertions(+), 32 deletions(-)
Index: linux-next/arch/ia64/kernel/iosapic.c
===================================================================
--- linux-next.orig/arch/ia64/kernel/iosapic.c
+++ linux-next/arch/ia64/kernel/iosapic.c
@@ -257,7 +257,7 @@ set_rte (unsigned int gsi, unsigned int
}
static void
-nop (unsigned int irq)
+nop (struct irq_data *data)
{
/* do nothing... */
}
@@ -287,8 +287,9 @@ kexec_disable_iosapic(void)
#endif
static void
-mask_irq (unsigned int irq)
+mask_irq (struct irq_data *data)
{
+ unsigned int irq = data->irq;
u32 low32;
int rte_index;
struct iosapic_rte_info *rte;
@@ -305,8 +306,9 @@ mask_irq (unsigned int irq)
}
static void
-unmask_irq (unsigned int irq)
+unmask_irq (struct irq_data *data)
{
+ unsigned int irq = data->irq;
u32 low32;
int rte_index;
struct iosapic_rte_info *rte;
@@ -323,9 +325,11 @@ unmask_irq (unsigned int irq)
static int
-iosapic_set_affinity(unsigned int irq, const struct cpumask *mask)
+iosapic_set_affinity(struct irq_data *data, const struct cpumask *mask,
+ bool force)
{
#ifdef CONFIG_SMP
+ unsigned int irq = data->irq;
u32 high32, low32;
int cpu, dest, rte_index;
int redir = (irq & IA64_IRQ_REDIRECTED) ? 1 : 0;
@@ -379,15 +383,16 @@ iosapic_set_affinity(unsigned int irq, c
*/
static unsigned int
-iosapic_startup_level_irq (unsigned int irq)
+iosapic_startup_level_irq (struct irq_data *data)
{
- unmask_irq(irq);
+ unmask_irq(data);
return 0;
}
static void
-iosapic_unmask_level_irq (unsigned int irq)
+iosapic_unmask_level_irq (struct irq_data *data)
{
+ unsigned int irq = data->irq;
ia64_vector vec = irq_to_vector(irq);
struct iosapic_rte_info *rte;
int do_unmask_irq = 0;
@@ -395,16 +400,16 @@ iosapic_unmask_level_irq (unsigned int i
irq_complete_move(irq);
if (unlikely(irq_desc[irq].status & IRQ_MOVE_PENDING)) {
do_unmask_irq = 1;
- mask_irq(irq);
+ mask_irq(data);
} else
- unmask_irq(irq);
+ unmask_irq(data);
list_for_each_entry(rte, &iosapic_intr_info[irq].rtes, rte_list)
iosapic_eoi(rte->iosapic->addr, vec);
if (unlikely(do_unmask_irq)) {
move_masked_irq(irq);
- unmask_irq(irq);
+ unmask_irq(data);
}
}
@@ -414,15 +419,15 @@ iosapic_unmask_level_irq (unsigned int i
#define iosapic_ack_level_irq nop
static struct irq_chip irq_type_iosapic_level = {
- .name = "IO-SAPIC-level",
- .startup = iosapic_startup_level_irq,
- .shutdown = iosapic_shutdown_level_irq,
- .enable = iosapic_enable_level_irq,
- .disable = iosapic_disable_level_irq,
- .ack = iosapic_ack_level_irq,
- .mask = mask_irq,
- .unmask = iosapic_unmask_level_irq,
- .set_affinity = iosapic_set_affinity
+ .name = "IO-SAPIC-level",
+ .irq_startup = iosapic_startup_level_irq,
+ .irq_shutdown = iosapic_shutdown_level_irq,
+ .irq_enable = iosapic_enable_level_irq,
+ .irq_disable = iosapic_disable_level_irq,
+ .irq_ack = iosapic_ack_level_irq,
+ .irq_mask = mask_irq,
+ .irq_unmask = iosapic_unmask_level_irq,
+ .irq_set_affinity = iosapic_set_affinity
};
/*
@@ -430,9 +435,9 @@ static struct irq_chip irq_type_iosapic_
*/
static unsigned int
-iosapic_startup_edge_irq (unsigned int irq)
+iosapic_startup_edge_irq (struct irq_data *data)
{
- unmask_irq(irq);
+ unmask_irq(data);
/*
* IOSAPIC simply drops interrupts pended while the
* corresponding pin was masked, so we can't know if an
@@ -442,8 +447,9 @@ iosapic_startup_edge_irq (unsigned int i
}
static void
-iosapic_ack_edge_irq (unsigned int irq)
+iosapic_ack_edge_irq (struct irq_data *data)
{
+ unsigned int irq = data->irq;
struct irq_desc *idesc = irq_desc + irq;
irq_complete_move(irq);
@@ -455,22 +461,22 @@ iosapic_ack_edge_irq (unsigned int irq)
*/
if ((idesc->status & (IRQ_PENDING|IRQ_DISABLED)) ==
(IRQ_PENDING|IRQ_DISABLED))
- mask_irq(irq);
+ mask_irq(data);
}
#define iosapic_enable_edge_irq unmask_irq
#define iosapic_disable_edge_irq nop
static struct irq_chip irq_type_iosapic_edge = {
- .name = "IO-SAPIC-edge",
- .startup = iosapic_startup_edge_irq,
- .shutdown = iosapic_disable_edge_irq,
- .enable = iosapic_enable_edge_irq,
- .disable = iosapic_disable_edge_irq,
- .ack = iosapic_ack_edge_irq,
- .mask = mask_irq,
- .unmask = unmask_irq,
- .set_affinity = iosapic_set_affinity
+ .name = "IO-SAPIC-edge",
+ .irq_startup = iosapic_startup_edge_irq,
+ .irq_shutdown = iosapic_disable_edge_irq,
+ .irq_enable = iosapic_enable_edge_irq,
+ .irq_disable = iosapic_disable_edge_irq,
+ .irq_ack = iosapic_ack_edge_irq,
+ .irq_mask = mask_irq,
+ .irq_unmask = unmask_irq,
+ .irq_set_affinity = iosapic_set_affinity
};
static unsigned int
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [patch 0/8] ia64: Convert irq_chips to new functions
2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
` (7 preceding siblings ...)
2011-02-05 19:45 ` [patch 8/8] ia64: Convert iosapic " Thomas Gleixner
@ 2011-02-07 23:35 ` Tony Luck
2011-02-07 23:38 ` Thomas Gleixner
8 siblings, 1 reply; 11+ messages in thread
From: Tony Luck @ 2011-02-07 23:35 UTC (permalink / raw)
To: Thomas Gleixner; +Cc: LKML, Jes Sorensen
On Sat, Feb 5, 2011 at 11:44 AM, Thomas Gleixner <tglx@linutronix.de> wrote:
> The following series converts the interrupt chips to the new
> functions.Compile tested only.
I see a new warning while building:
arch/ia64/sn/kernel/irq.c:427: warning: ‘force_interrupt’ defined but not used
since you deleted the only use of this function.
sn_force_interrupt_flag doesn't
seem to be useful either once this patch has been applied.
Apart from that it all seems to build and boot with no problems on my
machine. I haven't tested on SGI sn2 system (where you've made
a moderately big change). It'd be nice to get an Ack from there.
-Tony
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [patch 0/8] ia64: Convert irq_chips to new functions
2011-02-07 23:35 ` [patch 0/8] ia64: Convert irq_chips to new functions Tony Luck
@ 2011-02-07 23:38 ` Thomas Gleixner
0 siblings, 0 replies; 11+ messages in thread
From: Thomas Gleixner @ 2011-02-07 23:38 UTC (permalink / raw)
To: Tony Luck; +Cc: LKML, Jes Sorensen
[-- Attachment #1: Type: TEXT/PLAIN, Size: 792 bytes --]
On Mon, 7 Feb 2011, Tony Luck wrote:
> On Sat, Feb 5, 2011 at 11:44 AM, Thomas Gleixner <tglx@linutronix.de> wrote:
> > The following series converts the interrupt chips to the new
> > functions.Compile tested only.
>
> I see a new warning while building:
>
> arch/ia64/sn/kernel/irq.c:427: warning: ‘force_interrupt’ defined but not used
Oops
> since you deleted the only use of this function.
> sn_force_interrupt_flag doesn't
> seem to be useful either once this patch has been applied.
Agreed.
> Apart from that it all seems to build and boot with no problems on my
> machine. I haven't tested on SGI sn2 system (where you've made
> a moderately big change). It'd be nice to get an Ack from there.
That might take a while. I fear Jes is skiing this week, IIRC.
Thanks,
tglx
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2011-02-07 23:38 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-02-05 19:44 [patch 0/8] ia64: Convert irq_chips to new functions Thomas Gleixner
2011-02-05 19:44 ` [patch 1/8] ia64: Remove stale irq_chip.end Thomas Gleixner
2011-02-05 19:44 ` [patch 2/8] ia64: Convert hp-sim to new irq_chip functions Thomas Gleixner
2011-02-05 19:44 ` [patch 3/8] ia64: hp-sim: Cleanup direct access to irq_desc Thomas Gleixner
2011-02-05 19:44 ` [patch 4/8] ia64: Convert msi_sn to new irq_chip functions Thomas Gleixner
2011-02-05 19:44 ` [patch 5/8] ia64: Convert sn " Thomas Gleixner
2011-02-05 19:45 ` [patch 6/8] ia64: Convert msi " Thomas Gleixner
2011-02-05 19:45 ` [patch 7/8] ia64: Convert lsapic " Thomas Gleixner
2011-02-05 19:45 ` [patch 8/8] ia64: Convert iosapic " Thomas Gleixner
2011-02-07 23:35 ` [patch 0/8] ia64: Convert irq_chips to new functions Tony Luck
2011-02-07 23:38 ` Thomas Gleixner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).