Warner Losh
53366abd02
Close, but not eliminate, a race condition. It is one that properly
...
designed drivers would never hit, but was exposed in diving into
another problem...
When expanding the devclass array, free the old memory after updating
the pointer to the new memory. For the following single race case,
this helps:
allocate new memory
copy to new memory
free old memory
<interrupt> read pointer to freed memory
update pointer to new memory
Now we do
allocate new memory
copy to new memory
update pointer to new memory
free old memory
Which closes this problem, but doesn't even begin to address the
multicpu races, which all should be covered by Giant at the moment,
but likely aren't completely.
Note: reviewers were ok with this fix, but suggested the use case
wasn't one we wanted to encourage.
Reviewed by: jhb, scottl.
2008-10-10 17:49:47 +00:00
..
2008-03-20 21:24:32 +00:00
2008-01-18 17:02:14 +00:00
2008-09-24 10:14:37 +00:00
2008-10-08 11:11:36 +00:00
2008-01-13 14:44:15 +00:00
2008-08-28 15:23:18 +00:00
2008-09-24 10:14:37 +00:00
2008-09-25 20:08:36 +00:00
2008-08-21 15:02:17 +00:00
2008-07-02 20:44:33 +00:00
2008-04-02 11:20:30 +00:00
2008-09-25 13:42:19 +00:00
2008-09-27 13:19:09 +00:00
2007-03-05 13:10:58 +00:00
2008-05-05 19:13:52 +00:00
2008-07-07 21:32:02 +00:00
2008-05-23 03:04:27 +00:00
2008-08-20 08:31:58 +00:00
2008-06-16 04:44:29 +00:00
2008-07-21 15:05:25 +00:00
2008-07-07 09:30:11 +00:00
2008-09-10 13:16:41 +00:00
2008-08-29 01:34:05 +00:00
2008-07-23 08:45:25 +00:00
2008-03-16 10:58:09 +00:00
2008-09-23 14:25:56 +00:00
2008-10-02 15:37:58 +00:00
2008-08-03 21:07:19 +00:00
2008-02-23 01:01:49 +00:00
2008-08-28 15:23:18 +00:00
2008-09-10 19:13:30 +00:00
2008-06-26 10:21:54 +00:00
2008-07-05 19:34:33 +00:00
2008-04-04 18:41:12 +00:00
2008-10-02 15:37:58 +00:00
2008-03-16 10:58:09 +00:00
2007-05-27 20:50:23 +00:00
2008-09-10 19:13:30 +00:00
2008-03-16 10:58:09 +00:00
2008-09-22 10:37:02 +00:00
2008-08-17 23:27:27 +00:00
2008-09-17 15:49:44 +00:00
2008-09-16 14:57:23 +00:00
2007-10-24 19:04:04 +00:00
2008-09-05 15:55:06 +00:00
2008-09-10 19:13:30 +00:00
2008-09-10 19:13:30 +00:00
2008-05-18 19:32:36 +00:00
2008-10-01 22:08:53 +00:00
2008-08-28 15:23:18 +00:00
2008-08-28 19:34:58 +00:00
2008-05-12 06:42:06 +00:00
2008-09-10 19:13:30 +00:00
2008-09-25 13:42:19 +00:00
2008-09-18 20:10:11 +00:00
2007-11-30 21:29:08 +00:00
2008-03-16 10:58:09 +00:00
2008-04-29 05:48:05 +00:00
2008-08-22 16:15:58 +00:00
2008-01-18 13:00:28 +00:00
2008-08-02 17:42:38 +00:00
2008-06-24 07:32:12 +00:00
2008-10-02 15:37:58 +00:00
2008-10-02 15:37:58 +00:00
2007-06-05 00:00:57 +00:00
2008-08-03 13:33:45 +00:00
2008-08-03 13:33:45 +00:00
2008-05-23 04:06:49 +00:00
2008-05-25 22:11:40 +00:00
2007-12-14 21:30:51 +00:00
2008-09-25 20:07:42 +00:00
2008-03-12 10:12:01 +00:00
2006-11-12 03:34:03 +00:00
2008-07-28 20:39:21 +00:00
2008-07-19 05:13:47 +00:00
2008-06-26 07:52:45 +00:00
2007-06-12 00:12:01 +00:00
2008-07-21 20:50:49 +00:00
2008-05-05 19:48:54 +00:00
2008-10-10 17:49:47 +00:00
2008-09-21 18:12:18 +00:00
2008-04-22 19:38:30 +00:00
2006-10-31 21:11:21 +00:00
2008-03-16 10:58:09 +00:00
2006-10-24 10:27:23 +00:00
2008-10-04 23:58:02 +00:00
2008-05-04 23:29:38 +00:00
2008-07-27 21:45:20 +00:00
2008-03-16 10:58:09 +00:00
2007-05-27 17:38:36 +00:00
2008-03-25 09:39:02 +00:00
2008-07-04 19:36:58 +00:00
2008-09-15 22:45:14 +00:00
2008-08-20 08:31:58 +00:00
2008-03-16 10:58:09 +00:00
2008-09-15 22:45:14 +00:00
2008-04-22 19:38:30 +00:00
2008-08-09 10:26:21 +00:00
2008-09-15 22:45:14 +00:00
2008-08-27 18:23:55 +00:00
2008-07-13 17:15:05 +00:00
2008-07-18 07:10:33 +00:00
2008-04-17 04:20:10 +00:00
2008-09-15 22:45:14 +00:00
2007-07-04 06:56:58 +00:00
2008-10-03 18:13:05 +00:00
2008-09-23 14:25:38 +00:00
2008-05-23 11:14:03 +00:00
2008-03-19 06:19:01 +00:00
2008-10-07 07:10:28 +00:00
2008-09-25 20:08:36 +00:00
2008-09-25 20:07:42 +00:00
2008-09-25 20:08:36 +00:00
2007-06-12 00:12:01 +00:00
2007-10-24 19:04:04 +00:00
2008-06-19 18:08:42 +00:00
2008-02-12 20:55:03 +00:00
2008-09-04 16:30:53 +00:00
2008-08-20 08:31:58 +00:00
2008-08-20 08:31:58 +00:00
2008-08-30 09:18:27 +00:00
2008-08-30 09:18:27 +00:00
2008-09-23 17:12:25 +00:00
2008-08-23 16:03:00 +00:00
2008-06-03 12:38:00 +00:00
2008-09-22 19:25:14 +00:00
2008-09-26 18:17:04 +00:00
2008-02-01 19:36:27 +00:00
2008-07-03 08:35:59 +00:00
2008-03-16 10:58:09 +00:00
2007-10-24 19:04:04 +00:00
2008-09-05 04:05:31 +00:00
2008-09-20 19:50:52 +00:00
2008-06-27 05:39:04 +00:00
2008-06-27 05:39:04 +00:00
2008-10-07 09:51:39 +00:00
2008-10-07 20:57:55 +00:00
2008-05-22 07:18:54 +00:00
2008-10-08 06:26:51 +00:00
2008-03-31 12:01:21 +00:00
2008-06-21 11:34:34 +00:00
2008-09-16 11:19:38 +00:00
2008-09-24 18:51:33 +00:00
2008-03-22 09:15:16 +00:00
2008-08-28 15:23:18 +00:00
2008-06-09 10:31:38 +00:00
2008-03-31 12:01:21 +00:00
2008-03-16 10:58:09 +00:00
2007-02-16 17:32:41 +00:00
2008-10-01 19:25:37 +00:00
2008-09-19 15:17:32 +00:00
2008-08-31 14:26:08 +00:00
2008-09-01 10:11:39 +00:00
2008-09-20 19:48:24 +00:00
2008-08-28 15:23:18 +00:00