kernel - Fix rare tsleep/callout race
authorMatthew Dillon <dillon@apollo.backplane.com>
Fri, 29 Jul 2016 17:02:50 +0000 (10:02 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Fri, 29 Jul 2016 17:28:39 +0000 (10:28 -0700)
commit5af4f5b2317c38cd5e4f333b413ee94c2b848b01
treeb1bcb092a4d6abc3d9b2fb0563a6ece8e6b6db7d
parentd781c50dd20cda4a7f14188aba984f91e005f037
kernel - Fix rare tsleep/callout race

* Fix a rare tsleep/callout race.  The callout timer can trigger before
  the tsleep() releases its lwp_token (or if someone else holds the
  calling thread's lwp_token).

  This case is detected, but failed to adjust lwp_stat before
  descheduling and switching away.  This resulted in an endless sleep.
sys/kern/kern_synch.c