Commit aa07573b authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Bartlomiej Zolnierkiewicz

ide: Fix host drivers that need IRQF_SHARED

commit 255115fb ("ide: allow host drivers to
specify IRQ flags") added irq_flags fields to struct ide_port_info and struct
ide_host.  Drivers can now set ide_port_info.irq_flags = IRQF_SHARED, while
init_irq() passes ide_host.irq_flags to request_irq().

Unfortunately ide_host.irq_flags is never set, causing (on ARAnyM):

| Uniform Multi-Platform E-IDE driver
| ide: Falcon IDE controller
| Probing IDE interface ide0...
| hda: Sarge m68k, ATA DISK drive
| init_irq: sa = 0
| ide0: disabled, unable to get IRQ 15
| ide0: failed to initialize IDE interface
| ide0: disabling port

Solve this by copying ide_port_info.irq_flags to ide_host.irq_flags in
ide_host_alloc().

This bug probably affects the following IDE host drivers:
  - buddha
  - delkin_cb
  - falconide
  - gayle
  - ide-cs
  - macide
  - q40ide
  - scc_pata
  - sgiioc4
Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 577c9c45
...@@ -1314,6 +1314,7 @@ struct ide_host *ide_host_alloc(const struct ide_port_info *d, hw_regs_t **hws) ...@@ -1314,6 +1314,7 @@ struct ide_host *ide_host_alloc(const struct ide_port_info *d, hw_regs_t **hws)
host->get_lock = d->get_lock; host->get_lock = d->get_lock;
host->release_lock = d->release_lock; host->release_lock = d->release_lock;
host->host_flags = d->host_flags; host->host_flags = d->host_flags;
host->irq_flags = d->irq_flags;
} }
return host; return host;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment