| 212 | #endif /* VIMAGE */ |
| 213 | |
| 214 | static void |
| 215 | gre_clone_destroy(struct ifnet *ifp) |
| 216 | { |
| 217 | struct gre_softc *sc; |
| 218 | |
| 219 | sx_xlock(&gre_ioctl_sx); |
| 220 | sc = ifp->if_softc; |
| 221 | gre_delete_tunnel(sc); |
| 222 | bpfdetach(ifp); |
| 223 | if_detach(ifp); |
| 224 | ifp->if_softc = NULL; |
| 225 | sx_xunlock(&gre_ioctl_sx); |
| 226 | |
| 227 | GRE_WAIT(); |
| 228 | if_free(ifp); |
| 229 | free(sc, M_GRE); |
| 230 | } |
| 231 | |
| 232 | static int |
| 233 | gre_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) |
nothing calls this directly
no test coverage detected