diff options
| author | Alan Cox <alan@lxorguk.ukuu.org.uk> | 2006-09-26 12:35:32 -0400 |
|---|---|---|
| committer | Jeff Garzik <jeff@garzik.org> | 2006-09-26 13:34:26 -0400 |
| commit | 02f076aaa1478a91762de522ecb029efbc279690 (patch) | |
| tree | 486c3f2b08fceda0fe7f35c2f57cc93c08e779cf /drivers | |
| parent | e8216dee838c09776680a6f1a2e54d81f3cdfa14 (diff) | |
[PATCH] libata: refuse to register IRQless ports
We don't currently support pure polled operation so when we meet a BIOS
which forgot to assign an IRQ to a PCI device it all goes a little pear
shaped. Trap this case properly.
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/ata/libata-core.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 753b0152afd1..b4abd6850367 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
| @@ -5453,6 +5453,11 @@ int ata_device_add(const struct ata_probe_ent *ent) | |||
| 5453 | int rc; | 5453 | int rc; |
| 5454 | 5454 | ||
| 5455 | DPRINTK("ENTER\n"); | 5455 | DPRINTK("ENTER\n"); |
| 5456 | |||
| 5457 | if (ent->irq == 0) { | ||
| 5458 | dev_printk(KERN_ERR, dev, "is not available: No interrupt assigned.\n"); | ||
| 5459 | return 0; | ||
| 5460 | } | ||
| 5456 | /* alloc a container for our list of ATA ports (buses) */ | 5461 | /* alloc a container for our list of ATA ports (buses) */ |
| 5457 | host = kzalloc(sizeof(struct ata_host) + | 5462 | host = kzalloc(sizeof(struct ata_host) + |
| 5458 | (ent->n_ports * sizeof(void *)), GFP_KERNEL); | 5463 | (ent->n_ports * sizeof(void *)), GFP_KERNEL); |
