aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksandr Fedorov <afedorov@FreeBSD.org>2022-02-05 15:47:46 +0000
committerAleksandr Fedorov <afedorov@FreeBSD.org>2022-02-23 11:08:24 +0000
commit009a56b2e416cf32b28be405876ab38bd7544d98 (patch)
tree9127d64560f302772807b4ff21bfe650cec4f078
parent543b492fa569cd5839657bd9f74826ef2df121fb (diff)
downloadsrc-009a56b2e416cf32b28be405876ab38bd7544d98.tar.gz
src-009a56b2e416cf32b28be405876ab38bd7544d98.zip
if_vtnet(4): Restore the ability to set promisc mode.
PR: 254343, 255054 Reviewed by: vmaffione (mentor), donner Approved by: vmaffione (mentor), donner MFC after: 2 weeks Sponsored by: vstack.com Differential Revision: https://reviews.freebsd.org/D30639 (cherry picked from commit fc035df8af32d496885e5da26e519ce6a262c9bf)
-rw-r--r--sys/dev/virtio/network/if_vtnet.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/dev/virtio/network/if_vtnet.c b/sys/dev/virtio/network/if_vtnet.c
index 3650d19fbe0e..2b25fbfb6b93 100644
--- a/sys/dev/virtio/network/if_vtnet.c
+++ b/sys/dev/virtio/network/if_vtnet.c
@@ -1296,9 +1296,13 @@ vtnet_ioctl_ifflags(struct vtnet_softc *sc)
if ((ifp->if_flags ^ sc->vtnet_if_flags) &
(IFF_PROMISC | IFF_ALLMULTI)) {
- if ((sc->vtnet_flags & VTNET_FLAG_CTRL_RX) == 0)
- return (ENOTSUP);
- vtnet_rx_filter(sc);
+ if (sc->vtnet_flags & VTNET_FLAG_CTRL_RX)
+ vtnet_rx_filter(sc);
+ else {
+ if ((ifp->if_flags ^ sc->vtnet_if_flags) & IFF_ALLMULTI)
+ return (ENOTSUP);
+ ifp->if_flags |= IFF_PROMISC;
+ }
}
out: