Subject: Totally broken change to com.c
To: None <tech-kern@netbsd.org>
From: Charles M. Hannum <abuse@spamalicious.com>
List: tech-kern
Date: 10/16/2001 03:47:22
So, I'm looking at this, and there are two obvious problems:

                                bus_space_write_1(iot, ioh, com_ier,sc->sc_ier);
-                               iir = IIR_NOPEND;
                                continue;

You can't do this.  In that case where that kluge fires (a bug in some
Winbond chips), it will cause the go to go into a loop and wedge.
This change *must* be removed.

                }
!       } while (ISSET((iir = bus_space_read_1(iot, ioh, com_iir)), IIR_RXRDY)
!           || ((iir & IIR_IMASK) == 0));

This test is also wrong.  The IIR is *NOT* a bit mask.  Please read
the documentation.