diff options
author | kib <kib@FreeBSD.org> | 2012-12-05 19:02:22 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2012-12-05 19:02:22 +0000 |
commit | efc06bd8013ad630fe9083f423265d89b9d717ff (patch) | |
tree | 8f3d09a6d5dadbd1bc9f6e8fc4a41fc802629004 /contrib/gcclibs/libcpp/files.c | |
parent | 97d8ae3890bf8dc9a8e2b6a9aab818d9a7778b07 (diff) | |
download | FreeBSD-src-efc06bd8013ad630fe9083f423265d89b9d717ff.zip FreeBSD-src-efc06bd8013ad630fe9083f423265d89b9d717ff.tar.gz |
The softclock_call_cc() is executing with the callout already removed
from the callwheel. Calculate the cc->cc_next before removing the
callout, otherwise the code followed the invalid tailq links. After
this, make softclock_call_cc() return void, since it always return
cc->cc_next, which is immediately available to the softclock()
anyway. This also allows to eliminate a label under #ifdef SMP.
Remove the assignment of cc->cc_next from callout_cc_del(), since the
function is called with the callout already removed from callwheel.
If cancelling the migration, also clear the CALLOUT_DFRMIGRATION flag.
Postpone the free of the timeout(9) allocated callouts after the
migration checks are done.
Add some more strict asserts about the state of the callout in
callout_call_cc().
Reviewed by: attilio
Reported and tested by: pho (previous version)
MFC after: 2 weeks
Diffstat (limited to 'contrib/gcclibs/libcpp/files.c')
0 files changed, 0 insertions, 0 deletions