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 }; 511 512 /* 513 * Functions 514 */ 515 ··· 2197 } 2198 2199 /* Enable interrupts */ 2200 - if (pci_enable_msi(pdev) == 0) { 2201 hpriv->hp_flags |= MV_HP_FLAG_MSI; 2202 } else { 2203 pci_intx(pdev, 1); ··· 2251 MODULE_LICENSE("GPL"); 2252 MODULE_DEVICE_TABLE(pci, mv_pci_tbl); 2253 MODULE_VERSION(DRV_VERSION); 2254 2255 module_init(mv_init); 2256 module_exit(mv_exit);
··· 510 }; 511 512 /* 513 + * module options 514 + */ 515 + static int msi; /* Use PCI msi; either zero (off, default) or non-zero */ 516 + 517 + 518 + /* 519 * Functions 520 */ 521 ··· 2191 } 2192 2193 /* Enable interrupts */ 2194 + if (msi && pci_enable_msi(pdev) == 0) { 2195 hpriv->hp_flags |= MV_HP_FLAG_MSI; 2196 } else { 2197 pci_intx(pdev, 1); ··· 2245 MODULE_LICENSE("GPL"); 2246 MODULE_DEVICE_TABLE(pci, mv_pci_tbl); 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)"); 2251 2252 module_init(mv_init); 2253 module_exit(mv_exit);
+8 -2
drivers/scsi/sata_sil.c
··· 231 MODULE_DEVICE_TABLE(pci, sil_pci_tbl); 232 MODULE_VERSION(DRV_VERSION); 233 234 235 static unsigned char sil_get_device_cache_line(struct pci_dev *pdev) 236 { ··· 358 } 359 360 /* 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", 363 ap->id, dev->devno); 364 ap->host->max_sectors = 15; 365 ap->host->hostt->max_sectors = 15;
··· 231 MODULE_DEVICE_TABLE(pci, sil_pci_tbl); 232 MODULE_VERSION(DRV_VERSION); 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 + 238 239 static unsigned char sil_get_device_cache_line(struct pci_dev *pdev) 240 { ··· 354 } 355 356 /* limit requests to 15 sectors */ 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", 361 ap->id, dev->devno); 362 ap->host->max_sectors = 15; 363 ap->host->hostt->max_sectors = 15;