mirror of https://gitee.com/openkylin/linux.git
scsi: esp_scsi: Grant disconnect privilege for untagged commands
A SCSI device is not granted disconnect privilege by an esp_scsi host unless that device has its simple_tags flag set. However, a device may support disconnect/reselect and not support command queueing. Allow such devices to disconnect and thereby improve bus utilization. Drop the redundant 'lp' check. The mid-layer invokes .slave_alloc and .slave_destroy in such a way that we may rely on scmd->device->hostdata for as long as scmd belongs to the low-level driver. Tested-by: Stan Johnson <userm57@yahoo.com> Signed-off-by: Finn Thain <fthain@telegraphics.com.au> Tested-by: Michael Schmitz <schmitzmic@gmail.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
fd47d919d0
commit
87c58ef5a5
|
@ -736,7 +736,6 @@ static struct esp_cmd_entry *find_and_prep_issuable_command(struct esp *esp)
|
|||
static void esp_maybe_execute_command(struct esp *esp)
|
||||
{
|
||||
struct esp_target_data *tp;
|
||||
struct esp_lun_data *lp;
|
||||
struct scsi_device *dev;
|
||||
struct scsi_cmnd *cmd;
|
||||
struct esp_cmd_entry *ent;
|
||||
|
@ -762,7 +761,6 @@ static void esp_maybe_execute_command(struct esp *esp)
|
|||
tgt = dev->id;
|
||||
lun = dev->lun;
|
||||
tp = &esp->target[tgt];
|
||||
lp = dev->hostdata;
|
||||
|
||||
list_move(&ent->list, &esp->active_cmds);
|
||||
|
||||
|
@ -818,14 +816,7 @@ static void esp_maybe_execute_command(struct esp *esp)
|
|||
}
|
||||
|
||||
build_identify:
|
||||
/* If we don't have a lun-data struct yet, we're probing
|
||||
* so do not disconnect. Also, do not disconnect unless
|
||||
* we have a tag on this command.
|
||||
*/
|
||||
if (lp && (tp->flags & ESP_TGT_DISCONNECT) && ent->tag[0])
|
||||
*p++ = IDENTIFY(1, lun);
|
||||
else
|
||||
*p++ = IDENTIFY(0, lun);
|
||||
*p++ = IDENTIFY(tp->flags & ESP_TGT_DISCONNECT, lun);
|
||||
|
||||
if (ent->tag[0] && esp->rev == ESP100) {
|
||||
/* ESP100 lacks select w/atn3 command, use select
|
||||
|
|
Loading…
Reference in New Issue