You know, Dave, seeing all those
lines in the log brings up some ideas that have been percolating in my
mind for a while. They have to do with the possibility of a race
between the watchdog routine and assertion of IAA.
In fact, if the timing comes out just wrong then it's possible (on SMP
systems) for an IAA interrupt to arrive when the watchdog
routine has already started running. Then end_unlink_async() might get
called right at the start of a new IAA cycle, or when the reclaim list
is empty.
Alan Stern
--