Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for-3.12-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata

Pull libata fixes from Tejun Heo:
"The only interesting bit is ata_eh_qc_retry() update which fixes a
problem where a SG_IO command may fail across suspend/resume cycle
without the command actually being at fault.

Other changes are low level driver specific and fairly low impact"

* 'for-3.12-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
libahci: fix turning on LEDs in ahci_start_port()
libata: make ata_eh_qc_retry() bump scmd->allowed on bogus failures
ahci_platform: use dev_info() instead of printk()
ahci: use dev_info() instead of printk()
pata_isapnp: Don't use invalid I/O ports

+15 -7
+1 -1
drivers/ata/ahci.c
··· 1343 1343 if (!(hpriv->cap & HOST_CAP_SSS) || ahci_ignore_sss) 1344 1344 host->flags |= ATA_HOST_PARALLEL_SCAN; 1345 1345 else 1346 - printk(KERN_INFO "ahci: SSS flag set, parallel bus scan disabled\n"); 1346 + dev_info(&pdev->dev, "SSS flag set, parallel bus scan disabled\n"); 1347 1347 1348 1348 if (pi.flags & ATA_FLAG_EM) 1349 1349 ahci_reset_em(host);
+1 -1
drivers/ata/ahci_platform.c
··· 184 184 if (!(hpriv->cap & HOST_CAP_SSS) || ahci_ignore_sss) 185 185 host->flags |= ATA_HOST_PARALLEL_SCAN; 186 186 else 187 - printk(KERN_INFO "ahci: SSS flag set, parallel bus scan disabled\n"); 187 + dev_info(dev, "SSS flag set, parallel bus scan disabled\n"); 188 188 189 189 if (pi.flags & ATA_FLAG_EM) 190 190 ahci_reset_em(host);
+9 -1
drivers/ata/libahci.c
··· 778 778 rc = ap->ops->transmit_led_message(ap, 779 779 emp->led_state, 780 780 4); 781 + /* 782 + * If busy, give a breather but do not 783 + * release EH ownership by using msleep() 784 + * instead of ata_msleep(). EM Transmit 785 + * bit is busy for the whole host and 786 + * releasing ownership will cause other 787 + * ports to fail the same way. 788 + */ 781 789 if (rc == -EBUSY) 782 - ata_msleep(ap, 1); 790 + msleep(1); 783 791 else 784 792 break; 785 793 }
+3 -3
drivers/ata/libata-eh.c
··· 1322 1322 * should be retried. To be used from EH. 1323 1323 * 1324 1324 * SCSI midlayer limits the number of retries to scmd->allowed. 1325 - * scmd->retries is decremented for commands which get retried 1325 + * scmd->allowed is incremented for commands which get retried 1326 1326 * due to unrelated failures (qc->err_mask is zero). 1327 1327 */ 1328 1328 void ata_eh_qc_retry(struct ata_queued_cmd *qc) 1329 1329 { 1330 1330 struct scsi_cmnd *scmd = qc->scsicmd; 1331 - if (!qc->err_mask && scmd->retries) 1332 - scmd->retries--; 1331 + if (!qc->err_mask) 1332 + scmd->allowed++; 1333 1333 __ata_eh_qc_complete(qc); 1334 1334 } 1335 1335
+1 -1
drivers/ata/pata_isapnp.c
··· 78 78 79 79 ap->ioaddr.cmd_addr = cmd_addr; 80 80 81 - if (pnp_port_valid(idev, 1) == 0) { 81 + if (pnp_port_valid(idev, 1)) { 82 82 ctl_addr = devm_ioport_map(&idev->dev, 83 83 pnp_port_start(idev, 1), 1); 84 84 ap->ioaddr.altstatus_addr = ctl_addr;