Page MenuHomeFreeBSD

D8905.id23258.diff
No OneTemporary

D8905.id23258.diff

Index: sys/net/if.c
===================================================================
--- sys/net/if.c
+++ sys/net/if.c
@@ -2300,7 +2300,7 @@
ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data, struct thread *td)
{
struct ifreq *ifr;
- int error = 0;
+ int error = 0, do_ifup = 0;
int new_flags, temp_flags;
size_t namelen, onamelen;
size_t descrlen;
@@ -2427,7 +2427,7 @@
if_down(ifp);
} else if (new_flags & IFF_UP &&
(ifp->if_flags & IFF_UP) == 0) {
- if_up(ifp);
+ do_ifup = 1;
}
/* See if permanently promiscuous mode bit is about to flip */
if ((ifp->if_flags ^ new_flags) & IFF_PPROMISC) {
@@ -2446,6 +2446,8 @@
if (ifp->if_ioctl) {
(void) (*ifp->if_ioctl)(ifp, cmd, data);
}
+ if (do_ifup)
+ if_up(ifp);
getmicrotime(&ifp->if_lastchange);
break;

File Metadata

Mime Type
text/plain
Expires
Thu, Jan 15, 10:01 AM (9 h, 14 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27646581
Default Alt Text
D8905.id23258.diff (817 B)

Event Timeline