diff --git a/sys/net/if.c b/sys/net/if.c --- a/sys/net/if.c +++ b/sys/net/if.c @@ -3241,6 +3241,9 @@ int error; int oldflags = ifp->if_flags; + if (pswitch == 0 && ifp->if_pcount == 0) + return (0); + error = if_setflag(ifp, IFF_PROMISC, IFF_PPROMISC, &ifp->if_pcount, pswitch); /* If promiscuous mode status has changed, log a message */