]> git.ipfire.org Git - thirdparty/qemu.git/commit
hw/scsi/lsi53c895a: stop script on phase mismatch
authorSven Schnelle <svens@stackframe.org>
Sat, 2 Mar 2024 21:44:53 +0000 (22:44 +0100)
committerMichael Tokarev <mjt@tls.msk.ru>
Wed, 13 Mar 2024 20:09:00 +0000 (23:09 +0300)
commitc57a6fca394b595405347e099d6c76bff8b493c0
tree7dcb222e37198fcc35ccc04a40ceac84a8addc70
parente55ec34d3e459f1d0b77b1f7239be91638b57bd9
hw/scsi/lsi53c895a: stop script on phase mismatch

Netbsd isn't happy with qemu lsi53c895a emulation:

cd0(esiop0:0:2:0): command with tag id 0 reset
esiop0: autoconfiguration error: phase mismatch without command
esiop0: autoconfiguration error: unhandled scsi interrupt, sist=0x80 sstat1=0x0 DSA=0x23a64b1 DSP=0x50

This is because lsi_bad_phase() triggers a phase mismatch, which
stops SCRIPT processing. However, after returning to
lsi_command_complete(), SCRIPT is restarted with lsi_resume_script().
Fix this by adding a return value to lsi_bad_phase(), and only resume
script processing when lsi_bad_phase() didn't trigger a host interrupt.

Signed-off-by: Sven Schnelle <svens@stackframe.org>
Tested-by: Helge Deller <deller@gmx.de>
Message-ID: <20240302214453.2071388-1-svens@stackframe.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit a9198b3132d81a6bfc9fdbf6f3d3a514c2864674)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
hw/scsi/lsi53c895a.c