Re: git: ad34121518bb - main - Revert "pst: improve shutdown_post_sync handler"

From: Warner Losh <imp_at_bsdimp.com>
Date: Tue, 28 Nov 2023 17:20:49 UTC
Maybe f97aab79868cd7d891c52b14bd964523fa56f015 fixes this?

Warner

On Tue, Nov 28, 2023 at 10:11 AM Baptiste Daroussin <bapt@freebsd.org>
wrote:

> i386 kernel is still broken :(
>
> /home/bapt/worktrees/main/sys/dev/pst/pst-raid.c:185:9: error: incomplete
> definition of type 'struct thread'
>
> Best regards,
> Bapt
>
>
> On Sat, Nov 25, 2023 at 08:51:36AM +0100, Baptiste Daroussin wrote:
> > Kernel building for i386 is broken now and pkgbase builders do complain,
> can
> > anyone have a look?
> >
> > Best regards,
> > Bapt
> >
> > On Thu, Nov 23, 2023 at 10:09:35PM +0100, Mateusz Guzik wrote:
> > > i386 kernel is going down, i suggest just dropping the patch
> > >
> > > On 11/23/23, Mitchell Horne <mhorne@freebsd.org> wrote:
> > > > The branch main has been updated by mhorne:
> > > >
> > > > URL:
> > > >
> https://cgit.FreeBSD.org/src/commit/?id=ad34121518bb7e1a38d4a6b1ccf9ca6fe298dd0a
> > > >
> > > > commit ad34121518bb7e1a38d4a6b1ccf9ca6fe298dd0a
> > > > Author:     Mitchell Horne <mhorne@FreeBSD.org>
> > > > AuthorDate: 2023-11-23 19:46:28 +0000
> > > > Commit:     Mitchell Horne <mhorne@FreeBSD.org>
> > > > CommitDate: 2023-11-23 19:48:44 +0000
> > > >
> > > >     Revert "pst: improve shutdown_post_sync handler"
> > > >
> > > >     I did not realize this driver was i386-only, and the change
> fails to
> > > >     compile. Revert so that I can fix it properly.
> > > >
> > > >     This reverts commit 428ebb7cd9f51afb6809bf81cf21a05e0fd93ff4.
> > > >
> > > >     Pointy hat to: mhorne
> > > > ---
> > > >  sys/dev/pst/pst-iop.c  |  2 +-
> > > >  sys/dev/pst/pst-raid.c | 14 +++++---------
> > > >  2 files changed, 6 insertions(+), 10 deletions(-)
> > > >
> > > > diff --git a/sys/dev/pst/pst-iop.c b/sys/dev/pst/pst-iop.c
> > > > index 43ced2401d2c..f9921a564333 100644
> > > > --- a/sys/dev/pst/pst-iop.c
> > > > +++ b/sys/dev/pst/pst-iop.c
> > > > @@ -432,7 +432,7 @@ iop_queue_wait_msg(struct iop_softc *sc, int
> mfa, struct
> > > > i2o_basic_message *msg)
> > > >      int status, timeout = 10000;
> > > >
> > > >      mtx_lock(&sc->mtx);
> > > > -    if ((sc->reg->oqueue_intr_mask & I20_OUT_INTR_QUEUE) == 0) {
> > > > +    if (!(sc->reg->oqueue_intr_mask & 0x08)) {
> > > >          msg->transaction_context = (u_int32_t)&request;
> > > >          msg->initiator_context = (u_int32_t)iop_done;
> > > >          sc->reg->iqueue = mfa;
> > > > diff --git a/sys/dev/pst/pst-raid.c b/sys/dev/pst/pst-raid.c
> > > > index 4f9279462ee8..4e9c4fb724bc 100644
> > > > --- a/sys/dev/pst/pst-raid.c
> > > > +++ b/sys/dev/pst/pst-raid.c
> > > > @@ -73,7 +73,7 @@ struct pst_request {
> > > >  static disk_strategy_t pststrategy;
> > > >  static int pst_probe(device_t);
> > > >  static int pst_attach(device_t);
> > > > -static void pst_shutdown_post_sync(device_t, int);
> > > > +static int pst_shutdown(device_t);
> > > >  static void pst_start(struct pst_softc *);
> > > >  static void pst_done(struct iop_softc *, u_int32_t, struct
> i2o_single_reply
> > > > *);
> > > >  static int pst_rw(struct pst_request *);
> > > > @@ -170,23 +170,18 @@ pst_attach(device_t dev)
> > > >      name, psc->info->capacity/(512*255*63), 255, 63,
> > > >      device_get_nameunit(psc->iop->dev));
> > > >
> > > > -    EVENTHANDLER_REGISTER(shutdown_post_sync,
> pst_shutdown_post_sync,
> > > > +    EVENTHANDLER_REGISTER(shutdown_post_sync, pst_shutdown,
> > > >                     dev, SHUTDOWN_PRI_FIRST);
> > > >      return 0;
> > > >  }
> > > >
> > > > -static void
> > > > -pst_shutdown_post_sync(device_t dev, int howto __unused)
> > > > +static int
> > > > +pst_shutdown(device_t dev)
> > > >  {
> > > >      struct pst_softc *psc = device_get_softc(dev);
> > > >      struct i2o_bsa_cache_flush_message *msg;
> > > >      int mfa;
> > > >
> > > > -    if (SCHEDULER_STOPPED()) {
> > > > - /* Request polled shutdown. */
> > > > - psc->reg->oqueue_intr_mask = 0xffffffff;
> > > > -    }
> > > > -
> > > >      mfa = iop_get_mfa(psc->iop);
> > > >      msg = (struct i2o_bsa_cache_flush_message *)(psc->iop->ibase +
> mfa);
> > > >      bzero(msg, sizeof(struct i2o_bsa_cache_flush_message));
> > > > @@ -199,6 +194,7 @@ pst_shutdown_post_sync(device_t dev, int howto
> > > > __unused)
> > > >      msg->control_flags = 0x0; /* 0x80 = post progress reports */
> > > >      if (iop_queue_wait_msg(psc->iop, mfa, (struct i2o_basic_message
> > > > *)msg))
> > > >   printf("pst: shutdown failed!\n");
> > > > +    return 0;
> > > >  }
> > > >
> > > >  static void
> > > >
> > > >
> > >
> > >
> > > --
> > > Mateusz Guzik <mjguzik gmail.com>
> > >
> >
>