John Baldwin
776b99ee1a
Check the lock lists to see if they are empty directly rather than
...
assigning a pointer to the list and then dereferencing the pointer as a
second step. When the first spin lock is acquired, curthread is not in
a critical section so it may be preempted and would end up using another
CPUs lock list instead of its own.
When this code was in witness_lock() this sequence was safe as curthread
was in a critical section already since witness_lock() is called after the
lock is acquired.
Tested by: Daniel Lang dl at leo.org
2004-07-09 17:46:27 +00:00
..
2004-07-08 22:35:36 +00:00
2004-07-08 22:35:36 +00:00
2004-07-08 21:03:35 +00:00
2004-07-08 22:35:36 +00:00
2004-06-21 19:01:55 +00:00
2004-07-04 08:52:35 +00:00
2004-07-08 10:18:07 +00:00
2004-07-09 05:05:13 +00:00
2004-07-08 16:39:03 +00:00
2004-06-14 00:38:54 +00:00
2004-05-18 05:30:06 +00:00
2004-07-09 16:56:46 +00:00
2004-07-09 11:43:37 +00:00
2004-07-09 14:30:09 +00:00
2004-07-04 08:52:35 +00:00
2004-07-06 06:43:45 +00:00
2004-07-08 22:35:36 +00:00
2004-07-08 22:35:36 +00:00
2004-07-05 17:26:04 +00:00
2004-07-03 16:56:45 +00:00
2004-07-09 17:46:27 +00:00
2004-05-14 12:28:31 +00:00
2004-07-09 02:38:25 +00:00
2004-07-09 05:26:27 +00:00
2004-06-13 17:29:10 +00:00
2004-06-13 02:50:07 +00:00
2004-06-14 18:16:22 +00:00
2004-07-04 16:11:03 +00:00
2004-07-08 22:35:36 +00:00
2004-06-13 17:29:10 +00:00
2004-06-23 01:58:22 +00:00
2004-06-24 04:29:53 +00:00
2004-06-21 00:20:43 +00:00
2004-06-24 03:11:29 +00:00
2004-06-16 09:47:26 +00:00
2004-06-17 22:48:11 +00:00
2004-07-08 22:35:36 +00:00
2004-07-08 22:35:36 +00:00
2004-07-03 19:17:06 +00:00
2004-06-16 09:47:26 +00:00
2004-07-08 13:56:17 +00:00
2004-06-16 09:47:26 +00:00
2004-07-09 02:28:23 +00:00
2004-07-09 11:00:41 +00:00
2004-06-24 03:34:46 +00:00
2004-07-03 20:56:16 +00:00
2004-07-09 16:57:24 +00:00
2004-06-30 04:40:20 +00:00
2004-07-07 20:04:06 +00:00
2004-07-06 17:35:10 +00:00
2004-05-16 00:19:12 +00:00