diff options
author | Jiri Benc <jbenc@redhat.com> | 2012-07-27 02:58:22 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-08-09 08:31:51 -0700 |
commit | 202a3667cfc09edca2338a1fb5d6ffb0dddc9bcc (patch) | |
tree | 96ab669f4f0011b9e1d0b6c7f79a06c302821b83 /lib/locking-selftest-spin.h | |
parent | e5481652427aa25fc74b45d755ff678df33601c1 (diff) |
net: fix rtnetlink IFF_PROMISC and IFF_ALLMULTI handling
[ Upstream commit b1beb681cba5358f62e6187340660ade226a5fcc ]
When device flags are set using rtnetlink, IFF_PROMISC and IFF_ALLMULTI
flags are handled specially. Function dev_change_flags sets IFF_PROMISC and
IFF_ALLMULTI bits in dev->gflags according to the passed value but
do_setlink passes a result of rtnl_dev_combine_flags which takes those bits
from dev->flags.
This can be easily trigerred by doing:
tcpdump -i eth0 &
ip l s up eth0
ip sets IFF_UP flag in ifi_flags and ifi_change, which is combined with
IFF_PROMISC by rtnl_dev_combine_flags, causing __dev_change_flags to set
IFF_PROMISC in gflags.
Reported-by: Max Matveev <makc@redhat.com>
Signed-off-by: Jiri Benc <jbenc@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'lib/locking-selftest-spin.h')
0 files changed, 0 insertions, 0 deletions