* Handle a change in the interface link state. To avoid LORs * between driver lock and upper layer locks, as well as possible * recursions, we post event to taskqueue, and all job * is done in static do_link_state_change(). */
| 2250 | * is done in static do_link_state_change(). |
| 2251 | */ |
| 2252 | void |
| 2253 | if_link_state_change(struct ifnet *ifp, int link_state) |
| 2254 | { |
| 2255 | /* Return if state hasn't changed. */ |
| 2256 | if (ifp->if_link_state == link_state) |
| 2257 | return; |
| 2258 | |
| 2259 | ifp->if_link_state = link_state; |
| 2260 | |
| 2261 | /* XXXGL: reference ifp? */ |
| 2262 | taskqueue_enqueue(taskqueue_swi, &ifp->if_linktask); |
| 2263 | } |
| 2264 | |
| 2265 | static void |
| 2266 | do_link_state_change(void *arg, int pending) |
no test coverage detected