summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2007-06-26 21:42:01 +0000
committerattilio <attilio@FreeBSD.org>2007-06-26 21:42:01 +0000
commit6b276781fad7a061344301ba071e88e9822c50ba (patch)
treedfed61b9a1bfce96b75b75f2b621da64cccf888a /lib/libc
parent15389329a0e4e6702f7710bd904131886e2a6d1d (diff)
downloadFreeBSD-src-6b276781fad7a061344301ba071e88e9822c50ba.zip
FreeBSD-src-6b276781fad7a061344301ba071e88e9822c50ba.tar.gz
Fix an old standing LOR between callout_lock and sleepqueues chain (which
could lead to a deadlock). - sleepq_set_timeout acquires callout_lock (via callout_reset()) only with sleepq chain lock held - msleep_spin in _callout_stop_safe lock the sleepqueue chain with callout_lock held In order to solve this don't use msleep_spin in _callout_stop_safe() but use directly sleepqueues as inline msleep_spin code. Rearrange the wakeup path in order to have it consistent too. Reported by: kris (via stress2 test suite) Tested by: Timothy Redaelli <drizzt@gufi.org> Reviewed by: jhb Approved by: jeff (mentor) Approved by: re
Diffstat (limited to 'lib/libc')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud