Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e6d902a3 authored by Brian King's avatar Brian King Committed by Jeff Garzik
Browse files

[PATCH] libata: Conditionally set host->max_cmd_len



In preparation for SAS attached SATA devices, which will
not have a libata scsi_host, only setup host->max_cmd_len
if ap->host exists.

Signed-off-by: default avatarBrian King <brking@us.ibm.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent a93620b8
Loading
Loading
Loading
Loading
+15 −6
Original line number Diff line number Diff line
@@ -1325,6 +1325,19 @@ static void ata_dev_config_ncq(struct ata_device *dev,
		snprintf(desc, desc_sz, "NCQ (depth %d/%d)", hdepth, ddepth);
}

static void ata_set_port_max_cmd_len(struct ata_port *ap)
{
	int i;

	if (ap->host) {
		ap->host->max_cmd_len = 0;
		for (i = 0; i < ATA_MAX_DEVICES; i++)
			ap->host->max_cmd_len = max_t(unsigned int,
						      ap->host->max_cmd_len,
						      ap->device[i].cdb_len);
	}
}

/**
 *	ata_dev_configure - Configure the specified ATA/ATAPI device
 *	@dev: Target device to configure
@@ -1344,7 +1357,7 @@ int ata_dev_configure(struct ata_device *dev, int print_info)
	struct ata_port *ap = dev->ap;
	const u16 *id = dev->id;
	unsigned int xfer_mask;
	int i, rc;
	int rc;

	if (!ata_dev_enabled(dev) && ata_msg_info(ap)) {
		ata_dev_printk(dev, KERN_INFO,
@@ -1474,11 +1487,7 @@ int ata_dev_configure(struct ata_device *dev, int print_info)
				       cdb_intr_string);
	}

	ap->host->max_cmd_len = 0;
	for (i = 0; i < ATA_MAX_DEVICES; i++)
		ap->host->max_cmd_len = max_t(unsigned int,
					      ap->host->max_cmd_len,
					      ap->device[i].cdb_len);
	ata_set_port_max_cmd_len(ap);

	/* limit bridge transfers to udma5, 200 sectors */
	if (ata_dev_knobble(dev)) {