diff options
Diffstat (limited to 'drivers/ide/ide-probe.c')
-rw-r--r-- | drivers/ide/ide-probe.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index ce0818a993f6..ee8e3e7cad51 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c | |||
@@ -950,6 +950,7 @@ static int ide_port_setup_devices(ide_hwif_t *hwif) | |||
950 | static int init_irq (ide_hwif_t *hwif) | 950 | static int init_irq (ide_hwif_t *hwif) |
951 | { | 951 | { |
952 | struct ide_io_ports *io_ports = &hwif->io_ports; | 952 | struct ide_io_ports *io_ports = &hwif->io_ports; |
953 | irq_handler_t irq_handler; | ||
953 | int sa = 0; | 954 | int sa = 0; |
954 | 955 | ||
955 | mutex_lock(&ide_cfg_mtx); | 956 | mutex_lock(&ide_cfg_mtx); |
@@ -959,6 +960,10 @@ static int init_irq (ide_hwif_t *hwif) | |||
959 | hwif->timer.function = &ide_timer_expiry; | 960 | hwif->timer.function = &ide_timer_expiry; |
960 | hwif->timer.data = (unsigned long)hwif; | 961 | hwif->timer.data = (unsigned long)hwif; |
961 | 962 | ||
963 | irq_handler = hwif->host->irq_handler; | ||
964 | if (irq_handler == NULL) | ||
965 | irq_handler = ide_intr; | ||
966 | |||
962 | #if defined(__mc68000__) | 967 | #if defined(__mc68000__) |
963 | sa = IRQF_SHARED; | 968 | sa = IRQF_SHARED; |
964 | #endif /* __mc68000__ */ | 969 | #endif /* __mc68000__ */ |
@@ -969,7 +974,7 @@ static int init_irq (ide_hwif_t *hwif) | |||
969 | if (io_ports->ctl_addr) | 974 | if (io_ports->ctl_addr) |
970 | hwif->tp_ops->set_irq(hwif, 1); | 975 | hwif->tp_ops->set_irq(hwif, 1); |
971 | 976 | ||
972 | if (request_irq(hwif->irq, &ide_intr, sa, hwif->name, hwif)) | 977 | if (request_irq(hwif->irq, irq_handler, sa, hwif->name, hwif)) |
973 | goto out_up; | 978 | goto out_up; |
974 | 979 | ||
975 | if (!hwif->rqsize) { | 980 | if (!hwif->rqsize) { |