Searched hist:"99 ffc3e74fb0d9d321d2f19c6021e0dbaff2f4b2" (Results 1 – 1 of 1) sorted by relevance
/openbmc/linux/drivers/net/ |
H A D | macvlan.c | diff 99ffc3e74fb0d9d321d2f19c6021e0dbaff2f4b2 Thu Jun 13 02:07:29 CDT 2013 Michael S. Tsirkin <mst@redhat.com> macvlan: don't touch promisc without passthrough
commit df8ef8f3aaa6692970a436204c4429210addb23a "macvlan: add FDB bridge ops and macvlan flags" added a way to control NOPROMISC macvlan flag through netlink.
However, with a non passthrough device we never set promisc on open, even if NOPROMISC is off. As a result:
If userspace clears NOPROMISC on open, then does not clear it on a netlink command, promisc counter is not decremented on stop and there will be no way to clear it once macvlan is detached.
If userspace does not clear NOPROMISC on open, then sets NOPROMISC on a netlink command, promisc counter will be decremented from 0 and overflow to fffffffff with no way to clear promisc.
To fix, simply ignore NOPROMISC flag in a netlink command for non-passthrough devices, same as we do at open/close.
Since we touch this code anyway - check dev_set_promiscuity return code and pass it to users (though an error here is unlikely).
Cc: "David S. Miller" <davem@davemloft.net> Reviewed-by: John Fastabend <john.r.fastabend@intel.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
|