Fix three problems in large (>2TB) device handling:
- Make sure we don't release the READ CAPACITY CCB twice - If we have a device that needs a 16 byte READ CAPACITY command, make sure we call xpt_schedule() so we can get a CCB. - Don't unlock the peripheral until we're fully probed. Many thanks to Julian Elischer for providing hardware and testing this. Tested by: julian
This commit is contained in:
parent
278286256b
commit
3674802f42
@ -1548,8 +1548,8 @@ dadone(struct cam_periph *periph, union ccb *done_ccb)
|
||||
softc->state = DA_STATE_PROBE2;
|
||||
free(rdcap, M_TEMP);
|
||||
xpt_release_ccb(done_ccb);
|
||||
cam_periph_unlock(periph);
|
||||
break;
|
||||
xpt_schedule(periph, /*priority*/5);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
block_size = scsi_4btoul(rcaplong->length);
|
||||
|
Loading…
Reference in New Issue
Block a user