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 <svens@stackframe.org>
Tested-by: Helge Deller <deller@gmx.de>
---
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 8ba07f8756..bcff859bac 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 */
--
2.20.1
Hi List, is this patch going to be accepted? Thanks Sven On Sun, Feb 17, 2019 at 12:37:17PM +0100, Sven Schnelle wrote: > 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 <svens@stackframe.org> > Tested-by: Helge Deller <deller@gmx.de> > --- > 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 8ba07f8756..bcff859bac 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 */ > -- > 2.20.1 > >
On 04/03/19 09:24, Sven Schnelle wrote: > Hi List, > > is this patch going to be accepted? Yes, I have queued it now. Paolo > > Thanks > Sven > > On Sun, Feb 17, 2019 at 12:37:17PM +0100, Sven Schnelle wrote: >> 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 <svens@stackframe.org> >> Tested-by: Helge Deller <deller@gmx.de> >> --- >> 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 8ba07f8756..bcff859bac 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 */ >> -- >> 2.20.1 >> >>
© 2016 - 2024 Red Hat, Inc.