Correct another location where inquiry length as calculated from the

inquiry additional length field is off by one.

MFC: 3 days
This commit is contained in:
gibbs 2004-11-18 07:24:29 +00:00
parent 72ebe7a7c1
commit 6025687bd2

View File

@ -5813,7 +5813,7 @@ probedone(struct cam_periph *periph, union ccb *done_ccb)
switch(periph_qual) { switch(periph_qual) {
case SID_QUAL_LU_CONNECTED: case SID_QUAL_LU_CONNECTED:
{ {
u_int8_t alen; u_int8_t len;
/* /*
* We conservatively request only * We conservatively request only
@ -5825,9 +5825,11 @@ probedone(struct cam_periph *periph, union ccb *done_ccb)
* the amount of information the device * the amount of information the device
* is willing to give. * is willing to give.
*/ */
alen = inq_buf->additional_length; len = inq_buf->additional_length
+ offsetof(struct scsi_inquiry_data,
additional_length) + 1;
if (softc->action == PROBE_INQUIRY if (softc->action == PROBE_INQUIRY
&& alen > (SHORT_INQUIRY_LENGTH - 4)) { && len > SHORT_INQUIRY_LENGTH) {
softc->action = PROBE_FULL_INQUIRY; softc->action = PROBE_FULL_INQUIRY;
xpt_release_ccb(done_ccb); xpt_release_ccb(done_ccb);
xpt_schedule(periph, priority); xpt_schedule(periph, priority);