]> git.proxmox.com Git - qemu.git/commitdiff
lsi53c895a: Use alternative address when already reselected
authorLaszlo Ast <laszlo.ast@siemens-enterprise.com>
Thu, 19 Nov 2009 10:07:12 +0000 (11:07 +0100)
committerAnthony Liguori <aliguori@us.ibm.com>
Thu, 3 Dec 2009 15:41:41 +0000 (09:41 -0600)
See SCRIPTS, 3.2.17 SELECT.

Signed-off-by: Laszlo Ast <laszlo.ast@siemens-enterprise.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
hw/lsi53c895a.c

index 7e141a0ac1510cc005240d79b8fb260d513ed2fd..7fed1d86647e1e181fe88e06a9fd5bb630031776 100644 (file)
@@ -1040,8 +1040,9 @@ again:
             switch (opcode) {
             case 0: /* Select */
                 s->sdid = id;
-                if (s->current_dma_len && (s->ssid & 0xf) == id) {
-                    DPRINTF("Already reselected by target %d\n", id);
+                if (s->scntl1 & LSI_SCNTL1_CON) {
+                    DPRINTF("Already reselected, jumping to alternative address\n");
+                    s->dsp = s->dnad;
                     break;
                 }
                 s->sstat0 |= LSI_SSTAT0_WOA;