@@ -167,14 +167,34 @@ static void _reset_addr_from_entry(gnrc_ipv6_netif_t *entry)
167
167
memset (entry -> addrs , 0 , sizeof (entry -> addrs ));
168
168
}
169
169
170
+ static void _ipv6_netif_remove (gnrc_ipv6_netif_t * entry )
171
+ {
172
+ if (entry == NULL ) {
173
+ return ;
174
+ }
175
+
176
+ #ifdef MODULE_GNRC_NDP
177
+ gnrc_ndp_netif_remove (entry );
178
+ #endif
179
+
180
+ mutex_lock (& entry -> mutex );
181
+ xtimer_remove (& entry -> rtr_sol_timer );
182
+ #ifdef MODULE_GNRC_NDP_ROUTER
183
+ xtimer_remove (& entry -> rtr_adv_timer );
184
+ #endif
185
+ _reset_addr_from_entry (entry );
186
+ DEBUG ("ipv6 netif: Remove IPv6 interface %" PRIkernel_pid "\n" , entry -> pid );
187
+ entry -> pid = KERNEL_PID_UNDEF ;
188
+ entry -> flags = 0 ;
189
+
190
+ mutex_unlock (& entry -> mutex );
191
+ }
192
+
170
193
void gnrc_ipv6_netif_init (void )
171
194
{
172
195
for (int i = 0 ; i < GNRC_NETIF_NUMOF ; i ++ ) {
173
196
mutex_init (& (ipv6_ifs [i ].mutex ));
174
- mutex_lock (& (ipv6_ifs [i ].mutex ));
175
- _reset_addr_from_entry (& ipv6_ifs [i ]);
176
- ipv6_ifs [i ].pid = KERNEL_PID_UNDEF ;
177
- mutex_unlock (& (ipv6_ifs [i ].mutex ));
197
+ _ipv6_netif_remove (& ipv6_ifs [i ]);
178
198
}
179
199
}
180
200
@@ -228,26 +248,7 @@ void gnrc_ipv6_netif_add(kernel_pid_t pid)
228
248
void gnrc_ipv6_netif_remove (kernel_pid_t pid )
229
249
{
230
250
gnrc_ipv6_netif_t * entry = gnrc_ipv6_netif_get (pid );
231
-
232
- if (entry == NULL ) {
233
- return ;
234
- }
235
-
236
- #ifdef MODULE_GNRC_NDP
237
- gnrc_ndp_netif_remove (entry );
238
- #endif
239
-
240
- mutex_lock (& entry -> mutex );
241
- xtimer_remove (& entry -> rtr_sol_timer );
242
- #ifdef MODULE_GNRC_NDP_ROUTER
243
- xtimer_remove (& entry -> rtr_adv_timer );
244
- #endif
245
- _reset_addr_from_entry (entry );
246
- DEBUG ("ipv6 netif: Remove IPv6 interface %" PRIkernel_pid "\n" , pid );
247
- entry -> pid = KERNEL_PID_UNDEF ;
248
- entry -> flags = 0 ;
249
-
250
- mutex_unlock (& entry -> mutex );
251
+ _ipv6_netif_remove (entry );
251
252
}
252
253
253
254
gnrc_ipv6_netif_t * gnrc_ipv6_netif_get (kernel_pid_t pid )
0 commit comments