diff options
Diffstat (limited to 'drivers/ide/ide-probe.c')
-rw-r--r-- | drivers/ide/ide-probe.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index 2a744a91370e..a3d3b1733c49 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c | |||
@@ -853,8 +853,9 @@ static int init_irq (ide_hwif_t *hwif) | |||
853 | if (irq_handler == NULL) | 853 | if (irq_handler == NULL) |
854 | irq_handler = ide_intr; | 854 | irq_handler = ide_intr; |
855 | 855 | ||
856 | if (request_irq(hwif->irq, irq_handler, sa, hwif->name, hwif)) | 856 | if (!host->get_lock) |
857 | goto out_up; | 857 | if (request_irq(hwif->irq, irq_handler, sa, hwif->name, hwif)) |
858 | goto out_up; | ||
858 | 859 | ||
859 | #if !defined(__mc68000__) | 860 | #if !defined(__mc68000__) |
860 | printk(KERN_INFO "%s at 0x%03lx-0x%03lx,0x%03lx on irq %d", hwif->name, | 861 | printk(KERN_INFO "%s at 0x%03lx-0x%03lx,0x%03lx on irq %d", hwif->name, |
@@ -1533,7 +1534,8 @@ static void ide_unregister(ide_hwif_t *hwif) | |||
1533 | 1534 | ||
1534 | ide_proc_unregister_port(hwif); | 1535 | ide_proc_unregister_port(hwif); |
1535 | 1536 | ||
1536 | free_irq(hwif->irq, hwif); | 1537 | if (!hwif->host->get_lock) |
1538 | free_irq(hwif->irq, hwif); | ||
1537 | 1539 | ||
1538 | device_unregister(hwif->portdev); | 1540 | device_unregister(hwif->portdev); |
1539 | device_unregister(&hwif->gendev); | 1541 | device_unregister(&hwif->gendev); |