On Wed, 24 Feb 2010 22:49:37 -0500 Jeff Garzik <jeff@xxxxxxxxxx> wrote: > > This is a fix that probably should have gone into 2.6.33. It still can if we cc stable@xxxxxxxxxx? > It never > received an ack from the bug reporter, hence the delay, > but NVIDIA ok'd it anyway. It merely disables an optimization. > > > > > Please pull from 'upstream-linus' branch of > master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git upstream-linus > > to receive the following updates: > > drivers/ata/ahci.c | 12 ++++++++++-- > 1 files changed, 10 insertions(+), 2 deletions(-) > > Robert Hancock (1): > ahci: disable FPDMA auto-activate optimization on NVIDIA AHCI > > diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c > index b343903..a6a736a 100644 > --- a/drivers/ata/ahci.c > +++ b/drivers/ata/ahci.c > @@ -3082,8 +3082,16 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent) > ahci_save_initial_config(pdev, hpriv); > > /* prepare host */ > - if (hpriv->cap & HOST_CAP_NCQ) > - pi.flags |= ATA_FLAG_NCQ | ATA_FLAG_FPDMA_AA; > + if (hpriv->cap & HOST_CAP_NCQ) { > + pi.flags |= ATA_FLAG_NCQ; > + /* Auto-activate optimization is supposed to be supported on > + all AHCI controllers indicating NCQ support, but it seems > + to be broken at least on some NVIDIA MCP79 chipsets. > + Until we get info on which NVIDIA chipsets don't have this > + issue, if any, disable AA on all NVIDIA AHCIs. */ > + if (pdev->vendor != PCI_VENDOR_ID_NVIDIA) > + pi.flags |= ATA_FLAG_FPDMA_AA; > + } > > if (hpriv->cap & HOST_CAP_PMP) > pi.flags |= ATA_FLAG_PMP; -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html