]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
esp: only assert INTR_DC interrupt flag if selection fails
authorMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Tue, 18 May 2021 21:25:10 +0000 (22:25 +0100)
committerMichael Roth <michael.roth@amd.com>
Thu, 14 Oct 2021 20:58:09 +0000 (15:58 -0500)
The datasheet sequence tables confirm that when a target selection fails, only
the INTR_DC interrupt flag should be asserted.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Fixes: cf47a41e05 ("esp: latch individual bits in ESP_RINTR register")
Message-Id: <20210518212511.21688-2-mark.cave-ayland@ilande.co.uk>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit cf1a7a9b3721544aaa3e43d111eb383c30d71a62)
Signed-off-by: Michael Roth <michael.roth@amd.com>
hw/scsi/esp.c

index b668acef82df4f8c03a39d98ffb88404a5c79dc9..000e45a624548dc69b528c2063404ffb0762c08e 100644 (file)
@@ -213,7 +213,7 @@ static int esp_select(ESPState *s)
     if (!s->current_dev) {
         /* No such drive */
         s->rregs[ESP_RSTAT] = 0;
-        s->rregs[ESP_RINTR] |= INTR_DC;
+        s->rregs[ESP_RINTR] = INTR_DC;
         s->rregs[ESP_RSEQ] = SEQ_0;
         esp_raise_irq(s);
         return -1;