| 152 | } |
| 153 | |
| 154 | static void |
| 155 | ipsec_kmod_drain(volatile u_int *cntr) |
| 156 | { |
| 157 | u_int old, new; |
| 158 | |
| 159 | do { |
| 160 | old = *cntr; |
| 161 | new = old & ~IPSEC_MODULE_ENABLED; |
| 162 | } while (atomic_cmpset_acq_int(cntr, old, new) == 0); |
| 163 | while (atomic_cmpset_int(cntr, 0, 0) == 0) |
| 164 | pause("ipsecd", hz/2); |
| 165 | } |
| 166 | |
| 167 | static LIST_HEAD(xforms_list, xformsw) xforms = LIST_HEAD_INITIALIZER(); |
| 168 | static struct mtx xforms_lock; |
no outgoing calls
no test coverage detected