From: Tejun Heo <htejun@gmail.com>
Date: Fri, 17 Nov 2006 07:22:27 +0000 (+0900)
Subject: [PATCH] libata: set IRQF_SHARED for legacy PCI IDE IRQs
X-Git-Tag: firefly_0821_release~30985^2~47^2~110^2~16
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=8070217d301d0ceab7d0c255d7b9d796256d37e7;p=firefly-linux-kernel-4.4.55.git

[PATCH] libata: set IRQF_SHARED for legacy PCI IDE IRQs

There are machines out there which share legacy PCI IDE IRQs w/ other
devices.  libata SFF interrupt/HSM code is ready for shared IRQ and
has been setting IRQF_SHARED for devices in native PCI mode.  Device
in legacy mode is still a PCI device and thus supposedly uses
active-low level triggered IRQ.

Machines with such setup should be quite rare and w/o this flag libata
is likely to fail loading and render the system unuseable.  Also, IDE
driver has been setting IRQF_SHARED for devices in legacy mode for a
looooong time.

Signed-off-by: Tejun Heo <htejun@gmail.com>
---

diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index 37471d3c1c28..a57de4a5aa45 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -906,6 +906,7 @@ static struct ata_probe_ent *ata_pci_init_legacy_port(struct pci_dev *pdev,
 		return NULL;
 
 	probe_ent->n_ports = 2;
+	probe_ent->irq_flags = IRQF_SHARED;
 
 	if (port_mask & ATA_PORT_PRIMARY) {
 		probe_ent->irq = ATA_PRIMARY_IRQ;