> > diff --git a/sys/dev/ipmi.c b/sys/dev/ipmi.c
> > index a1156d8..91aa147 100644
> > --- a/sys/dev/ipmi.c
> > +++ b/sys/dev/ipmi.c
> > @@ -1082,11 +1017,7 @@ void
> > ipmi_delay(struct ipmi_softc *sc, int period)
> > {
> > /* period is in 10 ms increments */
> > - if (cold || sc->sc_poll)
> > - delay(period * 10000);
> > - else
> > - while (tsleep(sc, PWAIT, "ipmicmd", period) != EWOULDBLOCK)
> > - continue;
> > + delay(period * 10000);
> > }
>
> Doing a spinning delay like that for such a long time is pretty bad.
And if it becomes a polling driver like this, it stands even less of
a chance of ever being enabled.