rstone
f69b6c75f2
Don't read if_counters with if_addr_lock held
...
Calling into an ifnet implementation with the if_addr_lock already
held can cause a LOR and potentially a deadlock, as ifnet
implementations typically can take the if_addr_lock after their
own locks during configuration. Refactor a sysctl handler that
was violating this to read if_counter data in a temporary buffer
before the if_addr_lock is taken, and then copying the data
in its final location later, when the if_addr_lock is held.
PR: 194109
Reported by: Jean-Sebastien Pedron
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D8498
Reviewed by: sbruno
2016-11-12 19:03:23 +00:00
..
2016-10-06 00:51:27 +00:00
2015-07-31 20:25:54 +00:00
2016-10-21 06:55:07 +00:00
2012-01-14 17:07:52 +00:00
2016-07-27 11:08:59 +00:00
2016-05-03 18:05:43 +00:00
2016-05-03 18:05:43 +00:00
2016-09-01 06:32:35 +00:00
2016-07-06 17:46:49 +00:00
2016-09-15 07:41:48 +00:00
2016-05-03 18:05:43 +00:00
2016-04-15 17:30:33 +00:00
2016-10-26 23:40:07 +00:00
2016-05-03 18:05:43 +00:00
2016-06-22 12:53:10 +00:00
2016-06-21 13:48:49 +00:00
2016-06-21 13:48:49 +00:00
2016-06-21 13:48:49 +00:00
2016-08-17 20:21:33 +00:00
2016-08-07 03:48:33 +00:00
2016-09-15 07:41:48 +00:00
2016-06-02 17:51:29 +00:00
2016-08-07 03:48:33 +00:00
2015-09-10 05:59:39 +00:00
2014-12-25 21:32:37 +00:00
2016-09-15 07:41:48 +00:00
2016-06-21 13:48:49 +00:00
2016-04-06 04:58:20 +00:00
2016-10-11 17:41:13 +00:00
2016-10-11 17:41:13 +00:00
2006-12-01 17:50:11 +00:00
2016-10-20 13:48:29 +00:00
2015-10-03 09:15:23 +00:00
2012-09-14 11:51:49 +00:00
2016-05-03 18:05:43 +00:00
2016-05-03 18:05:43 +00:00
2015-12-16 09:18:20 +00:00
2008-09-08 22:43:55 +00:00
2016-05-19 13:52:12 +00:00
2016-05-24 11:47:14 +00:00
2016-10-19 02:24:57 +00:00
2016-06-06 09:51:58 +00:00
2016-06-21 13:48:49 +00:00
2016-06-07 04:51:50 +00:00
2014-10-20 14:42:42 +00:00
2016-10-12 01:52:29 +00:00
2016-06-06 09:51:58 +00:00
2016-08-12 21:29:44 +00:00
2016-10-18 14:02:45 +00:00
2016-08-12 21:29:44 +00:00
2016-05-19 16:28:05 +00:00
2016-05-18 04:35:58 +00:00
2016-06-07 15:07:00 +00:00
2016-07-09 02:33:45 +00:00
2016-07-09 02:33:45 +00:00
2016-08-17 20:21:33 +00:00
2016-06-03 13:57:10 +00:00
2016-10-18 15:41:57 +00:00
2016-10-27 09:46:22 +00:00
2016-10-27 09:46:22 +00:00
2014-08-16 15:00:01 +00:00
2016-06-21 13:48:49 +00:00
2015-11-17 14:39:33 +00:00
2016-06-23 21:34:38 +00:00
2016-04-26 20:27:17 +00:00
2016-04-20 02:01:45 +00:00
2013-10-25 19:49:03 +00:00
2016-09-15 07:41:48 +00:00
2016-10-27 04:55:19 +00:00
2016-10-06 14:42:06 +00:00
2016-10-06 14:42:06 +00:00
2016-08-01 23:07:31 +00:00
2016-05-03 18:05:43 +00:00
2016-11-12 19:03:23 +00:00
2016-05-03 18:05:43 +00:00
2005-01-07 01:45:51 +00:00
2016-06-21 13:48:49 +00:00
2016-06-21 13:48:49 +00:00