Spock/Tribble changes of the evening (May 9th, 2025)
Don't duplicate drives into phantom drives.
This commit is contained in:
@@ -130,6 +130,7 @@ typedef struct {
|
|||||||
int adapter_id;
|
int adapter_id;
|
||||||
int assign;
|
int assign;
|
||||||
int present[8];
|
int present[8];
|
||||||
|
int id_connected;
|
||||||
|
|
||||||
int cmd_status;
|
int cmd_status;
|
||||||
int cir_status;
|
int cir_status;
|
||||||
@@ -448,7 +449,6 @@ static void
|
|||||||
spock_process_imm_cmd(spock_t *scsi)
|
spock_process_imm_cmd(spock_t *scsi)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int j = 0;
|
|
||||||
int adapter_id;
|
int adapter_id;
|
||||||
int phys_id;
|
int phys_id;
|
||||||
int lun_id;
|
int lun_id;
|
||||||
@@ -467,14 +467,23 @@ spock_process_imm_cmd(spock_t *scsi)
|
|||||||
if (scsi->command & (1 << 23)) {
|
if (scsi->command & (1 << 23)) {
|
||||||
spock_log("Assign: adapter id=%d\n", adapter_id);
|
spock_log("Assign: adapter id=%d\n", adapter_id);
|
||||||
scsi->dev_id[adapter_id].phys_id = -1;
|
scsi->dev_id[adapter_id].phys_id = -1;
|
||||||
|
scsi->id_connected = 0;
|
||||||
spock_set_irq(scsi, scsi->attention & 0x0f, IRQ_TYPE_IMM_CMD_COMPLETE);
|
spock_set_irq(scsi, scsi->attention & 0x0f, IRQ_TYPE_IMM_CMD_COMPLETE);
|
||||||
} else {
|
} else {
|
||||||
if (phys_id != scsi->adapter_id) {
|
if (phys_id != scsi->adapter_id) {
|
||||||
scsi->dev_id[adapter_id].phys_id = phys_id;
|
scsi->dev_id[adapter_id].phys_id = phys_id;
|
||||||
scsi->dev_id[adapter_id].lun_id = lun_id;
|
scsi->dev_id[adapter_id].lun_id = lun_id;
|
||||||
spock_log("Assign: adapter dev=%x scsi ID=%i LUN=%i.\n", adapter_id, scsi->dev_id[adapter_id].phys_id, scsi->dev_id[adapter_id].lun_id);
|
if (scsi_device_present(&scsi_devices[scsi->bus][phys_id])) {
|
||||||
|
scsi->present[scsi->id_connected] = 1;
|
||||||
|
if (lun_id == 0)
|
||||||
|
scsi->id_connected++;
|
||||||
|
} else
|
||||||
|
scsi->present[scsi->id_connected] = 0;
|
||||||
|
|
||||||
|
spock_log("Assign: adapter dev=%d, scsi ID=%i, LUN=%i, attention devsel=%d, present=%d, connected=%d.\n", adapter_id, scsi->dev_id[adapter_id].phys_id, scsi->dev_id[adapter_id].lun_id, scsi->attention & 0x0f, scsi->present[scsi->id_connected], scsi->id_connected);
|
||||||
spock_set_irq(scsi, scsi->attention & 0x0f, IRQ_TYPE_IMM_CMD_COMPLETE);
|
spock_set_irq(scsi, scsi->attention & 0x0f, IRQ_TYPE_IMM_CMD_COMPLETE);
|
||||||
} else { /*Can not assign adapter*/
|
} else { /*Can not assign adapter*/
|
||||||
|
scsi->id_connected = 0;
|
||||||
spock_log("Assign: PUN=%d, cannot assign adapter.\n", phys_id);
|
spock_log("Assign: PUN=%d, cannot assign adapter.\n", phys_id);
|
||||||
spock_set_irq(scsi, scsi->attention & 0x0f, IRQ_TYPE_COMMAND_FAIL);
|
spock_set_irq(scsi, scsi->attention & 0x0f, IRQ_TYPE_COMMAND_FAIL);
|
||||||
}
|
}
|
||||||
@@ -495,35 +504,15 @@ spock_process_imm_cmd(spock_t *scsi)
|
|||||||
spock_set_irq(scsi, scsi->attention & 0x0f, IRQ_TYPE_IMM_CMD_COMPLETE);
|
spock_set_irq(scsi, scsi->attention & 0x0f, IRQ_TYPE_IMM_CMD_COMPLETE);
|
||||||
break;
|
break;
|
||||||
case CMD_RESET:
|
case CMD_RESET:
|
||||||
|
scsi->id_connected = 0;
|
||||||
spock_log("Reset command, attention=%02x.\n", scsi->attention & 0x0f);
|
spock_log("Reset command, attention=%02x.\n", scsi->attention & 0x0f);
|
||||||
if ((scsi->attention & 0x0f) == 0x0f) { /*Adapter reset*/
|
if ((scsi->attention & 0x0f) == 0x0f) { /*Adapter reset*/
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < 8; i++)
|
||||||
scsi_device_reset(&scsi_devices[scsi->bus][i]);
|
scsi_device_reset(&scsi_devices[scsi->bus][i]);
|
||||||
|
|
||||||
for (i = 6; i > -1; i--) {
|
} else if ((scsi->attention & 0x0f) < 7) /*Device reset*/
|
||||||
if (scsi_device_present(&scsi_devices[scsi->bus][i])) {
|
|
||||||
spock_log("Adapter Reset, SCSI reset present devices=%d, phys ID=%d, type=%04x.\n", j, scsi->dev_id[i].phys_id, scsi_devices[scsi->bus][i].type);
|
|
||||||
scsi->present[j] = i;
|
|
||||||
j++;
|
|
||||||
} else {
|
|
||||||
scsi->present[j] = 0xff;
|
|
||||||
spock_log("Adapter Reset, SCSI reset not present devices=%d, phys ID=%d, type=%04x.\n", j, scsi->dev_id[i].phys_id, scsi_devices[scsi->bus][i].type);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if ((scsi->attention & 0x0f) < 7) { /*Device reset*/
|
|
||||||
scsi_device_reset(&scsi_devices[scsi->bus][scsi->attention & 0x0f]);
|
scsi_device_reset(&scsi_devices[scsi->bus][scsi->attention & 0x0f]);
|
||||||
|
|
||||||
for (i = 6; i > -1; i--) {
|
|
||||||
if (scsi_device_present(&scsi_devices[scsi->bus][i])) {
|
|
||||||
spock_log("Device Reset, SCSI reset present devices=%d, phys ID=%d, type=%04x.\n", j, scsi->dev_id[i].phys_id, scsi_devices[scsi->bus][i].type);
|
|
||||||
scsi->present[j] = i;
|
|
||||||
j++;
|
|
||||||
} else {
|
|
||||||
scsi->present[j] = 0xff;
|
|
||||||
spock_log("Device Reset, SCSI reset not present devices=%d, phys ID=%d, type=%04x.\n", j, scsi->dev_id[i].phys_id, scsi_devices[scsi->bus][i].type);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
scsi->scb_state = 0;
|
scsi->scb_state = 0;
|
||||||
spock_set_irq(scsi, scsi->attention & 0x0f, IRQ_TYPE_IMM_CMD_COMPLETE);
|
spock_set_irq(scsi, scsi->attention & 0x0f, IRQ_TYPE_IMM_CMD_COMPLETE);
|
||||||
break;
|
break;
|
||||||
@@ -538,7 +527,6 @@ static void
|
|||||||
spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
||||||
{
|
{
|
||||||
int c;
|
int c;
|
||||||
int j = 0;
|
|
||||||
int old_scb_state;
|
int old_scb_state;
|
||||||
|
|
||||||
if (scsi->in_reset) {
|
if (scsi->in_reset) {
|
||||||
@@ -556,17 +544,7 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
|||||||
scsi->dev_id[c].phys_id = -1;
|
scsi->dev_id[c].phys_id = -1;
|
||||||
|
|
||||||
scsi->in_reset = 0;
|
scsi->in_reset = 0;
|
||||||
|
spock_log("Reset.\n");
|
||||||
for (c = 6; c >= 0; c--) {
|
|
||||||
if (scsi_device_present(&scsi_devices[scsi->bus][c])) {
|
|
||||||
spock_log("Reset, SCSI reset present devices=%d, phys ID=%d, type=%04x.\n", j, scsi->dev_id[c].phys_id, scsi_devices[scsi->bus][c].type);
|
|
||||||
scsi->present[j] = c;
|
|
||||||
j++;
|
|
||||||
} else {
|
|
||||||
scsi->present[j] = 0xff;
|
|
||||||
spock_log("Reset, SCSI reset not present devices=%d, phys ID=%d, type=%04x.\n", j, scsi->dev_id[c].phys_id, scsi_devices[scsi->bus][c].type);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -698,12 +676,15 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case CMD_DEVICE_INQUIRY:
|
case CMD_DEVICE_INQUIRY:
|
||||||
if (scsi->present[scsi->scb_id] != 0xff)
|
if (scsi->scb_id != 15) {
|
||||||
|
if (scsi->present[scsi->scb_id])
|
||||||
|
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||||
|
else
|
||||||
|
scsi->cdb_id = 0xff;
|
||||||
|
} else
|
||||||
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||||
else
|
|
||||||
scsi->cdb_id = 0xff;
|
|
||||||
|
|
||||||
spock_log("Device Inquiry, ID=%d\n", scsi->cdb_id);
|
spock_log("Device Inquiry, ID=%d, connected=%d, present=%d.\n", scsi->cdb_id, scsi->id_connected, scsi->present[scsi->scb_id + 1]);
|
||||||
scsi->cdb[0] = GPCMD_INQUIRY;
|
scsi->cdb[0] = GPCMD_INQUIRY;
|
||||||
scsi->cdb[1] = scsi->dev_id[scsi->scb_id].lun_id << 5; /*LUN*/
|
scsi->cdb[1] = scsi->dev_id[scsi->scb_id].lun_id << 5; /*LUN*/
|
||||||
scsi->cdb[2] = 0; /*Page code*/
|
scsi->cdb[2] = 0; /*Page code*/
|
||||||
@@ -718,13 +699,16 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case CMD_SEND_OTHER_SCSI:
|
case CMD_SEND_OTHER_SCSI:
|
||||||
if (scsi->present[scsi->scb_id] != 0xff)
|
if (scsi->scb_id != 15) {
|
||||||
|
if (scsi->present[scsi->scb_id])
|
||||||
|
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||||
|
else
|
||||||
|
scsi->cdb_id = 0xff;
|
||||||
|
} else
|
||||||
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||||
else
|
|
||||||
scsi->cdb_id = 0xff;
|
|
||||||
|
|
||||||
dma_bm_read(scsi->scb_addr + 0x18, scsi->cdb, 12, 2);
|
dma_bm_read(scsi->scb_addr + 0x18, scsi->cdb, 12, 2);
|
||||||
spock_log("Send Other SCSI, SCB ID=%d, PHYS ID=%d, CDB[0]=%02x, CDB_ID=%d, ID Present=%d.\n", scsi->scb_id, scsi->dev_id[scsi->scb_id].phys_id, scsi->cdb[0], scsi->cdb_id, scsi->present[scsi->scb_id]);
|
spock_log("Send Other SCSI, SCB ID=%d, PHYS ID=%d, LUN=%d, CDB[0]=%02x, CDB_ID=%d, ID Present=%d.\n", scsi->scb_id, scsi->dev_id[scsi->scb_id].phys_id, scsi->dev_id[scsi->scb_id].lun_id, scsi->cdb[0], scsi->cdb_id, scsi->present[scsi->scb_id + 1]);
|
||||||
scsi->cdb[1] = (scsi->cdb[1] & 0x1f) | (scsi->dev_id[scsi->scb_id].lun_id << 5); /*Patch correct LUN into command*/
|
scsi->cdb[1] = (scsi->cdb[1] & 0x1f) | (scsi->dev_id[scsi->scb_id].lun_id << 5); /*Patch correct LUN into command*/
|
||||||
scsi->cdb_len = (scb->lba_addr & 0xff) ? (scb->lba_addr & 0xff) : 6;
|
scsi->cdb_len = (scb->lba_addr & 0xff) ? (scb->lba_addr & 0xff) : 6;
|
||||||
scsi->scsi_state = SCSI_STATE_SELECT;
|
scsi->scsi_state = SCSI_STATE_SELECT;
|
||||||
@@ -732,10 +716,13 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case CMD_READ_DEVICE_CAPACITY:
|
case CMD_READ_DEVICE_CAPACITY:
|
||||||
if (scsi->present[scsi->scb_id] != 0xff)
|
if (scsi->scb_id != 15) {
|
||||||
|
if (scsi->present[scsi->scb_id])
|
||||||
|
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||||
|
else
|
||||||
|
scsi->cdb_id = 0xff;
|
||||||
|
} else
|
||||||
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||||
else
|
|
||||||
scsi->cdb_id = 0xff;
|
|
||||||
|
|
||||||
spock_log("Device Capacity, SCB ID=%d, PHYS ID=%d\n", scsi->scb_id, scsi->dev_id[scsi->scb_id].phys_id);
|
spock_log("Device Capacity, SCB ID=%d, PHYS ID=%d\n", scsi->scb_id, scsi->dev_id[scsi->scb_id].phys_id);
|
||||||
scsi->cdb[0] = GPCMD_READ_CDROM_CAPACITY;
|
scsi->cdb[0] = GPCMD_READ_CDROM_CAPACITY;
|
||||||
@@ -754,10 +741,13 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case CMD_READ_DATA:
|
case CMD_READ_DATA:
|
||||||
if (scsi->present[scsi->scb_id] != 0xff)
|
if (scsi->scb_id != 15) {
|
||||||
|
if (scsi->present[scsi->scb_id])
|
||||||
|
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||||
|
else
|
||||||
|
scsi->cdb_id = 0xff;
|
||||||
|
} else
|
||||||
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||||
else
|
|
||||||
scsi->cdb_id = 0xff;
|
|
||||||
|
|
||||||
spock_log("Device Read Data, SCB ID=%d, PHYS ID=%d\n", scsi->scb_id, scsi->dev_id[scsi->scb_id].phys_id);
|
spock_log("Device Read Data, SCB ID=%d, PHYS ID=%d\n", scsi->scb_id, scsi->dev_id[scsi->scb_id].phys_id);
|
||||||
scsi->cdb[0] = GPCMD_READ_10;
|
scsi->cdb[0] = GPCMD_READ_10;
|
||||||
@@ -776,10 +766,13 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case CMD_WRITE_DATA:
|
case CMD_WRITE_DATA:
|
||||||
if (scsi->present[scsi->scb_id] != 0xff)
|
if (scsi->scb_id != 15) {
|
||||||
|
if (scsi->present[scsi->scb_id])
|
||||||
|
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||||
|
else
|
||||||
|
scsi->cdb_id = 0xff;
|
||||||
|
} else
|
||||||
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||||
else
|
|
||||||
scsi->cdb_id = 0xff;
|
|
||||||
|
|
||||||
spock_log("Device Write Data\n");
|
spock_log("Device Write Data\n");
|
||||||
scsi->cdb[0] = GPCMD_WRITE_10;
|
scsi->cdb[0] = GPCMD_WRITE_10;
|
||||||
@@ -798,10 +791,13 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case CMD_VERIFY:
|
case CMD_VERIFY:
|
||||||
if (scsi->present[scsi->scb_id] != 0xff)
|
if (scsi->scb_id != 15) {
|
||||||
|
if (scsi->present[scsi->scb_id])
|
||||||
|
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||||
|
else
|
||||||
|
scsi->cdb_id = 0xff;
|
||||||
|
} else
|
||||||
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||||
else
|
|
||||||
scsi->cdb_id = 0xff;
|
|
||||||
|
|
||||||
spock_log("Device Verify\n");
|
spock_log("Device Verify\n");
|
||||||
scsi->cdb[0] = GPCMD_VERIFY_10;
|
scsi->cdb[0] = GPCMD_VERIFY_10;
|
||||||
@@ -821,10 +817,13 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case CMD_WRITE_VERIFY:
|
case CMD_WRITE_VERIFY:
|
||||||
if (scsi->present[scsi->scb_id] != 0xff)
|
if (scsi->scb_id != 15) {
|
||||||
|
if (scsi->present[scsi->scb_id])
|
||||||
|
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||||
|
else
|
||||||
|
scsi->cdb_id = 0xff;
|
||||||
|
} else
|
||||||
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||||
else
|
|
||||||
scsi->cdb_id = 0xff;
|
|
||||||
|
|
||||||
spock_log("Device Write with Verify\n");
|
spock_log("Device Write with Verify\n");
|
||||||
scsi->cdb[0] = GPCMD_WRITE_AND_VERIFY_10;
|
scsi->cdb[0] = GPCMD_WRITE_AND_VERIFY_10;
|
||||||
@@ -843,10 +842,13 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
case CMD_REQUEST_SENSE:
|
case CMD_REQUEST_SENSE:
|
||||||
if (scsi->present[scsi->scb_id] != 0xff)
|
if (scsi->scb_id != 15) {
|
||||||
|
if (scsi->present[scsi->scb_id])
|
||||||
|
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||||
|
else
|
||||||
|
scsi->cdb_id = 0xff;
|
||||||
|
} else
|
||||||
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
scsi->cdb_id = scsi->dev_id[scsi->scb_id].phys_id;
|
||||||
else
|
|
||||||
scsi->cdb_id = 0xff;
|
|
||||||
|
|
||||||
spock_log("Device Request Sense, ID=%d\n", scsi->cdb_id);
|
spock_log("Device Request Sense, ID=%d\n", scsi->cdb_id);
|
||||||
scsi->cdb[0] = GPCMD_REQUEST_SENSE;
|
scsi->cdb[0] = GPCMD_REQUEST_SENSE;
|
||||||
@@ -870,7 +872,7 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
|||||||
if (scsi_device_present(&scsi_devices[scsi->bus][scsi->cdb_id]) && (scsi->cdb_id != 0xff)) {
|
if (scsi_device_present(&scsi_devices[scsi->bus][scsi->cdb_id]) && (scsi->cdb_id != 0xff)) {
|
||||||
if (scsi->last_status == SCSI_STATUS_OK) {
|
if (scsi->last_status == SCSI_STATUS_OK) {
|
||||||
scsi->scb_state = 3;
|
scsi->scb_state = 3;
|
||||||
spock_log("Status is Good on device ID %d, cdb id = %d.\n", scsi->scb_id, scsi->cdb_id);
|
spock_log("Status is Good on device ID %d, cdb id = %d, devsel = %d.\n", scsi->scb_id, scsi->cdb_id, scsi->attention & 0x0f);
|
||||||
} else if (scsi->last_status == SCSI_STATUS_CHECK_CONDITION) {
|
} else if (scsi->last_status == SCSI_STATUS_CHECK_CONDITION) {
|
||||||
uint16_t term_stat_block_addr7 = (0xc << 8) | 2;
|
uint16_t term_stat_block_addr7 = (0xc << 8) | 2;
|
||||||
uint16_t term_stat_block_addr8 = 0x20;
|
uint16_t term_stat_block_addr8 = 0x20;
|
||||||
@@ -905,7 +907,7 @@ spock_execute_cmd(spock_t *scsi, scb_t *scb)
|
|||||||
} else {
|
} else {
|
||||||
spock_set_irq(scsi, scsi->scb_id, IRQ_TYPE_SCB_COMPLETE);
|
spock_set_irq(scsi, scsi->scb_id, IRQ_TYPE_SCB_COMPLETE);
|
||||||
scsi->scb_state = 0;
|
scsi->scb_state = 0;
|
||||||
spock_log("Complete SCB ID = %d.\n", scsi->attention & 0x0f);
|
spock_log("Complete SCB ID = %d.\n", scsi->scb_id);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1084,10 +1086,10 @@ spock_callback(void *priv)
|
|||||||
case 4:
|
case 4:
|
||||||
case 0x0f: /*Start SCB*/
|
case 0x0f: /*Start SCB*/
|
||||||
scsi->cmd_status = 1;
|
scsi->cmd_status = 1;
|
||||||
scsi->scb_addr = scsi->cir[0] | (scsi->cir[1] << 8) | (scsi->cir[2] << 16) | (scsi->cir[3] << 24);
|
scsi->scb_addr = scsi->cir[0] | (scsi->cir[1] << 8) | (scsi->cir[2] << 16) | (scsi->cir[3] << 24);
|
||||||
scsi->scb_id = scsi->attention & 0x0f;
|
scsi->scb_id = scsi->attention & 0x0f;
|
||||||
scsi->cmd_timer = SPOCK_TIME * 2;
|
scsi->cmd_timer = SPOCK_TIME * 2;
|
||||||
spock_log("Start SCB at ID = %d, attention = %02x\n", scsi->scb_id, scsi->attention >> 4);
|
spock_log("Start SCB at ID = %d, attention = %02x, cdb_id = %d\n", scsi->scb_id, scsi->attention >> 4, scsi->cdb_id);
|
||||||
scsi->scb_state = 1;
|
scsi->scb_state = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1182,6 +1184,7 @@ spock_reset(void *priv)
|
|||||||
scsi->in_invalid = 0;
|
scsi->in_invalid = 0;
|
||||||
scsi->attention_wait = 0;
|
scsi->attention_wait = 0;
|
||||||
scsi->basic_ctrl = 0;
|
scsi->basic_ctrl = 0;
|
||||||
|
scsi->id_connected = 0;
|
||||||
|
|
||||||
spock_log("Actual Reset.\n");
|
spock_log("Actual Reset.\n");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user