From: Sven Schnelle <sv...@stackframe.org> If SIGP is set, the 'Wait for Reselection' command should jump immediately to the address stored in the second DWORD of the instruction. This fixes spurious hangs in the HP-UX 11.11 installer when the SIGP bit gets set by the kernel before the 'Wait for Reselection' command is executed by SCRIPTS.
Signed-off-by: Sven Schnelle <sv...@stackframe.org> Tested-by: Helge Deller <del...@gmx.de> Message-Id: <20190217113717.7077-1-sv...@stackframe.org> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- hw/scsi/lsi53c895a.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c index 8ba07f8..bcff859 100644 --- a/hw/scsi/lsi53c895a.c +++ b/hw/scsi/lsi53c895a.c @@ -1297,8 +1297,10 @@ again: } break; case 2: /* Wait Reselect */ - if (!lsi_irq_on_rsl(s)) { - lsi_wait_reselect(s); + if (s->istat0 & LSI_ISTAT0_SIGP) { + s->dsp = s->dnad; + } else if (!lsi_irq_on_rsl(s)) { + lsi_wait_reselect(s); } break; case 3: /* Set */ -- 1.8.3.1