cvs commit: src/sys/kern kern_intr.c

Nate Lawson nate at root.org
Tue Jan 13 16:12:23 PST 2004


On Tue, 13 Jan 2004, Don Lewis wrote:
>   Modified files:
>     sys/kern             kern_intr.c
>   Log:
>   If a device attach routine fails during boot and calls bus_teardown_intr(),
>   ithread_remove_handler() may fail to remove the interrupt handler if
>   it decides to let the ithread do the removal.  The problem is that during
>   boot "cold" is set, which causes msleep() to return immediately.  This
>   will cause ithread_remove_handler() to fail to wait for the ithread
>   to do the removal from the handler TAILQ before freeing the handler
>   back to the heap.  Bad things will happen when some other user of the
>   TAILQ, such as ithread_add_handler() or the actual ithread attempts to use
>   the freed handler.  Fix the problem by forcing ithread_remove_handler()
>   to do the actual removal itself if the "cold" flag is set.
>
>   Reviewed by:    jhb
>
>   Revision  Changes    Path
>   1.104     +5 -1      src/sys/kern/kern_intr.c

tjr@ and truckman@ are leading the MVBF club (most valuable bug fixers).

-Nate


More information about the cvs-src mailing list