Subject: Re: CVS commit: src/sys/dev/ic
To: Manuel Bouyer <bouyer@antioche.eu.org>
From: Charles M. Hannum <abuse@spamalicious.com>
List: source-changes
Date: 10/08/2003 18:41:37
On Wednesday 08 October 2003 05:57 pm, Manuel Bouyer wrote:
> On Tue, Oct 07, 2003 at 07:02:00PM +0000, Charles M. Hannum wrote:
> > It's really NOT acceptable to poll here -- this creates conditions where
> > the system can wedge for a long period (e.g. inserting a CF card). It is
> > also
>
> Not with the kernel thread changes I commited today.
>
> > not necessary in order to implement this algorithm. You can poll the
> > "alternate status" register without clearing the interrupt, and let the
>
> No. The alternate status register isn't available from all controllers,
> so we can't use it.
Yes, we can. There are really two cases:
1) Any IDE, EIDE or ATA controller+drive supports the alternate status
register. This is the case where we expect to read a "0" if there is no
slave. No problem.
2) A controller+drive older than that will read all-1s. Therefore it will
fail the 0 test and continue polling. This is completely harmless. Because
the drive also is too old to support the slave register shadowing, this test
would not work for it anyway even if it read the main status register.
It's been 17 years since IDE was introduced. There is no excuse for polling
any more.