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:02:50 +0000 (10:02 -0700)
commita739e4f85f5a01de1f9f1b414af033798a981373
treee0f2811e257bc61a94e42a5be586f83df199c5e9
parent56746fafccb5783a3c3b6e9a97680b290264c1ce
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