K 10 svn:author V 5 luigi K 8 svn:date V 27 2001-12-05T22:52:36.000000Z K 7 svn:log V 852 Move the clearing of IFF_RUNNING early in *_stop(), before actually freeing resources (IFF_RUNNING means resources _are_ allocated). Because *_stop() is not protected by splimp(), and it is not always called at splimp() (e.g. from *_shutdown()), the old code could potentially cause a panic at shutdown in the very rare case you get an interrupt from a device sharing the same IRQ line in the middle of *_stop(). With polling enabled, this "rare" case become slightly more frequent because clock interrupts can also hit you in the middle of *_stop(). Note that this was a bug in the original drivers, not in the polling code. Note also that some other drivers (not all) have a similar bug. The code in CURRENT seems to be safe because *_stop() is wrapped in LOCK/UNLOCK calls. Maybe it would be more robust to use splimp() around *_stop() as well. END