diff options
-rw-r--r-- | sys/net/if_gif.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/net/if_gif.c b/sys/net/if_gif.c index f8af910..68031cb 100644 --- a/sys/net/if_gif.c +++ b/sys/net/if_gif.c @@ -401,6 +401,7 @@ gif_ioctl(ifp, cmd, data) struct sockaddr *dst, *src; struct sockaddr *sa; int i; + int s; struct gif_softc *sc2; switch (cmd) { @@ -529,8 +530,10 @@ gif_ioctl(ifp, cmd, data) bcopy((caddr_t)dst, (caddr_t)sa, size); sc->gif_pdst = sa; - ifp->if_flags |= IFF_UP; - if_up(ifp); /* send up RTM_IFINFO */ + ifp->if_flags |= IFF_RUNNING; + s = splimp(); + if_up(ifp); /* mark interface UP and send up RTM_IFINFO */ + splx(s); error = 0; break; |