|
@@ -204,11 +204,6 @@ static int esp_select(ESPState *s)
|
|
|
s->ti_size = 0;
|
|
|
fifo8_reset(&s->fifo);
|
|
|
|
|
|
- if (s->current_req) {
|
|
|
- /* Started a new command before the old one finished. Cancel it. */
|
|
|
- scsi_req_cancel(s->current_req);
|
|
|
- }
|
|
|
-
|
|
|
s->current_dev = scsi_device_find(&s->bus, 0, target, 0);
|
|
|
if (!s->current_dev) {
|
|
|
/* No such drive */
|
|
@@ -235,6 +230,11 @@ static uint32_t get_cmd(ESPState *s, uint32_t maxlen)
|
|
|
uint32_t dmalen, n;
|
|
|
int target;
|
|
|
|
|
|
+ if (s->current_req) {
|
|
|
+ /* Started a new command before the old one finished. Cancel it. */
|
|
|
+ scsi_req_cancel(s->current_req);
|
|
|
+ }
|
|
|
+
|
|
|
target = s->wregs[ESP_WBUSID] & BUSID_DID;
|
|
|
if (s->dma) {
|
|
|
dmalen = MIN(esp_get_tc(s), maxlen);
|