Date: Sun, 1 Sep 2019 16:53:17 +0000 (UTC) From: Ed Maste <emaste@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r351664 - head/sys/dev/vnic Message-ID: <201909011653.x81GrH2w022275@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: emaste Date: Sun Sep 1 16:53:17 2019 New Revision: 351664 URL: https://svnweb.freebsd.org/changeset/base/351664 Log: vnic: correct and simplify SIOCSIFFLAGS PR: 223573, 223575 Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D13028 Modified: head/sys/dev/vnic/nicvf_main.c Modified: head/sys/dev/vnic/nicvf_main.c ============================================================================== --- head/sys/dev/vnic/nicvf_main.c Sun Sep 1 16:51:25 2019 (r351663) +++ head/sys/dev/vnic/nicvf_main.c Sun Sep 1 16:53:17 2019 (r351664) @@ -425,6 +425,7 @@ nicvf_if_ioctl(struct ifnet *ifp, u_long cmd, caddr_t struct nicvf *nic; struct rcv_queue *rq; struct ifreq *ifr; + uint32_t flags; int mask, err; int rq_idx; #if defined(INET) || defined(INET6) @@ -479,10 +480,10 @@ nicvf_if_ioctl(struct ifnet *ifp, u_long cmd, caddr_t break; case SIOCSIFFLAGS: NICVF_CORE_LOCK(nic); - if (if_getflags(ifp) & IFF_UP) { + flags = if_getflags(ifp); + if (flags & IFF_UP) { if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { - if ((nic->if_flags & if_getflags(ifp)) & - IFF_PROMISC) { + if ((flags ^ nic->if_flags) & IFF_PROMISC) { /* Change promiscous mode */ #if 0 /* ARM64TODO */ @@ -490,8 +491,7 @@ nicvf_if_ioctl(struct ifnet *ifp, u_long cmd, caddr_t #endif } - if ((nic->if_flags ^ if_getflags(ifp)) & - IFF_ALLMULTI) { + if ((flags ^ nic->if_flags) & IFF_ALLMULTI) { /* Change multicasting settings */ #if 0 /* ARM64TODO */ @@ -504,7 +504,7 @@ nicvf_if_ioctl(struct ifnet *ifp, u_long cmd, caddr_t } else if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) nicvf_stop_locked(nic); - nic->if_flags = if_getflags(ifp); + nic->if_flags = flags; NICVF_CORE_UNLOCK(nic); break;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201909011653.x81GrH2w022275>