diff options
author | KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> | 2007-03-07 17:57:35 -0500 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2007-03-07 17:57:35 -0500 |
commit | e253eb0c082e71082cc980a0c81582c2bc734605 (patch) | |
tree | 985f9a758aa1b429d0b057950728ed2572e892e2 /arch/ia64/kernel/iosapic.c | |
parent | 08e15e81a40e3241ce93b4a43886f3abda184aa6 (diff) |
[IA64] fix NULL pointer in ia64/irq_chip-mask/unmask function
This patch fixes boot failure because irq_desc->mask() is NULL.
- Added mask/unmask functions to ia64's irq desc function table.
- rename hw_interrupt_type to irq_chip. hw_interrupt_type is old name.
- Tony: Added same change to arch/ia64/sn/kernel/irq.c as pointed out
by Eric Biederman ... mask/unmask functions there can be no-op.
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/kernel/iosapic.c')
-rw-r--r-- | arch/ia64/kernel/iosapic.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/ia64/kernel/iosapic.c b/arch/ia64/kernel/iosapic.c index d6aab40c6416..dcfbf3e7a9ef 100644 --- a/arch/ia64/kernel/iosapic.c +++ b/arch/ia64/kernel/iosapic.c | |||
@@ -446,7 +446,7 @@ iosapic_end_level_irq (unsigned int irq) | |||
446 | #define iosapic_disable_level_irq mask_irq | 446 | #define iosapic_disable_level_irq mask_irq |
447 | #define iosapic_ack_level_irq nop | 447 | #define iosapic_ack_level_irq nop |
448 | 448 | ||
449 | struct hw_interrupt_type irq_type_iosapic_level = { | 449 | struct irq_chip irq_type_iosapic_level = { |
450 | .name = "IO-SAPIC-level", | 450 | .name = "IO-SAPIC-level", |
451 | .startup = iosapic_startup_level_irq, | 451 | .startup = iosapic_startup_level_irq, |
452 | .shutdown = iosapic_shutdown_level_irq, | 452 | .shutdown = iosapic_shutdown_level_irq, |
@@ -454,6 +454,8 @@ struct hw_interrupt_type irq_type_iosapic_level = { | |||
454 | .disable = iosapic_disable_level_irq, | 454 | .disable = iosapic_disable_level_irq, |
455 | .ack = iosapic_ack_level_irq, | 455 | .ack = iosapic_ack_level_irq, |
456 | .end = iosapic_end_level_irq, | 456 | .end = iosapic_end_level_irq, |
457 | .mask = mask_irq, | ||
458 | .unmask = unmask_irq, | ||
457 | .set_affinity = iosapic_set_affinity | 459 | .set_affinity = iosapic_set_affinity |
458 | }; | 460 | }; |
459 | 461 | ||
@@ -493,7 +495,7 @@ iosapic_ack_edge_irq (unsigned int irq) | |||
493 | #define iosapic_disable_edge_irq nop | 495 | #define iosapic_disable_edge_irq nop |
494 | #define iosapic_end_edge_irq nop | 496 | #define iosapic_end_edge_irq nop |
495 | 497 | ||
496 | struct hw_interrupt_type irq_type_iosapic_edge = { | 498 | struct irq_chip irq_type_iosapic_edge = { |
497 | .name = "IO-SAPIC-edge", | 499 | .name = "IO-SAPIC-edge", |
498 | .startup = iosapic_startup_edge_irq, | 500 | .startup = iosapic_startup_edge_irq, |
499 | .shutdown = iosapic_disable_edge_irq, | 501 | .shutdown = iosapic_disable_edge_irq, |
@@ -501,6 +503,8 @@ struct hw_interrupt_type irq_type_iosapic_edge = { | |||
501 | .disable = iosapic_disable_edge_irq, | 503 | .disable = iosapic_disable_edge_irq, |
502 | .ack = iosapic_ack_edge_irq, | 504 | .ack = iosapic_ack_edge_irq, |
503 | .end = iosapic_end_edge_irq, | 505 | .end = iosapic_end_edge_irq, |
506 | .mask = mask_irq, | ||
507 | .unmask = unmask_irq, | ||
504 | .set_affinity = iosapic_set_affinity | 508 | .set_affinity = iosapic_set_affinity |
505 | }; | 509 | }; |
506 | 510 | ||