Message ID | 20190217113717.7077-1-svens@stackframe.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | lsi: check if SIGP bit is already set in Wait reselect | expand |
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 >> >>
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 */