Merge branch 'for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata
Pull libata updates from Tejun Heo: "libata saw quite a bit of activities in this cycle: - SMR drive support still being worked on - bug fixes and improvements to misc SCSI command emulation - some low level driver updates" * 'for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata: (39 commits) libata-scsi: better style in ata_msense_*() AHCI: Clear GHC.IS to prevent unexpectly asserting INTx ata: sata_dwc_460ex: remove redundant dev_err call ata: define ATA_PROT_* in terms of ATA_PROT_FLAG_* libata: remove ATA_PROT_FLAG_DATA libata: remove ata_is_nodata ata: make lba_{28,48}_ok() use ATA_MAX_SECTORS{,_LBA48} libata-scsi: minor cleanup for ata_scsi_zbc_out_xlat libata-scsi: Fix ZBC management out command translation libata-scsi: Fix translation of REPORT ZONES command ata: Handle ATA NCQ NO-DATA commands correctly libata-eh: decode all taskfile protocols ata: fixup ATA_PROT_NODATA libsas: use ata_is_ncq() and ata_has_dma() accessors libata: use ata_is_ncq() accessors libata: return boolean values from ata_is_* libata-scsi: avoid repeated calculation of number of TRIM ranges libata-scsi: reject WRITE SAME (16) with n_block that exceeds limit libata-scsi: rename ata_msense_ctl_mode() to ata_msense_control() libata-scsi: fix D_SENSE bit relection in control mode page ...
This commit is contained in:
@@ -1238,7 +1238,7 @@ static int ata_read_native_max_address(struct ata_device *dev, u64 *max_sectors)
|
||||
} else
|
||||
tf.command = ATA_CMD_READ_NATIVE_MAX;
|
||||
|
||||
tf.protocol |= ATA_PROT_NODATA;
|
||||
tf.protocol = ATA_PROT_NODATA;
|
||||
tf.device |= ATA_LBA;
|
||||
|
||||
err_mask = ata_exec_internal(dev, &tf, NULL, DMA_NONE, NULL, 0, 0);
|
||||
@@ -1297,7 +1297,7 @@ static int ata_set_max_sectors(struct ata_device *dev, u64 new_sectors)
|
||||
tf.device |= (new_sectors >> 24) & 0xf;
|
||||
}
|
||||
|
||||
tf.protocol |= ATA_PROT_NODATA;
|
||||
tf.protocol = ATA_PROT_NODATA;
|
||||
tf.device |= ATA_LBA;
|
||||
|
||||
tf.lbal = (new_sectors >> 0) & 0xff;
|
||||
@@ -4848,7 +4848,7 @@ int ata_std_qc_defer(struct ata_queued_cmd *qc)
|
||||
{
|
||||
struct ata_link *link = qc->dev->link;
|
||||
|
||||
if (qc->tf.protocol == ATA_PROT_NCQ) {
|
||||
if (ata_is_ncq(qc->tf.protocol)) {
|
||||
if (!ata_tag_valid(link->active_tag))
|
||||
return 0;
|
||||
} else {
|
||||
@@ -5013,7 +5013,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
|
||||
ata_sg_clean(qc);
|
||||
|
||||
/* command should be marked inactive atomically with qc completion */
|
||||
if (qc->tf.protocol == ATA_PROT_NCQ) {
|
||||
if (ata_is_ncq(qc->tf.protocol)) {
|
||||
link->sactive &= ~(1 << qc->tag);
|
||||
if (!link->sactive)
|
||||
ap->nr_active_links--;
|
||||
@@ -5050,7 +5050,7 @@ static void ata_verify_xfer(struct ata_queued_cmd *qc)
|
||||
{
|
||||
struct ata_device *dev = qc->dev;
|
||||
|
||||
if (ata_is_nodata(qc->tf.protocol))
|
||||
if (!ata_is_data(qc->tf.protocol))
|
||||
return;
|
||||
|
||||
if ((dev->mwdma_mask || dev->udma_mask) && ata_is_pio(qc->tf.protocol))
|
||||
@@ -5133,7 +5133,9 @@ void ata_qc_complete(struct ata_queued_cmd *qc)
|
||||
switch (qc->tf.command) {
|
||||
case ATA_CMD_SET_FEATURES:
|
||||
if (qc->tf.feature != SETFEATURES_WC_ON &&
|
||||
qc->tf.feature != SETFEATURES_WC_OFF)
|
||||
qc->tf.feature != SETFEATURES_WC_OFF &&
|
||||
qc->tf.feature != SETFEATURES_RA_ON &&
|
||||
qc->tf.feature != SETFEATURES_RA_OFF)
|
||||
break;
|
||||
/* fall through */
|
||||
case ATA_CMD_INIT_DEV_PARAMS: /* CHS translation changed */
|
||||
|
Reference in New Issue
Block a user