Merge branch 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev

+18 -3
+10 -1
drivers/scsi/sata_mv.c
··· 510 510 }; 511 511 512 512 /* 513 + * module options 514 + */ 515 + static int msi; /* Use PCI msi; either zero (off, default) or non-zero */ 516 + 517 + 518 + /* 513 519 * Functions 514 520 */ 515 521 ··· 2197 2191 } 2198 2192 2199 2193 /* Enable interrupts */ 2200 - if (pci_enable_msi(pdev) == 0) { 2194 + if (msi && pci_enable_msi(pdev) == 0) { 2201 2195 hpriv->hp_flags |= MV_HP_FLAG_MSI; 2202 2196 } else { 2203 2197 pci_intx(pdev, 1); ··· 2251 2245 MODULE_LICENSE("GPL"); 2252 2246 MODULE_DEVICE_TABLE(pci, mv_pci_tbl); 2253 2247 MODULE_VERSION(DRV_VERSION); 2248 + 2249 + module_param(msi, int, 0444); 2250 + MODULE_PARM_DESC(msi, "Enable use of PCI MSI (0=off, 1=on)"); 2254 2251 2255 2252 module_init(mv_init); 2256 2253 module_exit(mv_exit);
+8 -2
drivers/scsi/sata_sil.c
··· 231 231 MODULE_DEVICE_TABLE(pci, sil_pci_tbl); 232 232 MODULE_VERSION(DRV_VERSION); 233 233 234 + static int slow_down = 0; 235 + module_param(slow_down, int, 0444); 236 + MODULE_PARM_DESC(slow_down, "Sledgehammer used to work around random problems, by limiting commands to 15 sectors (0=off, 1=on)"); 237 + 234 238 235 239 static unsigned char sil_get_device_cache_line(struct pci_dev *pdev) 236 240 { ··· 358 354 } 359 355 360 356 /* limit requests to 15 sectors */ 361 - if ((ap->flags & SIL_FLAG_MOD15WRITE) && (quirks & SIL_QUIRK_MOD15WRITE)) { 362 - printk(KERN_INFO "ata%u(%u): applying Seagate errata fix\n", 357 + if (slow_down || 358 + ((ap->flags & SIL_FLAG_MOD15WRITE) && 359 + (quirks & SIL_QUIRK_MOD15WRITE))) { 360 + printk(KERN_INFO "ata%u(%u): applying Seagate errata fix (mod15write workaround)\n", 363 361 ap->id, dev->devno); 364 362 ap->host->max_sectors = 15; 365 363 ap->host->hostt->max_sectors = 15;