]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/ide/ide-probe.c
ide: remove IRQF_DISABLED from IRQ flags for IDE IRQ handler
[linux-2.6-omap-h63xx.git] / drivers / ide / ide-probe.c
index 2994523be7bf8ed508160bb3ab60c71467081da1..0dda7ac0d95134e06c8c756d813cc42d05efc233 100644 (file)
@@ -968,11 +968,6 @@ static int ide_init_queue(ide_drive_t *drive)
  * Much of the code is for correctly detecting/handling irq sharing
  * and irq serialization situations.  This is somewhat complex because
  * it handles static as well as dynamic (PCMCIA) IDE interfaces.
- *
- * The IRQF_DISABLED in sa_flags means ide_intr() is always entered with
- * interrupts completely disabled.  This can be bad for interrupt latency,
- * but anything else has led to problems on some machines.  We re-enable
- * interrupts as much as we can safely do in most places.
  */
 static int init_irq (ide_hwif_t *hwif)
 {
@@ -1055,17 +1050,13 @@ static int init_irq (ide_hwif_t *hwif)
         * Allocate the irq, if not already obtained for another hwif
         */
        if (!match || match->irq != hwif->irq) {
-               int sa = IRQF_DISABLED;
+               int sa = 0;
 #if defined(__mc68000__) || defined(CONFIG_APUS)
                sa = IRQF_SHARED;
 #endif /* __mc68000__ || CONFIG_APUS */
 
-               if (IDE_CHIPSET_IS_PCI(hwif->chipset)) {
+               if (IDE_CHIPSET_IS_PCI(hwif->chipset))
                        sa = IRQF_SHARED;
-#ifndef CONFIG_IDEPCI_SHARE_IRQ
-                       sa |= IRQF_DISABLED;
-#endif /* CONFIG_IDEPCI_SHARE_IRQ */
-               }
 
                if (hwif->io_ports[IDE_CONTROL_OFFSET])
                        /* clear nIEN */
@@ -1173,7 +1164,7 @@ static struct kobject *exact_match(dev_t dev, int *part, void *data)
 {
        struct gendisk *p = data;
        *part &= (1 << PARTN_BITS) - 1;
-       return &p->kobj;
+       return &p->dev.kobj;
 }
 
 static int exact_lock(dev_t dev, void *data)