cvs commit: src/sys/dev/fxp if_fxp.c if_fxpvar.h

M. Warner Losh imp at bsdimp.com
Thu May 1 10:13:26 PDT 2003


In message: <1742240000.1051807110 at aslan.btc.adaptec.com>
            "Justin T. Gibbs" <gibbs at scsiguy.com> writes:
: I don't see that there is any problem with the above approach (it is the
: same flow as is used by the ahc and ahd driver) but I still don't see why
: a gone flag is required.  Just run through the handler as you normally
: would in the shared interrupt case.  The handler will exit if written
: correctly.

You assume that the hardware is still there in this case.  It might be
gone.  Certainly by the time the detach routine is called it is gone
for cardbus case.  However, you may be right in that cardbus stops
delivering interrupts to the card as soon as we determine it is gone
and then calls detach.  The only race would be something like:

	fxp_intr()
	<interrupt for us>
				eject happens here, card no longer there
	<interrupt for us == 0xfffff, so we keep looping>

However, this race is very hard to hit.  I've managed to hit it once
in about 100 card ejects, and then only on a busy network.

Warner


More information about the cvs-all mailing list