Remove not applicable PI_SDTR_ABLE and PI_WIDE_16 hba_inquiry flags to

make CAM to not try negotiate unsupported settings and suppress warnings.

While there, enable command queuing on pass-through devices, announced
in hba_inquiry, but disabled.  Even though queue size is very small, It
seems working well enough.

Reviewed by:	scottl
MFC after:	2 weeks
This commit is contained in:
mav 2014-01-10 19:21:46 +00:00
parent fc0f950d52
commit 840d33804e

View File

@ -216,7 +216,7 @@ mfip_cam_action(struct cam_sim *sim, union ccb *ccb)
struct ccb_pathinq *cpi = &ccb->cpi;
cpi->version_num = 1;
cpi->hba_inquiry = PI_SDTR_ABLE|PI_TAG_ABLE|PI_WIDE_16;
cpi->hba_inquiry = PI_TAG_ABLE;
cpi->target_sprt = 0;
cpi->hba_misc = PIM_NOBUSRESET|PIM_SEQSCAN;
cpi->hba_eng_cnt = 0;
@ -244,6 +244,8 @@ mfip_cam_action(struct cam_sim *sim, union ccb *ccb)
break;
case XPT_GET_TRAN_SETTINGS:
{
struct ccb_trans_settings_scsi *scsi =
&ccb->cts.proto_specific.scsi;
struct ccb_trans_settings_sas *sas =
&ccb->cts.xport_specific.sas;
@ -252,6 +254,9 @@ mfip_cam_action(struct cam_sim *sim, union ccb *ccb)
ccb->cts.transport = XPORT_SAS;
ccb->cts.transport_version = 0;
scsi->valid = CTS_SCSI_VALID_TQ;
scsi->flags = CTS_SCSI_FLAGS_TAG_ENB;
sas->valid &= ~CTS_SAS_VALID_SPEED;
sas->bitrate = 150000;