git: ad34121518bb - main - Revert "pst: improve shutdown_post_sync handler"
Date: Thu, 23 Nov 2023 19:48:58 UTC
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