> Date: Mon, 21 Dec 2015 22:31:22 +0900
> From: Masao Uebayashi <[email protected]>
> 
> This is the first part of the big ipmi(4) patch I sent in another thread.
> 
> This removes complicate polling timeout code.  Serial communication
> with BMC is slow but considered as reliable.  Communication failure
> is a fatal problem.  Returning error doesn't make sense.
> 
> This also removes unfinished interrupt handling.  Access is always done in
> polling manner.
> 
> OK?

I don't think so.  Because...

> 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.

Reply via email to