Re: SATA ahci Bug in 2.6.19.x

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Manuel Metz wrote:
> Tejun Heo wrote:
>> Does it work if you give 'irqpoll' kernel parameter?
>>
> 
> Yes this works with "irqpoll". But as you can see in the attached dmesg
> output, now I get a bunch of APIC errors ... ?

Manuel, Stefan, please try the attached patch over 2.6.20 and report the
result.

-- 
tejun
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index 48616c6..882b205 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -209,6 +209,10 @@ struct ahci_port_priv {
 	unsigned int		ncq_saw_dmas:1;
 };
 
+static int msi;
+module_param(msi, int, 0444);
+MODULE_PARM_DESC(msi, "Enable use of PCI MSI (0=off, 1=on)");
+
 static u32 ahci_scr_read (struct ata_port *ap, unsigned int sc_reg);
 static void ahci_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val);
 static int ahci_init_one (struct pci_dev *pdev, const struct pci_device_id *ent);
@@ -1706,11 +1710,13 @@ static int ahci_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
 		goto err_out;
 	}
 
-	if (pci_enable_msi(pdev) == 0)
-		have_msi = 1;
-	else {
-		pci_intx(pdev, 1);
-		have_msi = 0;
+	if (msi) {
+		if (pci_enable_msi(pdev) == 0)
+			have_msi = 1;
+		else {
+			pci_intx(pdev, 1);
+			have_msi = 0;
+		}
 	}
 
 	probe_ent = kmalloc(sizeof(*probe_ent), GFP_KERNEL);

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux